Some problems may be solved more easily by two micro-controllers working together than by one working alone. I have a scheme of connecting two MSP430 chip. One plays the role of a traditional micro-controller; the other plays the role of a port expender, peripheral chip, or co-processor.
This may be accomplished more easily by two (or more) people working together than by me working alone. Anybody interested in a joint or group effort? Please respond.
I designed an RS-232 comms hub once which used a PIC interfaced to three AVRs via SPI.
Leon
I was thinking of controlling the co-processor through its back door (SBW) so that its resources (CPU, Flash, Ram, UART, GPIO etc.) at the front door can all be fully utilized for application.
What do you think?
I am currently neck-deep in a project that was supposed to be only waist-deep so I can’t offer any help just now.
Depending on how badly you want to do this, I would see it as a relatively straightforward task using FORTH Inc’s SwiftX. By how badly, I mean would you consider spending the $US 395 for their lite version? A word of caution though, althought it is relatively simple FORTH is very different from anything else.
http://tinyurl.com/4t9r83
SwiftX Forth has a fairly simple multitasking scheme built into it. So your idea would require only that the master processor interrupt the slave and wake up a task to get whatever commands are required from the master. When done the slave could interrupt the master and visa-versa.
Other than being a user of their software (Swiftx lite for the MSP430) I have no connection with FORTH Inc. That said, FWIW I would never consider going back to C/C++ for embedded system development.
I just got my software to control the 4D-Systems 1,69" OLED display (Sparkfun SKU#: LCD-08543) running yesterday - it is georgeous! I hope to be outputting scaleable stroke fonts (Hershey) to it by the end of the day.
Thank you. What I have so far is like this:
==============================
Two Wire Total Control
Rienda por dos alambres (Rpda)
==============================
Main MSP430 Second MSP430
------------- ---------------
| | | |
| | | |
| GPO |->>------------>>-| SBWCLK |
| | | |
| GPIO |-<>---/\/\/\---<>-| SBWDIO |
| | 560R | |
| | | |
| | | |
------------- ---------------
Bit-banging: SBW-JTAG:
------------ -------------
~ 300 bytes Already exits
in firmware in hardware
------------ -------------
It might almost appear that SwiftX incorporates exactly what you want. In the past FORTH was typically entirely resident on the target processor. SwiftX is a cross-compiler with compilation done on the PC and the compiled result loaded into the target microprocessor. Once loaded, you can control the target from their debug window much as you would with a totally target-resident system. This is all done via the JTAG port through what they call XTL. - Cross Target Link
Unfortunately, to see exactly what is going on at both ends of the XTL you need the pro version of Swiftx. It has all source code available, the lite version has only the target code available.