MCP23017 GPIO Expander Driver (I2C)

IntermediateChallenge
Sign in →
00:00
01General Operation

The module drives a MCP23017 GPIO expander via I2C. The I2C driver is provided as read-only. A FSM orchestrates initial configuration (direction registers) and cyclic reading of the 16 GPIOs with a configurable pause between cycles.

  • System clock: 250 MHz
  • Inter-cycle pause: 50 µs
  • Synchronous active-low reset
02Interface
SignalDirectionWidthDescription
clkInput1 bitClock
reset_nInput1 bitreset_n
enaInput1 bitena
addrInputN bitsaddr
rwInput1 bitrw
data_wrInputN bitsdata_wr
busyOutput1 bitbusy
data_rdOutputN bitsdata_rd
sdaInput/Output1 bitsda
sclInput/Output1 bitscl