Arduino Uno with a 32-bit ARM Cortex-M0 in 28 pin DIL package

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?

Lefty

Unfortunately, it is a fat DIL (page 92 in the datasheet).

simplex:
Unfortunately, it is a fat DIL (page 92 in the datasheet).

Yes, too bad. But still a yea for being a DIP!

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.

One can only imaging why it's a fat DIP in this day and age, .3" DIPs have been out for decades.

Still, kudos for having a DIP at all.

BTW, there's another one now (or at least next year)


Rob

It is hard to imagine a modern production run with dip devices.

Personally I never use DIPs these days, but people still like them for prototyping.


Rob

Graynomad:
Personally I never use DIPs these days, but people still like them for prototyping.

There's a lot of people (including me :sweat_smile: ) 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 :wink:

Somebody has already tried LPC1114FN28/102 DIP28 on a breadboard with a "blink a led" test code.
See: http://www.meatandnetworking.com/tutorials/lpc1114fn28-with-open-source-tools/ for all details.

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.

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.

You use those chips not for speed, or costs, but for lower software costs, a non-factor for the hobbyist markets.

nxp just announced a CM0 chip in 8pdip.

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).

There is a comparison between ARM Cortex M0 and other controllers including AVR.
see: http://ics.nxp.com/literature/presentations/microcontrollers/pdf/cortex.m0.code.density.pdf
especially pages 41, 42, 43.

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)

The voltage range of the Arm is 'Single power supply (1.8 V to 3.6 V)."

A 328 can run up "– 0 - 4MHz@1.8 - 5.5V, 0 - 10MHz@2.7 - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V"

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 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.