Different flavours of microcontrollers

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:

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
or the chip manufacturer/distributors.

For RTOSes C Compilers and other tools for the AVR look at


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

The AT91SAM7S256 has 256 Kbyte high-speed Flash and a 64 Kbyte SRAM:


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.

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
! 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

2 thoughts on “Different flavours of microcontrollers”

  1. 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.

  2. 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?

Comments are closed.