technology, scones, nonsense






Subscribe to my RSS Feed


IO Ports

The IO Port plugin uses a Microchip MCP23S17 SPI port expander to provide 16 configurable input/output lines available in two 8-bit ports. Up to 8 IO Port plugin boards can be cascaded from one lettuce core SPI connector, via the cascade connector J2, with jumpers S1-S3 used to give each board a unique address.

Bare ioport circuit board

Description [size] Format
Circuit schematic Adobe Acrobat PDF
PCB layout Adobe Acrobat PDF


The plugin is designed to interface with the Lettuce-v1 core board via the SPI header. Because numerous other boards may be plugged into the IO Port board, the connection to the lettuce core board can be made by a short length of ribbon cable. The mainboard connector J1 has an extra set of pins to accomodate this configuration.

IO Port header

8-bit IO Port, plus power.

The IO Port connector is implemented as follows:

Pin Name Purpose
1 Vdd +3.3v supply
2 Gnd Ground
3 D0 Digital input/output bit 0
4 D1 Digital input/output bit 1
5 D2 Digital input/output bit 2
6 D3 Digital input/output bit 3
7 D4 Digital input/output bit 4
8 D5 Digital input/output bit 5
9 D6 Digital input/output bit 6
10 D7 Digital input/output bit 7

Component list

Below is a full list of components required to build the IO Port plugin board.


ID Value Package Description
U1 MCP23S17 SO28 16-bit SPI port expander


ID Type Description
J1 2x4 100mil R/A socket or header* Core SPI socket
J2 2x4 100mil R/A header SPI cascade header
J3 2x5 100mil header IO Port A
J4 2x5 100mil header IO Port B
S1 1x3 100mil header SPI Address bit 0
S2 1x3 100mil header SPI Address bit 1
S3 1x3 100mil header SPI Address bit 2

* = Straight header should be used for ribbon cable connection.


ID Value Package Description
R1 1K 0805 Plugin SPI ID
R2 10K 0805 Interrupt pull-up
Updated on 2010-04-25 13:38:04 +0000 | Requested on 2020-10-27 11:38:08 +0000