I’m wrapping up the design of a [driver board that I started building for the homebrew pinball community. The idea is that a user can create a serial chain of these boards (RS-485) to drive as many things as they have on their machines. The original intent was to be driven by a [P-ROC board, but it occurs to me it would be silly not to make it work with an Arduino, assuming the specs line up.
As the design stands today, the P-ROC board masters the bus by sending commands out serially on a standard CMOS output pin. This goes directly into a “Master Driver Board” that converts it to RS-485 to send down the rest of the chain. I suppose this Master board is similar to an Arduino RS-485 shield.
The commands are currently sent out at 12 Mbps, since the P-ROC runs on a 12 MHz clock. Each transaction is approximately 32 bits long. I made up a very simple protocol.
I’ve never used an Arduino, but I know some people who would like to drive a chain of these boards with one. My questions:
Is the Arduino capable of interfacing to my Master board at 12 Mbps?
Can it supply 4 bytes per transaction fast enough not to starve the receiver?
Would you recommend I drop down to 8 Mbps so we can use the Arduino’s SPI (MOSI pin?) at clock/2?
Any other suggestions?
Thank you.
I wound up buying an Arduino Uno (thanks Sparkfun!) and trying this myself. There were initially 2 issues. One, the SPI MOSI pin idles high, and my protocol was expecting it to idle low. Two, the Arduino wasn’t fast enough to send back-to-back SPI bytes without any idle cycles in between, and my protocol was expecting 4 bytes in a contiguous word.
I have reworked my driver board protocol to accept high idle cycles and to accept idle cycles between bytes within a transaction, and it’s now working perfectly. The arduino is fully capable of controlling my driver boards at 8 MHz now.
In a few weeks time, I will be making the driver boards available. There are two main types of boards: Sink-16 and Source-Sink-8.
Sink-16 boards have 16 low-side circuits capable of activating high current devices operating on anything from 5V-80V DC.
Source-Sink-8 boards have 8 high side circuits to source up to 20V DC and 8 5V-80V low side circuits.
These were initially designed for the homebrew pinball crowd (to drive coils, motors, flashlamps, lamp/leds, lamp/led matrixes, etc), but they’ll work well for a number of other applications.
There’s more info at [PinballControllers.com.
The new driver boards are now available at [PinballControllers.com. Current offerings include boards with 16 individual driver circuits (up to 80V DC) and boards that can control 8x8 matrixes with up to 20V DC using 8 source circuits and 8 sink circuits. Up to 16 boards can be chained together and individually addressed.
I’ve included an [arduino sample driver board control sketch.
http://www.pinballcontrollers.com](Circuit Boards Archives - Multimorphic, Inc)](http://www.pinballcontrollers.com)
We put together a demo fixture for these new driver boards and made a demonstration video.
Here’s the original demo video: http://www.youtube.com/watch?v=NoaVZTSfp4o
Here’s the fixture being driver by an Arduino Uno: http://www.youtube.com/watch?v=aS9W0Fbu6eA
http://www.pinballcontrollers.com