Tim‘s friend Tony Cole wrote this list of various microcontrollers and what they’re suitable for. It’s really interesting .. much more useful than a dry list of technical specs. So, many thanks to Tony for his expertise and wisdom:
For very small tasks look at the MicroChip PIC, I think there is a GNU C compiler for it now, but I use Hi-Tech C Compiler. A very fast PIC copy is the Scenix. Others: Zilog Z8 - I think this has free C Compiler and network stack. For small tasks look at the Atmel AVR 8-bit micro controllers: http://www.atmel.com/dyn/products/devices.asp?family_id=607 The one I use is the ATmega128 128-Kbyte self-programming Flash Program Memory, 4-Kbyte SRAM, 4-Kbyte EEPROM, 8 Channel 10-bit A/D-converter. JTAG interface for on-chip-debug. Up to 16 MIPS throughput at 16 MHz. 2.7 - 5.5 Volt operation. You can get a in-circuit programmers from Kanda http://www.kanda.com/index.php3?cs=1& or the chip manufacturer/distributors. For RTOSes C Compilers and other tools for the AVR look at www.avrfreaks.net ########### For bigger/faster tasks the Atmel AT91 SAM 32-bit ARM processors are very good, I've used the AT91SAM7S64 Atmel's AT91SAM7S64 is a member of a series of low pincount Flash microcontrollers based on the 32-bit ARM RISC processor. It features a 64 Kbyte high-speed Flash and an 16 Kbyte SRAM, a large set of peripherals, including a USB 2.0 device, and a complete set of system functions minimizing the number of external components. The device is an ideal migration path for 8-bit microcontroller users looking for additional performance and extended memory. The AT91SAM7S256 has 256 Kbyte high-speed Flash and a 64 Kbyte SRAM: http://www.atmel.com/dyn/products/devices.asp?family_id=605 Look at: The AT91SAM7S64-IAR bundles the AT91SAM7S-EK evaluation board, a USB JTAG ICE and a 32 KB limited IAR KickStart toolchain. It enables the evaluation of and code development for applications running on an AT91SAM7Sxx device. This only cost about £100 and is a good starting point. ECOS RTOS might be worth looking at: http://ecos.sourceware.org/ there is also a book on this ROTS. Or search the web for a free RTOS: e.g. http://www.freertos.org/ ########### Unfortunately, all the above will not realistically run interpreted languages, such as python, java, scheme, lisp - but you could search the web, someone might have done it!. These sorts of languages require an OS like Linux. If you want to run Linux look at the many embedded PCs available, or the Atmel AT91RM9200 microcontroller (ARM9 CPU with MMU). The AT91RM9200-EK Evaluation Kit supports the AT91RM9200 ARM9-based 32-bit RISC microcontroller and enables real-time code development and evaluation. http://www.atmel.com/products/AT91/ It has 32MBytes of SDRAM and runs at 200MHz: The AT91RM9200-EK Evaluation Board The board consists of an AT91RM9200 together with the following: ! 8 Mbytes of parallel Flash memory ! Four banks of 2M x 32-bit SDRAM ! DataFlash® or SD/MMC memory expansion socket ! Additional DataFlash memory expansion socket ! Digital-to-Analog Converter (DAC) for a stereo audio signal ! Four communication ports (USB host and device, Ethernet, serial and DBGU) ! Graphic controller with output to a standard VGA monitor ! JTAG/ICE, ETM and code test port interface ! Expansion connector ! Onboard prototype area I have a working Linux tree and GNU C Compilers for the AT91RM9200-EK, you can do a lot on this baby. It is well supported see http://www.arm.linux.org.uk/
2 replies on “Different flavours of microcontrollers”
Hi Andrew,
I read a blog of you about the BCM2040 bluetooth chip and possible use in the twiddler. Did you do anything with this idea? I’m also trying to create a bluetooth version of the twiddler, but don’t know where to start…
Sorry for this off-topic comment, but i couldn’t find your email address, and comments on the twiddler blog are closed.
No, I didn’t pursue that idea much further. There was some concrete reason why I stopped, but I can’t remember it now. Maybe the BCM2040 chip expects to talk directly to a standard keyboard matrix, whereas the twiddler obviously has a very different layout? I can’t remember for sure. Still, even if that was the reason, it wouldn’t be hard to add in some glue layer to covert between the two. It’d maybe be easiest to build a generic PS/2-keyboard-in, bluetooth-out box, and plug the twiddler into that?