Dual core… Arduino?
posted Apr 11th 2008 10:51pm by Will O'Brienfiled under: misc hacks

[John Ryan] posted his dual core Arduino rig on the Arduino forums. These two ATMega168 chips share the same 16Mhz resonator and I2C bus - allowing them to run in semi-parallel. The uC’s don’t actually communicate with each other, but they run rather nicely as concurrent circuits. It’s a pretty interesting method of adding I/O pins to a project for a minimal cost.

He wired the chips in parallel - this doesn’t seem to be a good idea. Resonators are usually driven by a not gate - one pin is an input, the other is an output. It’s wired so that the two outputs are driving each other — bad practice! This will waste energy and stress the parts. It’ll also create a lot of electrical noise as the power supply is repeatedly asked to supply the short circuit current every oscillation.
The better solution is a master/slave setup. One device will control the oscillator (connect XTAL1 and XTAL2 as usual) - this is the master. The other device is set up in “external oscillator” mode, with its input driven from the first. I looked at the spec sheet quickly, and it looks like XTAL2 is the output and XTAL1 is the input - this means you should connect XTAL2 of the master to XTAL1 of the slave. (you can verify this with an oscilliscope - the output waveform should be the squarer one)
—
On another note, I’ve thought it would be fun to take a 10 x 10 array of these tiny 100 MHz processors and make a 10GHz-equivalent computer on a 4×4″ pc board:
http://www.silabs.com/public/documents/tpub_doc/dshort/microcontrollers/small_form_factor/en/c8051f365_short.pdf
but, with limited communication, it could only run certain apps well.
Posted at 1:56 am on Apr 12th, 2008 by morcheeba