Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » Overview of the ARM Embedded Processors from Texas Instruments

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Overview of the ARM Embedded Processors from Texas Instruments

Module by: Miguel Morales. E-mail the author

Summary: This module is a brief overview of ARM architectures from Texas Instruments, including a guide on how to select the ARM architecture that is right for your application and a deep dive into the Stellaris ARM Cortex-M architecture.

ARM Embedded Processors – Selecting the right one

ARM embedded processors are ubiquitous. With the vast number of ARM-based processors available, selecting the right one for a senior design can seem daunting. This chapter will help you select the right TI ARM processor for your application.

At a high level, ARM embedded processors can be split into three tiers of performance, the Cortex-A, -R, and –M series.

ARM Cortex-A Microprocessors

  • Highest performance microprocessors, use external memory
  • For use with a complex operating system
  • Applications:
    • Computing, Enterprise, Handset, Digital Home, Industrial, Wireless Infrastructure [ARM website]
  • Author's Note:
    • Use a Cortex-A device if you:
      • Are ready and willing to develop high-complexity software for your application, including running, debugging, and compiling high-level operating system like Windows, Linux, or Android
      • You are using the microprocessor to program a user interface larger than 7” or wish to display any kind of streaming video on any size display
      • You wish to program a field bus protocol
    • If you are interested in working with a Cortex-A device from TI, visit the BeagleBone® website here: http://beagleboard.org/bone/

ARM Cortex-R Microcontrollers

  • Medium performance real-time microcontrollers, use integrated memory
  • Architected for safety- and life-critical applications with precise real-time requirements
  • Applications:
    • Storage, Enterprise, Digital Home, Cameras, Medical, Industrial, Automotive [ARM website]
  • Author's Note:
    • Use a Cortex-R device if:
      • Are ready and willing to develop medium-complexity software, especially if you are interested in safety-critical embedded software development
      • You want to develop a real transportation or safety application
    • If you are interested in working with a Cortex-R device from TI, visit the TMS570 Microcontroller USB Kit website here: http://www.ti.com/tool/tmdx570ls20susb

ARM Cortex-M Microcontrollers

  • Lowest power microcontrollers, use integrated memory
  • Architected for cost and power sensitive applications.
  • Applications:
    • Smart metering, human interface, industrial, white goods, consumer, portable medical [ARM website ]
  • Author's Note:
    • Use a Cortex-M device if you:
      • Are interested in the lowest-complexity solution for your application
      • Can meet the needs of your application with 150 MHz or less and without a multi-threaded OS running in the system
      • Are looking for the smallest, least expensive, or lowest-power ARM device
    • If you are interested in working with a Cortex-M device from TI, visit the Stellaris LaunchPad® website here: http://www.ti.com/stellaris-launchpad

Texas Instruments’ (TI) ARM based platforms are outlined in Figure 1, below.

Figure 1: Texas Instruments ARM Processing Portfolio - Aug 2012
Figure 1 (Picture 0.jpg)

Stellaris® Microcontrollers: Offering performance up to 80 MHz and a high degree of connectivity and analog integration to the microcontroller markets, Stellaris MCUs are ideal for applications that require all the memory, analog components, and communications interfaces on a single chip within a compact package.

Concerto™ Microcontrollers: Concerto F28M35x microcontrollers combine TI’s performance C28x™ core and control peripherals with an ARM® Cortex™-M3 core and connectivity peripherals to deliver a clearly partitioned architecture that supports real-time control and advanced connectivity in a single MCU.

Hercules™ Microcontrollers: For high-reliability applications such as transportation, the TMS570 provides DSP-like performance with safety-critical features implemented in hardware to ensure continuous and uninterrupted operation. The TMS570 has a dual-core architecture with the second core running in lockstep for redundancy and self-checking.

