Jump to: navigation, search

Driver Control

The P-ROC can individually control 216 driver outputs. Driver outputs are typically used to control coils, lamps/leds, motors, etc. There are dedicated output pins for 32 of the 216, and the other 184 are driven through a multiplexed bus that is compatible with WPC, WPC95, Stern Whitestar, and Stern S.A.M. power driver boards.

Multiplexed Bus

The Multiplexed Bus contains:

  • 8 data bits
  • 9 enable bits

The functionality of the data and enable bits is controlled by a large set of configuration registers. For detailed information about the registers, refer to the P-ROC FPGA Specifications on the P-ROC Documentation Page.


Every millisecond, the P-ROC checks to see if the internally programmed state of a driver has changed (either by a software write or by a switch event action). When the internally programmed state of a driver with a dedicated output pin changes, the new state is reflected immediately on the pin. Circuits connected to the multiplexed bus won't see driver changes immediately. Rather, they will see the change whenever the bus logic services the changed driver. How long that can take is determined by the configuration registers.

Driver Modes

The P-ROC can automatically control drivers in certain modes so that software doesn't need to programmatically turn on/off things like blinking lights or repeatedly pulsing coils. The following modes can be used:


This is the simplest mode. Drivers in this mode are either on or off, and they remain in that state until reconfigured.

Note - Drivers connected to high current coil circuits should NEVER be turned on solidly. They should be driven with a timer (see the timed mode below).


A timed driver is turned on for a specified number of milliseconds, up to 255. When the millisecond timer expires, the driver is turned off.

This mode is recommended for high current coil circuits that need to be pulsed for short periods of time.


A scheduled driver turns on or off automatically according to a 1 second schedule. The schedule contains 32 timeslots, each lasting for 31 microseconds. When the timer enters an active timeslot, the driver turns on. When the timer enters an inactive timeslot, the driver turns off.

Note - The timed mode can also be used for scheduled drivers. When a schedule driver is configured with a timer, the timer determines how many seconds the schedule is repeated.

Scheduled drivers are recommended for blinking lamps/flashers. Various light effects can be created by assigning different schedules to a set of lamp drivers.


Patter (named after the phrase pitter-patter) drivers repeatedly turn on for a certain number of milliseconds and then off for a certain number of milliseconds.

Note - The timed mode can also be used for patter drivers. When a patter driver is configured with a timer, the driver turns on for the number of milliseconds specified by the timer. When the timer expires, the patter begins and repeats indefinitely.

This mode is provided for fine-grained control of pulsed coils, such as Stern flipper coils that don't have hold circuits. An example configuration would be to combine the Timed and Patter modes to pulse the coil and then patter it when the flipper button is pressed. The driver could then be turned off when the flipper button is released.