Arduino Uno with a 32-bit ARM Cortex-M0, LPC111X NXP microcontroller in 28 pin DIL package instead of Atmega328p
The nice thing about Arduino Uno is that not only it introduces you quickly in the world of 8 bit AVRs (Atmega328p) but after running a few programs, mostly already available examples, you quickly realize you can develop you own boards using stand alone Atmega328ps chips and you no longer need the Arduino Uno, excepting as an ordinary ISP programmer.
Arduino Due is not the same affair. Migrating from it to a stand alone SMD ARM with many pins, like the one installed on Due, is not an easy endeavor. You need serious skills in crafting PCBs to have your own ARM powered controller board, all this because of the hobbyist unfriendly chip package.
However, there is, at least in theory, a 32-bit ARM Cortex-M0, LPC111X NXP microcontroller in 28 pin DIL capsule that is as easy to use as an Atmega328p.
See: http://www.nxp.com/documents/data_sheet/LPC111X.pdf
If it is worth replacing the Atmega328p on Uno with an LPC111X it remains to be seen. There will be a gain in speed, for sure, at least for code requiring many multiplications of 16 bit values integers that can come from the DAC.
What other advantages, disadvantages such a Uno with LPC111X could have?
However, there is, at least in theory, a 32-bit ARM Cortex-M0, LPC111X NXP microcontroller in 28 pin DIL capsule that is as easy to use as an Atmega328p.
Do you know if that is a 'skinny' (.3") or 'fat' (.6") 28 pin DIP package?
I have searched for LPC1114FN28/102 DIP but Digikey does not have it in stock. However, it can be found at Mouser.
It means that LPC1114FN28/102 DIP has gained some market.
Graynomad:
Personally I never use DIPs these days, but people still like them for prototyping.
There's a lot of people (including me ) that "play" with Arduino and MCUs for hobby at a very early stage, that: are not able to do a home-made PCB; can not solder SMD cases. So DIPs are fantastics because you can use them with breadboards or classic stripboards easily
The test just says that this ARM is relatively easy to use by hobbyists. However, it does not prove anything about the performance of LPC1114FN28/102 as compared with an Atmega328p, for example. If it is not 10 times faster, likely AVR funs will not abandon so easily their favorite microcontroller for it.
It wouldn't be even remotely close to being 10x faster.
how do you figure? It could easily be 10x faster for SOME purposes.
Say: 32bit integer math. A 32bit add on AVR takes at least 4 instructions at 16MHz, or 250ns. a 32bit add on an LPC1114 takes 1 instruction at 50MHz, or 20ns. More than 10x faster.
Of course, your program will never be all 32bit math, but...
That kind of comparison makes sense if all you do with your mcu is to add 32-bit numbers.
Even in that comparison, what if you wanted to process char or short?
More importantly, for those of us using those chips for a variety of different tasks, you would be hard-pressed to show the cmx chips are 10x faster than a comparable avr (or any other 8-bit mcu).
Oh, I'll accept "not 10x faster", but I think "not remotely close to 10x faster" is too harsh. I see "almost always faster, and 12x faster for some pretty common operations. "
I think I could come up with non-contrived code that would be significantly more than 12x faster (say by using an array of 32bit constants in flash.)
Of course I'm also in the group that believes an AVR is "fast enough" almost all of the time.
The peripherals are much slower than the mcu: it takes the same time to do 400khz i2c on a 72Mhz CM3 as it does on a 1Mhz avr. Or it takes the same amount of time to wait for a person to press a button, etc.
So the raw speed comparison on a mcu really isn't that meaningful.
I would venture a guess that the CMx chips are no more faster than an avr than their system clocks suggest.
Obviously, that conclusion changes if you are using those chips for some 32-bit intensive tasks (fft for example, or dsp on the cm4s).
Also the ADC for LPC1114FN28/102 is at least 5 times faster than the one on Atmega328p, (for the ARM I am not seeing the maximum conversion time at full resolution which is needed for a more precise comparison).
ARM The LPC1110/11/12/13/14/15 contain one ADC. It is a single 10-bit successive approximation ADC with eight channels. ... • Measurement range 0 V to VDD. • 10-bit conversion time >= 2.44 us (up to 400 kSamples/s).
AVR ATmega48PA/88PA/168PA/328P Analog-to-Digital Converter • 10-bit Resolution • 13 - 260 ?s Conversion Time • Up to 76.9 kSPS (Up to 15 kSPS at Maximum Resolution)
I wonder if the fact an ADC could be required to charge up to the higher VDD on the 328, if that is responsible for some of the time difference?
I haven't looked into the ARMs directly, but the ADC sampling time is usually related to the size of
the sampling cap on the front-end of the ADC, as well as the the value of the external source
resistance.
Slower ADCs usually have a sampling cap in the 20-120 pF range, while for the fast ones it's more
like 4 pF. Also, the faster ones will say something like "source impedance must be 500 ohms max
for maximum sampling rate", while the slower ADCs will say something like 10K max. So, max
sampling rate mainly comes down to RC charging.