Atmel made its name with programmable logic and nonvolatile memory, but the company is now a big supplier of microcontrollers, too. It’s one of the earliest and oldest ARM licensees, and this week the company announced an interesting new ARM-based processor chip that might move Atmel to the front of your shopping list.
The new SAM3U chip (full name: AT91SAM3U) slots in between the company’s existing ARM7-based processors (SAM7) at the low end and its ARM9-based chips (SAM9) at the higher end. Atmel’s ARM7 chips have been very popular, but the old ARM7 processor core is starting to look a bit tired; new customers are more likely to be eyeing the Cortex-based SAM3 chips. Atmel’s not ready to pull the plug on ARM7 yet, however. The company plans some process shrinks that’ll push the older chips’ performance upward and keep the hundreds of existing customers happy and well-supplied.
USB to Go, Go, Go
The SAM3U chip is astonishingly well-endowed. The block diagram is so crowded with peripherals, buses, memories, and other paraphernalia that it requires some searching to even find the Cortex-M3 processor core. Amongst the inputs and outputs are eight 12-bit analog/digital converters (plus eight more 10-bit ADCs), three 16-bit timers, four UARTs, SPI and SSC interfaces, an RTC, crystal oscillator, 23 DMA channels, gobs of loose I/O pins with programmable debouncing, and more. The chip is offered in both 100- and 155-pin packages, the major difference being the amount of I/O you can actually bring off the part.
Probably the slickest part of SAM3U’s I/O repertoire, and the marquee feature, is the on-chip USB interface. I can hear you thinking, “Oh, but lots of microcontrollers have USB interfaces!” Not like this one, they don’t. Atmel’s new chip boasts a high-speed USB interface (over 400 Mbit/sec), and it’s got an integrated physical-layer transceiver. So all you have to do is solder in the jack; no interface hardware required. For a chip priced at under $5 in quantity, that’s a sweet deal.
Where M Is Greater Than 7
The SAM3U is among the first Cortex-M3 chips around, following more than a year after Luminary Micro (now part of Texas Instruments) blazed the trail. That means the SAM3U has little direct competition if you’ve got your heart set on Cortex-M3. It has plenty of competition if you’re willing to look further afield.
For those unfamiliar with ARM’s processor nomenclature, welcome to the club. For most of its corporate life, ARM simply gave each successive generation a sequential serial number. After version 7, cleverly dubbed ARM7, ARM really hit the big time. ARM7-based processors were (and still are) immensely popular, selling more units than Intel’s famous Pentium or Core Duo chips. The ARM7 was logically followed by the ARM8, and so on up to ARM11.
After ARM11, however, ARM apparently ran out of digits and completely re-jiggered its numbering system. All new processor generations are called Cortex, followed by a one-letter suffix and a number. The Cortex-M branch of the family tree represents the low end, fitting roughly in between the older ARM7 and ARM9 generations.
Why use a Cortex-M processor when there are already perfectly good ARM7, ARM8, or ARM9 chips? That’s a fair question, and the answer has to do with upward and downward compatibility. You see, all Cortex-M chips, both today’s and tomorrow’s, execute the Thumb-2 instruction set, which compacts many of ARM’s traditional 32-bit instructions into just 16 bits. The idea is to save memory space and thereby appeal to cost-conscious microcontroller jockeys accustomed to 16-bit chips. The Thumb-2 system works well, but it’s different from the conventional 32-bit instruction set you’ll find on ARM’s other processors. Nor is it binary compatible with older ARM7-based chips. Earlier attempts at code compression on the ARM7 were a bit awkward; Cortex-M achieves the same memory savings in a more elegant manner, but at the cost of some backward compatibility. In short, if you’re new to the ARM family there’s no problem, but if you’re trying to carry forward existing ARM7-based code, you’ve got some work ahead.
Versus the Other Guys
Atmel’s new SAM3U chips compare favorably to Microchip’s recently announced XLP processors (see ETJ, May 5, “Clash of the Tiny Titans”). Microchip’s processors are based on that company’s own proprietary CPU architecture, so they won’t run ARM code, but that’s not an issue for many programmers. Microchip’s XLP chips are spectacularly power-efficient; that’s what they were designed for. The SAM3U chips, while not exactly power hogs, aren’t even in the same league. Both chip families have the usual assortment of UARTs, two-wire serial interfaces, analog/digital converters, and so on. The high-speed USB with integrated drivers is unique to Atmel’s chips, of course, but Microchip boasts a capacitive touch-sense interface, a must-have if you’re designing an iPhone killer. Atmel’s chips have far more flash memory – 256 KB compared to 512 bytes – but they’re more expensive, too. Microchip has a broader (and wildly varied) product line, with MIPS-based chips at the high end, while Atmel has several ARM-based chips, with its own AVR architecture at the low end. In the end, your decision will probably come down to ARM vs. MIPS or USB vs. touch-screen.