Table of Contents
Overview of the Different Options
Generally accepted as the best choice for those with no previous experience of microcontrollers. Plenty of help and examples available. Many development boards available to suit.
The most commonly version is based on the AVR ATMega328 (see below). The arduino platform consists of a bootloader on the IC so that no special programmer is needed, and easy to use software and a simplified programming interface to control the hardware on the arduino. The advantage it gives to beginners is that it does not require the user to fully understand the underlying hardware, rather provides easy access to controlling pins, using the serial interface, timers and so on.
Program in c/c++
pros: best first step for beginners, doesnt need deep understanding of the hardware, plenty of support available
cons: annoying to debug, not as many features as others, arduino can 'get in the way', range of different ICs is limited
pro: comes in a nice set of packages, software unlimited and for linux, nice step from arduino cons: annoying to debug, not as many features as others
Program in c/c++
.asciiz “some text here”
A £3 dev board/programmer is available to get you started.
ARM licence the core to companies which produce the final microcontroller, and so as a result there is a much wider range available than other options.
The two most suitable options for a basic tracker are the M0 and M3 cores. These are the lowest performing and lowest power options in the ARM range (but still out perform other options).
The learning curve is higher for ARM microcontrollers compared to other parts, and so not as suitable for complete beginners. Most come in surface mount packages
Pros: Very wide range available, with the options of very extensive peripherals, and for very low cost. Cheap development boards are also available to aid prototyping before committing to a PCB
Cons: The most complex option available, most are surface mount only
While it might seem like a very simple and easy platform, once you try to do anything reasonably complex youll be crying in the corner
eww. Just use a raspberry pi
Note: I am aware that you can program the above in ASM rather than c, but if you intend to do this, you're not really the target audience of this guide
Part Comparison Table
|Part||RAM||Flash||Core||GPIO (max)||GPIO Interrupts||UART||SPI||I2C||ADC||Timers||Supply range (V)||Program/debug||Other||Packages||Cost (farnell)|
|ATMega328||2kB||32kB||8bit 20MHz||23||2 independent, 1 maskable on each port||1||1||1||10bit||1×16;2x8bit||1.8-5.5||UART bootloader; SPI ISP||Cannot debug via ISP||DIP, QFP, QFN||£2.00|
|CC430F5135/7||2/4kB||16/32kB||16bit 20MHz||30||1 maskable on each port||1||1||1||12bit||2x16bit; RTC (32bit)||1.8-3.6||2-wire interface||Integrated radio; DMA; flexible clocking||QFN||£3.99/£4.14|
|STM32F100C4/8||4/8kB||16/64kB||32bit 24MHz||37||16 mapable||2/3||1/2||1/2||12bit||10x16bit; 1x24bit; RTC||2.0-3.6||2-wire interface;JTAG||DMA; DAC||QFP, BGA||£1.42/£3.30|