Interfacing new driver board with Arduino

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.

  • Gerry

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

  • Gerry

http://www.pinballcontrollers.com