The industry enjoyed some financial relief when Luminary Micro announced its ARM Cortex M3 platforms priced under $1 (see "32-Bit ARM MCU Hits One-Dollar Mark"). Now, the company's latest efforts double that core's 25-MHz speed and extend the peripheral set with additional analog and pulse-width modulator (PWM) features.
The Stellaris LM3S6xx and LM3S8xx push the memory complement to 64 kbytes of flash and 8 kbytes of SRAM (Fig. 1). Luminary Micro additionally increased the pin count to provide plenty of general-purpose I/O (GPIO). Each analog and digital peripheral has its own pins, so developers no longer have to choose one peripheral over another.
Luminary Micro has released Ethernet and controller-area network (CAN) versions as well. The LM3S6xxx adds a 10/100Mbit/s Ethernet media-access controller (MAC) and physical layer (PHY) to the mix, while the LM3S2xxx adds two Bosch-licensed CAN controllers supporting protocol versions 2.0A and 2.0B. Pricing for these chips starts at $4.61 and $3.65 for the Ethernet and CAN versions, respectively. These chips also up the ante to 256 kbytes of flash memory and 64 kbytes of SRAM.
The company also considered the programmer when it designed the system. In this case, no assembler need apply. Programmers normally need to drop into assembler to handle hardware platform details. Yet all code for the LM3Sxxx and LM3Sxxxx can be written in a high-level language like C or C++, including system initialization, interrupt routines, and real-time operating-system (RTOS) support. The hardware loads the stack pointer on initialization, so entry is the same as it would be for a normal C function.
The development kit features a number of C/C++ platforms (Fig. 2). These include platforms from the ARM/Keil RealView Microcontroller Development Kit (MDK) and IAR Embedded Workbench as well as Code Sourcery's G++ GNU. Operating-system evaluation versions include FreeRTOS, Micrium's uC/OS-II, IAR's PowerPack, and ExpressLogic's ThreadX. Ethernet and CAN kits are also available starting at $79.
SMART ANALOG AND DIGITAL
Luminary Micro's latest crop of chips doesn't include direct memory access (DMA), but it does provide a system that is more suitable for low-cost analog data acquisition. The smart analog-to-digital converter (ADC) sequencer can capture up to eight samples without application interaction. A range of inputs, including the comparators, can initiate it.
The ADC sequencer does more than grab one or all of the channels. A programmer can set the system up to capture eight samples, four samples, or one sample from any combination of channels, including repeating a channel in the sequence. The process can be continuous, but the application can be interrupted to download the captured data.
The analog sensor support often is used with the motion/motor control system. Different configurations up to a six-channel PWM are available. The PWMs support deadband control. Additionally, the company includes features that often are found with 8- and 16bit MCUs but are typically external to 32-bit solutions. These include an on-chip, 100-mA low-dropout (LDO) voltage regulator, a brownout detector, power-on reset, and a temperature sensor. This can often save over $1 in external parts.
The Ethernet adapters in the LM3S6xxx series have a few useful features as well. They support automatic MDI/MDI-X crossover correction and have programmable MAC addresses. The transmit and receive FIFOs are 2 kbytes each. The interface can operate in promiscuous mode. It also supports multiple power-down modes. Available protocol stacks include Express Logic's NetX TCP/IP and InterNiche's TCP/IP NicheStack and NicheLITE.
The LM3S2xxx's CAN controllers can handle bit rates up to 1 Mbit/s. Each controller can handle up to 32 message objects with their own identifier mask. They can also support time-triggered communication on CAN (TTCAN). A range of protocol stacks like CMX Systems' CMX-CANopen supports the interface.
The Stellaris LM3S6xxx, LM3S2xxx, LM3S6xx, and LM3S8xx are comparable to many ARM7 platforms already on the market, but Luminary Micro's solution has the edge when you add up all its features (Fig. 3). The price, performance, and power requirements definitely put pressure on 8- and 16-bit solutions.
Core: ARM Cortex M3
Clock: 50 MHz
Flash: up to 256 kbytes
SRAM: up to 64 kbytes
Peripherals: two UARTS, up to 46 GPIO, I2C, SSI, Ethernet, CAN
Analog: up to three comparators; eight-channel, 10-bit ADC; smart ADC sequencing
Timing: up to eight timers; up to six PWM with optional quadrature encoding
Temperature sensor: optional
Pricing: starts at $3.89
SMART ADC SEQUENCING
ADC: 10-bit, eight-channel, 1-Msample/s
Feature: a sequencer automatically handles data capture from one or more channels initiated by a trigger
Sequencers: Four available
Sequence length: 8, 4, 1
Triggers: software, timers, GPIO, analog comparator, PWM
Peripherals: two UARTS, up to 36 GPIO, I2C, SSI,
Operation: continuous, single