Ho-hum, another ARM-based microcontroller. Not really news, right? But every once in a while you get surprised in this business.
Today I got surprised by Atmel and its new SAMA5D2 series of MCU chips. At first, they sounded like any other low-cost family of MCUs – and, in a lot of ways, they are. They’re based on the popular ARM Cortex-A5 CPU core; they have on-chip peripheral controllers; they come in a few different packages; and prices start at $4.95 in decent volumes.
But one interesting factoid jumped out at me. Atmel offers a choice of operating systems for these new chips, including ThreadX, FreeRTOS, NuttX, and Linux. Hang on – what? Linux on a $5 microcontroller? What is the world coming to?
Some of you are old enough to remember when Linux first came out. It was a spinoff of Unix, of course, which was the go-to operating system for big academic computer systems, expensive engineering workstations, and other he-man machines. Sun Microsystems based its entire product line on (its own version of) Unix. The University of California at Berkeley had (its own version of) Unix. Telecom giant AT&T invented (its own version of) Unix. The whole C programing language owes its existence to Unix. Its primary developers, Brian W. Kernighan and Dennis Ritchie, are so much a part of computer lore that their names are just abbreviated as K&R.
For a long time, Unix was synonymous with big iron, and Linux was just one of many alternative attempts to tame the big, complex monster and domesticate it. It’s been a huge success, no question. Linux is pretty much the de facto choice for embedded designers who want a fully featured operating system without hard real-time features. As such, it’s edged out most of the other non-RTOS choices. You’d have a hard time justifying why you’re not using (some version of) Linux in place of an RTOS.
The software triage was pretty simple. If you had a really small system, you programmed on bare metal. Medium-sized systems got some sort of RTOS or kernel or dispatcher or task manager. Big systems got Linux. Easy.
But now we’ve got Linux on $5 single-chip MCUs. What happened to the big iron? Atmel says that about 25% of its customers still do “bare metal” programming or use a small RTOS. The other 75% are using (some version of) Linux. It can’t be long before the whole operating system comes preloaded in ROM. I give it two years.
Back to the chips themselves, the new D2 family looks a lot like Atmel’s many other ARM-based chips, which is to say it does a lot in a little package. There are seven distinct chips in the D2 series, with the differences mainly in packaging and, necessarily, peripheral mix. All share the same 500-MHz CPU, and all have a DDR3 memory controller. From there, the feature set gets a little tricky, depending on which of the seven devices you take a fancy to.
Some have CAN bus, for you automotive or industrial designers. Some can tolerate extended temperature ranges. Some have HSIC, the chip-to-chip version of USB that’s sort of a modern version of I2C. (They have I2C, too.) And a few have obsessive security features to prevent tampering, reverse-engineering, and general mischief.
All seven new chips boast a new audio subsystem that’s a nice upgrade from the brain-dead speaker outputs that most MCUs have. It’s not an on-chip MP3 player by any means, but it replaces a simple PWM or bit-banging an output amplifier. In fact, the D2 chips have their own Class D audio amplifier on-chip, so all you need is a handful of cheap analog components and you’re good to go; no DAC or output filter needed.
Although the chips all come with a DRAM controller, you can also configure them to work in a RAM-less mode, wherein the on-chip L2 cache is converted to SRAM. You’d have only 256KB of RAM to work with, but it’s better than nothing if you’re worried about board space or system cost. There’s also a dual QSPI interface that will connect you to off-chip flash memory, so your channel to external memory needn’t be particularly fast or wide. The SAMA5D2 processors are quite happy to execute directly out of flash, too, so there’s no need to download or copy code into the local SRAM.
Want to do a user interface? The 24-bit TFT LCD controller is just the ticket. It ain’t fast, but with 24-bit color depth, displays will look nice and pretty. Combined with the new audio unit, your industrial user interface doesn’t have to rely on embarrassingly blocky icons and robotic beeps anymore.
Naturally, there’s an inexpensive evaluation board and lots of free driver and development software. And did I mention the thing runs Linux? Best of all, the Atmel people never once mentioned “internet of things” during our discussion. Bonus points for originality.