{"product_id":"16-bit-i-o-expander-with-serial-interface-spi-or-i2c","title":"16-Bit I\/O Expander with Serial Interface (SPI or I2C)","description":"\u003cp\u003e\u003cspan\u003eThis module provides 16-bit, general-purpose parallel I\/O expansion for I2C or SPI bus applications. The \u003c\/span\u003e\u003cstrong\u003eMCP23017\u003c\/strong\u003e\u003cspan\u003e chip supports the I2C interface and the \u003c\/span\u003e\u003cstrong\u003eMCP23S17\u003c\/strong\u003e\u003cspan\u003e chip is used for the SPI interface. The board can be populated with either SPI or I2C chip. Follow the connection diagrams for interface details.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePower Supply 1.8V to 5.5V DC\u003c\/li\u003e\n\u003cli\u003e16-Bit Remote Bidirectional I\/O Port (Pins GPA7, GPB7 are output only for MCP23017): – I\/O pins default to input\u003c\/li\u003e\n\u003cli\u003eHigh-Speed I2C Interface (MCP23017):100Khz\/400Khz\/1.7Mhz\u003c\/li\u003e\n\u003cli\u003eHigh-Speed SPI Interface (MCP23S17): – 10 MHz (maximum)\u003c\/li\u003e\n\u003cli\u003eThree Hardware Address Pins to Allow Up to Eight Devices on the Bus\u003c\/li\u003e\n\u003cli\u003eConfigurable Interrupt Output Pins: Configurable as active-high, active-low or open-drain\u003c\/li\u003e\n\u003cli\u003eINTA and INTB Can Be Configured to Operate Independently or Together\u003c\/li\u003e\n\u003cli\u003eConfigurable Interrupt Source: Interrupt-on-change from configured register defaults or pin changes\u003c\/li\u003e\n\u003cli\u003eHeader Connector for I2C\/SPI Interface\u003c\/li\u003e\n\u003cli\u003eHeader Connector provided for 16 I\/0 Lines, VCC and GND for easy interface\u003c\/li\u003e\n\u003cli\u003ePCB Dimensions 43.97 x 24.29 mm\u003c\/li\u003e\n\u003cli\u003e5mm Mounting Holes\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eI2C VS SPI Pins\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNC\/CS: Input NC (MCP23017)\/Chip Select (MCP23S17)\u003c\/li\u003e\n\u003cli\u003eSCK: Input Serial clock input\u003c\/li\u003e\n\u003cli\u003eSDA\/SI: Input\/Output Serial data I\/O (MCP23017)\/Serial data input (MCP23S17)\u003c\/li\u003e\n\u003cli\u003eNC\/SO Output: NC (MCP23017)\/Serial data out (MCP23S17)\u003c\/li\u003e\n\u003cli\u003eINTB: Output Interrupt output for PORTB. Can be configured as active-high, active-low or open-drain.\u003c\/li\u003e\n\u003cli\u003eINTA: Output Interrupt output for PORTA. Can be configured as active-high, active-low or open-drain.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMCP23X17\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003econsists of multiple 8-bit configuration registers for input, output and polarity selection. The system host can enable the I\/Os as either inputs or outputs by writing the I\/O configuration bits (IODIRA\/B). The data for each input or output is kept in the corresponding input or output register. The polarity of the Input Port register can be inverted with the Polarity Inversion register. All registers can be read by the system host. The 16-bit I\/O port functionally consists of two 8-bit ports (PORTA and PORTB). MCP23X17 can be configured to operate in the 8-bit or 16-bit modes via IOCON.BANK. There are two interrupt pins, INTA and INTB, that can be associated with their respective ports, or can be logically OR ’ed together so that both pins will activate if either port causes an interrupt. The interrupt output can be configured to activate under two conditions (mutually exclusive):\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eWhen any input state differs from its corresponding Input Port register state. This is used to indicate to the system host that an input state has changed.\u003c\/li\u003e\n\u003cli\u003eWhen an input state differs from a preconfigured register value (DEFVAL register).\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eThe Interrupt Capture register captures port values at the time of the interrupt, thereby saving the condition that caused the interrupt. The Power-on Reset (POR) sets the registers to their default values and initializes the device state machine. The hardware address pins are used to determine the device address.\u003c\/p\u003e\n\u003ch3\u003eConnection\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCN1: Pin 1=01\/PB7, Pin 2=02\/PB6, Pin 3=03\/PB5, Pin 4=04\/PB4, Pin 5=05\/PB3, Pin 6=06\/PB2, Pin 7=07\/PB1, Pin 8=08\/PB0, Pin 9=09\/PA0, Pin 10=10\/PA1, Pin 11=11\/PA2, Pin 12=12\/PA3, Pin 13=13\/PA4, Pin 14=14\/PA5, Pin 15=15\/PA6, Pin 16=16\/PA7\u003c\/li\u003e\n\u003cli\u003eCN2: Pin 1 to 16 GND.\u003c\/li\u003e\n\u003cli\u003eCN3: Pin 1 to 16 VCC\u003c\/li\u003e\n\u003cli\u003eCN4: Pin 1 = VCC, Pin 2 =Interrupt B, Pin 3 = Interrupt A, Pin 4 = Serial Output, Pin 5= SI-SPI\/SDA-I2C, Pin 6=SCK-SPI\/SCL-I2C, Pin 7= CS-SPI, Pin 8 = GND\u003c\/li\u003e\n\u003cli\u003eD1: Power LED\u003c\/li\u003e\n\u003cli\u003eJumper J1 = Address A0 (PCB Solder Jumper)\u003c\/li\u003e\n\u003cli\u003eJumper J2 = Address A1 (PCB Solder Jumper)\u003c\/li\u003e\n\u003cli\u003eJumper J3 = Address A2 (PCB Solder Jumper)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"dotfry","offers":[{"title":"Default Title","offer_id":47200929448108,"sku":"C111","price":12.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0757\/6436\/7532\/files\/C111A.jpg?v=1789369379","url":"https:\/\/dotfry.com\/products\/16-bit-i-o-expander-with-serial-interface-spi-or-i2c","provider":"dotfry","version":"1.0","type":"link"}