====== MCU selection guide ====== A brief overview of MCU manufacturers and their products. ===== Atmel ===== * 8-bit tinyAVR, megaAVR * 16-bit XMEGA * 32-bit AVR UC3, ARM * Most common among hobbyists * Programming tools are easily available * Well supported in Linux - [[http://www.nongnu.org/avr-libc/|AVR libc]], [[http://arduino.cc/|Arduino]] * Dev boards: * [[http://arduino.cc/|Arduino]] * Arduino Duemilanove: USD30; The most common board ever! Features ATMega 168/328 (1k RAM, 512 EEPROM, 16k program flash) with 6x 10-bit A/D, 6x PWM, and bunch of other digital GPIO pins. User-friendly IDE. We have a couple of these, and some basic expertise ([[user:pasky]]). * Arduino Mega: USD40; Very similar, but bigger memory and many more pins. [[user:axtheb]]. * Arduino Uno: ?; New iteration of Duemilanove, no experience yet **FIXME** * [[http://www.atmel.com/tools/AVRBUTTERFLY.aspx|AVR Butterfly]] * [[project:elbow:start]]: Custom ARM board, [[user:b00lean]]. * Other resources: [[http://www.avrfreaks.net/|AVR Freaks]] ===== BeagleBoard ===== * ARM Cortex * Expensive and with many features. * Already more like a stripped-down netbook w/o display. * **FIXME** ===== Freescale ===== * 8-bit S08 * 16-bit S12 * 32-bit Qorivva (Power arch), Kinetis (ARM), ColdFire * Widely used in industrial applications * Mostly expensive dev boards, although there are some exceptions * [[http://www.element14.com/community/docs/DOC-46626/l/element14-exclusive-freescale-kinetis-l-based-kl25z-freedom-development-board|Freedom KL25Z - Cheap Kinetis L-based board, pin compatible with Arduino]] ===== LeafLabs Maple ===== * ARM Cortex, many pins... * USD50 * **FIXME** no experience yet ===== Microchip ===== **FIXME** * Dev boards: * ASIX PVK40 - Microchip PIC16Fxxx (84, 877, 887) - PIC16F887 - contains almost everything except ethernet and USB. [[user:blackhead]] [[http://blackhead.cz/hackerspace/equipment.html/]] ===== NXP Semiconductors ===== * 32-bit ARM Cortex-M{0,3,4}, ARM7 , ARM9 * Good support in Linux * Dev boards: * [[http://ics.nxp.com/lpcxpresso/|LPC Xpresso]] * [[http://mbed.org|mbed]] - overpriced prototyping board based on NXP LPC1768 ARM Cortex M3 with an onboard ethernet controller and online IDE ===== Parallax ===== * Propeller architecture is suitable for tasks, where parallel processing is desirable (e.g. video generation) * Dev boards: [[http://www.parallax.com/Store/Microcontrollers/PropellerDevelopmentBoards/tabid/514/CategoryID/73/List/0/SortField/0/catpageindex/2/Level/a/ProductID/509/Default.aspx| Propeller Proto Board USB]], [[http://www.parallax.com/Store/Microcontrollers/PropellerDevelopmentBoards/tabid/514/CategoryID/73/List/0/SortField/0/catpageindex/1/Level/a/ProductID/748/Default.aspx|P8X32A QuickStart]] * Well supported in Linux - [[http://hackaday.com/2012/06/20/parallax-shows-love-for-open-source-gcc-propeller/]] ===== STMicroelectronics ===== * Cheap dev boards: [[http://www.st.com/internet/evalboard/product/253215.jsp?WT.ac=fp_may12_stm32f0discovery|STM32 Discovery]] * **FIXME** ===== Texas Instruments ===== * 16-bit MSP430 * 32-bit Stellaris (ARM Cortex-M), Sitara (ARM Cortex-A), Hercules (ARM Cortex, safety critical applications) * Mediocre Linux support * Dev boards: * [[http://e2e.ti.com/group/msp430launchpad/w/default.aspx|TI Launchpad]] ($4.30 including shipping) * low-power,low-consumption,low-cost uP * flash emulator on daughterboard [[http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29]] * Wiring library (Arduino code) support at [[https://github.com/energia/Energia]] ([[user:pasky]]) * Linux support exists, but [[http://log.or.cz/?p=265|fragile serial communication]] * [[http://www.ti.com/tool/ek-evalbot|Evalbot]]