Friday, January 20, 2012

Costs of a multiple mcu system (back of envelope)

If physical size isn't an issue (you don't want the tiniest of footprints)  and unit cost isn't measured in cents, have you considered a multi-mcu system?  If your system is highly interrupt driven (receiving lots of I/O from more than 1 place), then you'll need either an OS or at least some solid state based design to handle the concurrency.

If I can get 3 Silabs 8051 variants for between $12-$15, I would need just around 6 caps and resistors to get it up and running.  So, total MCU costs would be $15 max. These old 8-bit workhorses are self contained systems. They rarely need an external crystal, often come with built in regulators, and are meant to have a low passive component count.  You can just "drop" them in with just a few millimeters of board space.

What does this get me? Potentially less complexity for the software.  Consider assigning your MCUs as thus: Each I/O subsystem gets its own MCU for processing.  You can design, code and test each subsystem separately.  With a means of message passing (SPI, shared memory/flash, etc) you now have an integrated system.

This is hardware based functionality factoring.  The industry already does this. If you have bought a GPS module, a cellular modem or even an (micro)SD card you have bought an MCU+X (where X is the functionality).  Peripherals often come with their own embedded MCUs (with custom firmware) .  However, we expect those peripherals to be (relatively) flawless.

Software, on the other hand, is under constant revision,  bug fixes and improvements.

Consider this: If you buy a memory hardware module that has built in support for FAT filesystems (maybe accessed via a UART or SPI), then you expect that hardware module to work perfectly. It is a $5 piece of hardware that should work out of the box. There is no notion of "field" upgrades.

However, if you have bought (or downloaded) a FAT filesystem as a software library, you'll see a few revisions/improvements with a release cycle. It doesn't have to work perfectly. You are expected to upgrade occasionally.

Hardware is getting cheap enough that (for small unit counts) we should seriously consider multiple MCU systems.

Curiously, GreenArrays has side stepped this issue and simple incorporated a bunch of small MCUs into one package.

No comments: