diff options
-rw-r--r-- | i2c/microchip_mcp23017/README.md | 53 | ||||
-rw-r--r-- | i2c/microchip_mcp23017/mcp23017_counter_a_write.sr | bin | 0 -> 4974 bytes | |||
-rw-r--r-- | i2c/microchip_mcp23017/mcp23017_counter_init_ab_write.sr | bin | 0 -> 6490 bytes | |||
-rw-r--r-- | i2c/microchip_mcp23017/mcp23017_counter_init_ab_write_read.sr | bin | 0 -> 9432 bytes |
4 files changed, 53 insertions, 0 deletions
diff --git a/i2c/microchip_mcp23017/README.md b/i2c/microchip_mcp23017/README.md new file mode 100644 index 0000000..9543798 --- /dev/null +++ b/i2c/microchip_mcp23017/README.md @@ -0,0 +1,53 @@ +------------------------------------------------------------------------------- +Microchip MCP23017 I/O expander with I2C interface +------------------------------------------------------------------------------- + +This is a set of example captures of the MCP23017 16-bit I/O expander with +an I2C interface. For details see the MCP23017/MCP23S17 datasheet which is +titled "16-Bit I/O Expander with Serial Interface": + + http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf + + +Logic analyzer setup +-------------------- + +The logic analyzer used was a Saleae clone (samplerate 1MHz). In addition +to the I2C datalines, 6 output pins are captured too. + +The host was a Raspberry Pi using Python to access the I2C port. The bitrate +decreased after a few 100ms. + + Probe MCP23017 + ------------------- + 0 A0 + 1 A1 + 2 A2 + 3 B0 / A3 + 4 B1 / A4 + 5 B2 / A5 + 6 SDA + 7 SCL + + +mcp23017_counter_a_write.sr +--------------------------- + +Count the Registers OLATA ascending. The lowest 6 bits of the Output A Port +are captured too (A0 - A5). + + +mcp23017_counter_init_ab_write.sr +--------------------------------- + +Reset all registers, then count the registers OLATA ascending and OLATB +descending. Both registers are set using one word write operation. The +lowest 3 bits of both output ports are captured too (A0 - A2, B0 - B2). + + +mcp23017_counter_init_ab_write_read.sr +------------------------------------- + +Reset all registers, then count the registers OLATA ascending and OLATB +descending. Both registers are set and read using one word write operations. +The lowest 3 bits of both output ports are captured too (A0 - A2, B0 - B2). diff --git a/i2c/microchip_mcp23017/mcp23017_counter_a_write.sr b/i2c/microchip_mcp23017/mcp23017_counter_a_write.sr Binary files differnew file mode 100644 index 0000000..9a12416 --- /dev/null +++ b/i2c/microchip_mcp23017/mcp23017_counter_a_write.sr diff --git a/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write.sr b/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write.sr Binary files differnew file mode 100644 index 0000000..9b9caf4 --- /dev/null +++ b/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write.sr diff --git a/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write_read.sr b/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write_read.sr Binary files differnew file mode 100644 index 0000000..8324e37 --- /dev/null +++ b/i2c/microchip_mcp23017/mcp23017_counter_init_ab_write_read.sr |