Sitara™ Microprocessors: Offering performance up to 1.5 GHz, Sitara ARM MPUs are ideal for applications needing a high-level operating system, wired and wireless network connectivity, concurrent applications, and support for rich graphics with an advanced user interface.

OMAP™ Multi-core Microprocessors: The OMAP platforms for digital media processing bring together an ARM core with advanced video acceleration plus a high-performance C6000 DSP for applications that need to support real-time video, image, and audio data processing. With the ability to provide the intensive computational real-time signal processing performance developers can implement complex applications such as video analytics, speech recognition, baseband channel management, and power monitoring with a single chip.

Deep Dive into Cortex-M – Stellaris ARM Cortex-M4F

Stellaris microcontrollers (MCUs) from Texas Instruments are 32-bit, RISC-based, mixed-signal processors designed specifically for ease of use and connectivity. Common applications include end equipments in the compute, industrial, and smart grid markets.

To get a better idea of what Stellaris is and how it can be used to solve an application problem, let’s take a look at a typical block diagram for the device. Figure 2 shows the block diagram for the LM4F232H5, one of the LM4F devices:

Figure 2: LM4F232H5 Block Diagram
Figure 2 (graphics1.jpg)

The block diagram provides guidance on the key features of a particular device. Let’s take a closer look at some of the more prominent features. Note most of this section is transcribed from the LM4F232H5QC datasheet, available here :

  • Integrated Memory
    • Includes both volatile (RAM) and non-volatile (Flash, EEPROM) memories
    • EEPROM supports an endurance of up to 500K writes
    • Read Only Memory (ROM) includes the software libraries used to program peripherals
  • Analog
    • ADC: Two 12-bit SAR ADCs, each with up to 12 channels of single- or dual-ended inputs
    • Comparators: Three analog comparators, each with two
  • Serial Communications peripherals – both synchronous and asynchronous
    • Two Controller Area Network (CAN) 2.0 A/B controllers
    • USB 2.0 controller, supporting On-the-go, Host, and Device modes
    • Eight Universal Asynchronous Receiver/Transmitter (UART) modules, capable of infrared data (IrDA), 9-bit, and ISO 7816 modes
    • Six Inter-Integrated Circuit (I2C) modules
    • Four Serial Peripheral Interface (SPIs) modules
  • Motion Control
    • Two PWM modules, with a total of 16 advanced PWM outputs for motion and energy applications
    • Eight falut inputs to promote low-latency shutdown
    • Two Quadrature Encode Inputs (QEIs)
  • GPIOS
    • The 64-LQFP has a maximum 43 GPIOs; the 100-LQFP package has a maximum 69 GPIOs; the 144-LQFP has a maximum 105 GPIOs
    • All pins have configurable pull-up and pull-down resistors
  • Timers
    • Systick timer – A 24-bit system timer
    • Twelve general purpose timers - Each 32-bits with up to two capture/compare inputs
    • Two watchdog timers – each 32-bits
  • Hibernation Module (HIB)
    • In HIB mode, power supplies are turned off to the main part of the microcontroller and only the Hibernation module circuitry is active. An external wake event or RTC event is required to bring the microcontroller back to run mode.
  • Oscillators
    • Precision Internal Oscillator (PIOSC) – on-chip oscillator; operates at 16 MHz ±1% at room temperature
    • Main oscillator (MOSC) – Connection for a single-ended clock source to OSC0 or a high-frequency external crystal [5-25 MHz]
    • Hibernation Module Clock Source – Connection for a 32.758-kHz oscillator
  • CPU and Debug capabilities
    • 80 MHz is the maximum CPU clock speed for the LM4F232
    • Other core modules
      • Nested Vector Interrupt Controller (NVIC) – provides programmable interrupt priority and low-latency interrupt handling, including automatic nesting of interrupts
      • Memory Protection Unit (MPU) – divides the memory map into a number of regions and defines the location, size, access permissions, and memory attributes of each region
      • Floating Point Unit (FPU) – Supports single-precision add, subtract, multiply, divide, multiply and accumulate, and square root operations. It also provides conversions between fixed-point and floating-point data formats.
    • Debug modules
      • Join Test Action Group (JTAG) port – an IEEE-standard, 4-pin debug interface used to communicate with the LM4F232 during debug
      • Single Wire Debug / Test (SWD/T) port – an ARM-standard 2-pin debug port, provided as an alternative to JTAG
      • Embedded Trace Module (ETM) – a real-time trace module providing instruction and data tracing of the Cortex-M4F core
      • Author’s Note – Leveraging the ETM requires the use of a non-standard debugging tool as well as hardware that supports an ETM connection. Though the debugging tools exist, no hardware that supports an ETM connection is available as of September 2012. Go to www.ti.com/stellaris for any updates on the LM4F kits that are available.

