Hey EEVbloggers!
I'm an engineering student, and I had a discussion with one of my professors about different microcontrollers...
So last year, I had to make a working DC-engine, starting with only 2 magnets and an inductor, and everything needed to be powered from a microcontroller.
For that job, an easy Arduino Uno did the work, everything worked fine, 1000 rpm at only 5V with constant current of 75mA, could lift 3 kg (=6.6 lbs) without a problem.
This year, I need to make a power supply, an audio amplifier (class AB) and a constant current load all in 1 single machine, driven by a single microcontroller.
The professor said we needed to use the cy8ckit-049-42xx, with the reason that it's a quite nice microcontroller and easy to program...
The next week, I had a question, when I asked it at the professor, at one point I said: "For testing my code, I used a simple Arduino to try it out", and the professor answered that Arduino is trash!
So now... If you have something to make with a microcontroller (in general), which controller would you choose? The biggest, most powerfull one? Or would you look at only what you need?
Just some quick numbers:
Other things:
| Other things:
|
Really... Prototyping on Arduino is a useless endeavor, it isn't in any way close to your target platform. You might as well program your project in javascript and run it on your IE browser for all that you will gain trying to prototype your project on an Arduino.
You should primarily be trying to learn about the ARMv7-M architecture (same for the Cortex-M3, Cortex-M4, and Cortex-M7); ARM instructions set; all of the integrated devices; memory; interrupts; etc...
And also do it because your lab manager said to... You got a couple of months left? Quit wasting time with the Arduino toy. Better hurry and Good luck!
What you missed in your original comparison (note the Apple A9) - from Wikipedia:Key features of the Cortex-M3 core are:
ARMv7-M architecture[7]
3-stage pipeline with branch speculation.
Instruction sets:
Thumb (entire).
Thumb-2 (entire).
32-bit hardware multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply.
32-bit hardware divide (2-12 cycles).
saturation arithmetic support.
1 to 240 interrupts, plus NMI.
12 cycle interrupt latency.
Integrated sleep modes.
Silicon options:
Optional Memory Protection Unit (MPU): 0 or 8 regions.
The following microcontrollers are based on the Cortex-M3 core:
Actel SmartFusion, SmartFusion 2
Analog Devices ADuCM3xx
Atmel SAM3A, SAM3N, SAM3S, SAM3U, SAM3X
Cypress Semiconductor PSoC 5
Holtek HT32F
Luminary Micro LM3S1968
NXP LPC1300, LPC1700, LPC1800
ON Semiconductor Q32M210
Silicon Labs Precision32
Silicon Labs/Energy Micro EFM32 Tiny, Gecko, Leopard, Giant
Spansion FM3
STMicroelectronics STM32 F1, F2, L1, W
Texas Instruments SimpleLink Wireless MCUs (CC1310 Sub-GHz and CC2650 BLE+ZigBee+6LoWPAN)
Toshiba TX03
The following chips have a Cortex-M3 as a secondary core:
Apple A9 (Cortex-M3 as integrated M9 motion Co-Processor)
CSR Quatro 5300 series (Cortex-M3 as co-processor)
Samsung Exynos 7420 (Cortex-M3 as a DVS microcontroller)[14]
Texas Instruments F28, LM3, TMS470, OMAP 4470 (one Cortex-A9 + two Cortex-M3)
XMOS XS1-XA family (seven xCORE + one Cortex-M3)