Oct 052008
 
Microcontrollers - Thoughts

While looking for how to connect a 3.3V I/O pin to a 12V 2A halogen lamp (see here and here), I found some interesting alternatives to ‘normal’ microcontrollers: the Propeller from Parallax and XCore from XMOS.

Those 2 products look very similar:
The Propeller has

  • 8 CPUs
  • 32 KB shared RAM
  • 8 KB RAM per CPU with a interpreter for a language called SPIN (think: byte code interpreter a la Java)
  • 32 I/O lines total with 40mA sink/source

Compare with the XS1-G4:

  • 4 tiles (AKA CPU cores) with 8 threads
  • 64 KB RAM per tile
  • communication links between all tiles (like Transputers had, except on-chip)
  • 64 I/O lines per tile (with 4mA sink/source)

The Propeller is supposed to be a microcontroller. The XMOS chip more a FPGA replacement, especially when general purpose CPUs are needed, and the latter looks like a grown-up Propeller with more of everything.

What they have in common:

  • 3.3V I/O (they have this in common with the LPC2148)
  • no interrupts
  • no periphery except timers
  • whatever you need (e.g. serial port I/O, I2C bus), you have to program yourself

Interesting concept those two.

In my case both are, while interesting, not so suitable: the Propeller’s development boards are not plentiful and not cheap (about US$99), compare that with US$39 for a small LPC board. The XMOS development is US$99 too, but that’s a pretty naked PCB. The latter chip shines when lots of I/O is needed (like this TFT display which needs 28 I/O lines to be updated every 110ns (9MHz pixel clock) to drive the display).

Should an inexpensive and usable Propeller board exist (this would qualify as it’s US$40, but I cannot order it as I cannot read Thai and they don’t sell the board to non-Thai-speaking people yet), that might change as it looks like a lot of fun to program: less figuring out how to initialize a component like the I2C controller and instead more programming it yourself.

Update: I could order that Propeller board from ETT and it’s neat and cute, but not much time to play with it except making sure it works. And compiling a small program to verify I can upload code.