Each of these modules is brought out to the user through pins on a package. In the case of the LM4F232H5QC, the Pin Diagram is shown in Figure 3, below. This pin diagram can also be found in the LM4F232H5QC datasheet, under the bookmark called “Pin Diagram”.

Figure 3: LM4F232H5QC Pin Diagram
Figure 3 (graphics2.jpg)

This view is helpful because it identifies the necessary connections to the LM4F232, namely the power supply (VDDx, GNDx), the programming/debugging tool connections (TCK, TMS, TDI, TDO), and some of the key peripheral connections (HIB, USB). However, many of the signals such as timer capture/compare pins and analog inputs are still not shown. That granularity is provided in the signal tables in the datasheet. An excerpt from the LM4F232H5QC signal tables is shown in Figure 4.

Figure 4: LM4F232H5QC Signal Table Example
Figure 4 (graphics3.png)

Using these tables, users can start to map the desired functionality to their design. A schematic drawing depicting the baseline connections for an LM4F120 design is shown in Figure 5, below. The LM4F120 and the LM4F232 are actually members of the same device family, so the schematic applies to the part in discussion:

Figure 5: Stellaris LaunchPad (EK-LM4F120XL) Schematic Excerpt
Figure 5 (graphics4.jpg)

Since the LM4F power rail is specified as 3.3V ± 5%, a typical 3.3V supply will work well. Note the decoupling capacitors on the VDD pins. Signals like the WAKE and nRESET are connected to user switches that are configured as pull-ups. Two oscillators, a 16MHz and a 32kHz oscillator are connected to the MOSC and HIBOSC pins, respectively.

Figure 6, below, goes one step further to demonstrate an example connection to the debug, USB, and user interface signals.

Figure 6: Stellaris LaunchPad (EK-LM4F120XL) Schematic Excerpt
Figure 6 (graphics5.jpg)

Note the connections to the USB connector and the JTAG signals. Since this is a schematic from the Stellairs LaunchPad evaluation kit, this also includes the connections to a Virtual COM Port bus that uses UART on Port A pins 0 and 1 to communicate back to the debug emulator. The schematic also includes the breakout to the pin headers. These other pin connections can be used to connect all other signals.

Now that we have explained the basics of how to include an LM4F device in your system, let’s review the documents you can use to take your design to the next level.

  • Device-specific Datasheet (example: LM4F232H5QC Datasheet)
    • The datasheet includes all the detailed descriptions of the modules, the register descriptions, maximum operating conditions, electrical parameters, performance boundaries, and package descriptions for each device. Each part number has its own datasheet.
  • Device-specific Errata (example: LM4F232H5QC Errata)
    • The errata document is a critical supplement to the datasheet because it lists any bugs and that affect the operation of the device as well as their workarounds. Note that errata vary by revision so it important to map the revision of your device to the errata document.

Datasheet Deep Dive

Beyond the pin diagram and the signal tables, let’s highlight some other areas on which to focus when you first look at the datasheet.

Figure 7: LM4F232H5QC Operating Conditions
Figure 7 (graphics6.jpg)

