GEX protocol documentation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
gex-docs/UNIT_SIPO.md

1.4 KiB

SIPO - Multi-cast Shift Register Driver

SIPO stands for Serial Input Parallel Output

  • Used for building user interfaces (LED displays etc.)
  • Designed for driving 74xx595 or 74xx4094
  • Can drive multiple data lines in parallel
  • Offers direct pin access without sending data (no clock pulse)
  • Supports data latch on Store pulse (see the WRITE command for details)
  • Pin polarities are configurable in the unit settings.

The DIRECT_* commands are mostly meant for debugging purposes when trying to communicate with an unfamiliar SIPO-based board.

Commands

WRITE (0x00)

Sends data to the shift registers.

After each byte, the Shift pin is pulsed. After the last byte and the Shift pulse, the Latch data is output followed by the Store pin pulse.

The Latch data is normally 0 and doesn't matter; however, it's possible to design external circuitry that latches the data pins on the Store pulse, e.g. for brightness control or extra LEDs.

Request:

  • u16 - latch data to output before the Store pulse - all outputs, packed
  • (u8 array) x num_outputs
    • must be a multiple of the outputs count (if 1, simply the output data)

DIRECT_DATA (0x01)

Direct write to the data pins, without any pulse.

Request:

  • u16 - data to output, packed

DIRECT_CLEAR (0x02)

Pulse the Clear output.

DIRECT_SHIFT (0x03)

Pulse the Shift output.

DIRECT_STORE (0x04)

Pulse the Store output.

Events

No events defined for this unit type.