Cortex A (with rather high numbers) are relatively high performance chips, commonly found in one board computers, something like the BeagleBoard.
Cortex M are microcontrollers for embedded usage, slower clocks, but geared towards periphery like CAN, SPI, I2C etc.
You can find a lot of those in industrial use.
Cortex R are less common, I think they are geared towards automotive, for real-time stuff, although -M is also used for that.
Above all those sit those big ARM9/ARM11 chips.
Within the M family there are 0 for relatively tiny footprint, 1 is special (synthesized into your FPGA), 3 is the "normal" one, and 4 has DSP capabilities and a bit more performance.
Ok, so even though this is using a "tiny footprint" ARM processor, it's still more powerful than the Atmel microcontrollers used in most other Arduino-branded products.
And there's the M0+, which is the newest in the M0 family.
The M0+ has 2/3 the dynamic power consumption of the M0, some nice features of the M3 and M4, fewer Flash accesses (which lowers the power even more), and better debugging.
Basically, if you are looking for the ultimate in low power, choose an M0+.
The Atmel D21 on the Zero is an M0+, and Atmel has just released an L21, which is an even lower power M0+.
A stands for application. These chips are full featured processors which are runnning big operating systems (e.g. Linux)
M is microcontroller. These are running either with no operating system or with a lightweight realtime operating system (e.g. freertos)
R is realtime. These are probably the most niche controllers and are used for things with realtime constraints. Besides automotive safety you can also find them used as SSD controllers.
The official Cortex-R page lists three main items:
- Fast, bounded and deterministic interrupt response
- Tightly Coupled Memories (TCM) local to the processor for fast-responding
code/data
- Low-Latency Interrupt Mode (LLIM) to accelerate interrupt entry
I haven't cross-compared the relevant features to the Cortex-M cores, but the M cores are certainly more common and definitely perform well too.
ARM did have confusing names, especially as things like ARM7 and ARMv2 meant completely different things, and you'd have names like ARM7TDMI The Cortex range has made it much simpler, though, as the other replies explain.
Nice, I've been surprised the ATMega chips have lasted as long as they have given how much more powerful ARM Cortex-M chips are, and they are about the same price. For sp332 there are three "general" groups of the Cortex M series,
M0/M0+/M1/M2 - ARMv6 - basic peripherals
M3/M4 - ARMv7 - optional floating point
M7 - Basically everything on steroids
I find the M4 feels like a sort of blend between the 80286 and the 68010.
What do you mean by your last sentence? Looking at simplest benchmark - Dhrystones both 286 and 68000 reach ~2K. Arm M3 does ~1K _per MHz_, M4 1.2/mhz.
We are talking Pentium 100MHz performance out of Arm M4 150-200MHz (freescale 150/st 168/nxp 204 MHz). Even <$2 STM32F103 (72MHz) is faster than Intel DX4 100MHz.
16MHz Atmels lasted so long only due to Arduino :/
From a programming model perspective. Granted pure performance is higher. The programming model though of a 'large' address space, modest memory protections (not remamping but some execution protection etc, a simple 'user' and 'kernel' mode, and modest I/O channel bandwidth.
I love flat address space, its perfect for embedded. As for IO its not that grim once you go up to fatter chips (STM32F42*). FSMC, high speed usb, 100mbit ethernet, dedicated camera/LCD interfaces, high speed GPIO with dma. Super cheap STM32F1xx does about 7MB/s over GPIO, almost ISA speed.
I'm not sure why anyone would buy an Arduino considering products like Teensy 3.1 or Maple. Maybe the slightly lower cost is what is keeping Arduino alive.
I think in later Uno revisions they added a IOREF pin for shields to read what voltage the IO is at and could in theory adapt to 5V or 3.3V as necessary. But yeah it's still a pain in the butt for older shields that assume they're at 5V.
Lots of sensors are happy at 3.3V though and many breakout boards are built to accept both 3.3V & 5V (with a level converter to take 5V down to 3.3V).
I don't know how much this thing will cost, but you can get any ST Nucleo board (up to Cortex-M4, detachable ST-Link programmer/debugger and headers for all I/O, including Arduino headers) for $10. Hard to beat that.
Yup, the Nucleo F411RE is my current go-to board for starting a new project ($10.44 in singles from Digikey with both an 'Arduino compatible' connector on the top and a bunch of other I/O from the chip on the 'outer' connectors.
They are talking about the flash memory built into the microcontroller itself, not about external flash storage. Generally this stores the device's firmware. 256K is a completely reasonable size for this class of microcontroller.
No idea. Can't recall ever hearing anyone discuss the fab processes used for microcontrollers; people only really care about that in the high end PC world.
You won't find many powerful ARM chips that are in a DIP package. There are a couple from NXP (like the LPC810: https://learn.adafruit.com/getting-started-with-the-lpc810/i...), but otherwise it's just not worth the chip manufacturers time to build something that would have such low demand (relative to all the other stuff they make).
50 comments
[ 5.7 ms ] story [ 106 ms ] threadmore info here: https://www.techdirt.com/articles/20150217/10345530055/is-ar...
http://arduino.cc/en/Main/ArduinoBoardZero
http://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-Syst...
http://www.ebay.com/itm/Hot-Sold-New-STM32-ARM-Cortex-M3-Lea...
I'm not sure if it's the distributor's profit margins, counterfeit parts, yuan-to-dollar advantages, or what.
Probably a combination of all that and more.
I doubt the STM32F103 is a knockoff though.
And they cost over $3 here in the US even on reels of 2400 pieces.
At least with a genuine Arduino board you get something that works and is of a reasonable level of quality.
When you have your final product you can always make economies of scale.
Cortex A (with rather high numbers) are relatively high performance chips, commonly found in one board computers, something like the BeagleBoard.
Cortex M are microcontrollers for embedded usage, slower clocks, but geared towards periphery like CAN, SPI, I2C etc. You can find a lot of those in industrial use.
Cortex R are less common, I think they are geared towards automotive, for real-time stuff, although -M is also used for that.
Above all those sit those big ARM9/ARM11 chips.
Within the M family there are 0 for relatively tiny footprint, 1 is special (synthesized into your FPGA), 3 is the "normal" one, and 4 has DSP capabilities and a bit more performance.
I can see why people who are well-versed in AVRs and their tool chain stick to it, but everyone starting today won't find them compelling.
The M0+ has 2/3 the dynamic power consumption of the M0, some nice features of the M3 and M4, fewer Flash accesses (which lowers the power even more), and better debugging.
Basically, if you are looking for the ultimate in low power, choose an M0+.
The Atmel D21 on the Zero is an M0+, and Atmel has just released an L21, which is an even lower power M0+.
A stands for application. These chips are full featured processors which are runnning big operating systems (e.g. Linux)
M is microcontroller. These are running either with no operating system or with a lightweight realtime operating system (e.g. freertos)
R is realtime. These are probably the most niche controllers and are used for things with realtime constraints. Besides automotive safety you can also find them used as SSD controllers.
The only feature I can think of there is 'no support for demand-paged virtual memory', but even that isn't strictly needed for a real-time system.
There are three varieties of ARM cores: A, R and M. See what they did, there? :)
I don't see price mentioned. Hopefully it's proportionally cheaper as well.
Should drop right in.
M0/M0+/M1/M2 - ARMv6 - basic peripherals
M3/M4 - ARMv7 - optional floating point
M7 - Basically everything on steroids
I find the M4 feels like a sort of blend between the 80286 and the 68010.
We are talking Pentium 100MHz performance out of Arm M4 150-200MHz (freescale 150/st 168/nxp 204 MHz). Even <$2 STM32F103 (72MHz) is faster than Intel DX4 100MHz.
16MHz Atmels lasted so long only due to Arduino :/
Arduino is about having a common baseline. People who are more experienced can "upgrade" to other boards.
Kinda wish Arduino had gone with something with wireless stuff built in, like the Linkit One or RFduino.
Are you sure about that? 3.3v is extremely common in the industry, to the extent that a lot of hobbyist 5v stuff has to be level shifted.
Lots of sensors are happy at 3.3V though and many breakout boards are built to accept both 3.3V & 5V (with a level converter to take 5V down to 3.3V).
These are among the lowest power chips in the world, regular bleeding edge stuff.
Higher voltage means higher power, so there is a race to get as low as possible.
Internally, the D21 core runs at 1.2V. (There's an internal regulator that needs at least 1.62V coming in.)
But anything above that is just a waste of energy (besides the fact that the highest clock speeds need 2.7V minimum for 0 or 1 wait states).
They allow it, for compatibility, but you can see why even 3.3V is dying.
The shields will be happily redesigned.
Well stop it! Distributors keep running out of that one when I want one.
edit: here's Atmel's page with the mcu specs, if you're curious: http://www.atmel.com/devices/ATSAMD21G18A.aspx
I liked the idea of using the Arduino as a programming centre. Put the chip into a project and then grab another chip to program for the next project.