Boundary and Recommended Operating Conditions

  • Maximum ratings and Recommended Operating Conditions

The maximum ratings indicate the voltage and current conditions that should not be exceeded, under any condition, without risking damage to the device. The recommended operating conditions document the conditions under which the part is guaranteed to operate. This means the minimum and maximum electrical specifications in the datasheet are specified under these conditions.

Figure 8: LM4F232H5QC Maximum Ratings
Figure 8 (graphics7.jpg)
Figure 9: LM4F232H5QC Recommended Operating Conditions
Figure 9 (graphics8.jpg)

Power Consumption numbers

Power Consumption Numbers

Figure 10: LM4F232H5QC Power Consumption Numbers
Figure 10 (graphics9.jpg)
  • Package information providing package tolerances useful when creating device footprints in schematic/PCB CAD tools:
Figure 11: LM4F232H5QC 100-LQFP Package Mechanical Description
Figure 11 (graphics10.jpg)

The following is an excerpt from “Overview of the MSP430 Microcontroller from Texas Instruments” , written by Zack Albus, changes in brackets “[ ]”:

Now that we have reviewed the [Stellaris] device documentation and where to find the needed information about what a device can do, let’s walk through the process of actually selecting the part that best suits a given design need.

Let’s start by answering the questions below:

  1. “What problem am I trying to solve?”

This is fundamental. Until this is understood, nothing else can happen. Knowing what the problem is you face at a system level allows you to identify how features of the MCU can help you solve the problem most efficiently.

  1. Do analog signals need to be measured, for instance a voltage from a strain gauge or an output from a potentiometer?

If so, perhaps an integrated ADC is of value. If a simple analog threshold is needed, an integrated comparator can likely do the trick.

  1. What is the user interface?

Switches likely translate into simple digital interrupt inputs while displays may require a communication bus such as SPI to be used in order to refresh data displayed to the user.

  1. Are time-sensitive signals needed off-chip?

For example perhaps a PWM signal is needed to control a motor’s speed or LED brightness.

  1. What are the other devices or circuits that the MCU needs to interface with?

Identifying potential analog inputs, logic level digital I/O signals or communication interfaces such as I2C or UART will all help find the right MCU to fit the application need.

  1. “How many “things” need to be input into the device or driven from the device (outputs)?”

Determining this at a block level for the system and then at a more detailed MCU pinout level will clarify exactly how many I/O pins are needed

  1. “What are my power supply requirements/limitations?”

This is important as the needed of the MCU supply may impact the overall system design. For example if powered from a 9V battery, the [Stellaris] will need a regulator to bring its supply to within the 3.0V-3.6V range.

  1. “How much memory will my application need?”

This is not always obvious as the SW may not yet be written. But if you plan on using existing code or modifying code already written, you can get an idea of what a given function in SW might require in terms of program and data memory needs. And when certain algorithms such as FFT or filtering are needed, RAM requirements can often be estimated before ever selecting the device by simulating the functions on a PC.

  1. “Are any ‘special’ features needed?”

For example is a USB interface to a PC needed? Or perhaps a high resolution ADC (>12-bits) is needed to get a certain system performance. Consider looking for MCUs that offer such features integrated to minimize the system-level design effort and complexity required.

  1. “Do I have any physical design or assembly constraints? (e.g. package size, pin spacing, PCB or assembly capability)”

[End excerpt]

There are a variety of LM4F devices that will fit a variety of different needs. Sometimes, the easiest way to see whether a device is the right one for your application is to get your hands on an evaluation kit. In the case of the LM4F232 family, the recommended kit is the Stellaris LaunchPad.

The Stellaris LaunchPad is an evaluation kit that costs less than $10 and provides a variety of BoosterPacks to extend its functionality. Make sure to go to www.ti.com/stellaris to start your design today!

LaunchPad

Figure 12
Figure 12 (graphics11.jpg)

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks