Modern microcontrollers are miracles of engineering – cheap, tiny, low-power and packed with features, they are at the heart of many electronic products.
Programming microcontrollers is arguably simpler than developing business applications because microcontrollers are quite simple devices, and there is no ‘Windows’ or ‘Linux’ to complicate things. But embedded development presents other complexities – frequently, the tools for debugging are limited when compared with business tools, and working directly with hardware components can be quite complex.
The two most popular families of microcontroller are the Atmel AVR range, and the MicroChip Technologies PIC range. Both companies sell many, many different varieties of microcontroller – in fact, there are so many variants that selecting one can be tricky. Blueberry prefers the AVR range, partly because we’ve used it more, and partly because we felt the development tools were better.
Microcontrollers typically include extensive on-chip IO and peripheral devices. For example, the Atmel ATMega16 includes 10 ADC channels, 2 timers, three serial controller varieties and 32 IO pins. These features make it easy to interface these devices to other computers or electronics. Recently, Atmel and Microchip have produced devices with built-in support for various radio network technologies such as Zigbee. These technologies should make it easier to produce new radio-networked products.