16 GPIO pins over two wires — what the I²C bus buys you
The Maxim MAX7312ATG+ is a 16-bit I/O expander that connects to a host controller over an I²C or SMBus interface running at up to 400 kHz. It adds sixteen push-pull GPIO pins — each capable of sourcing 31 mA or sinking 43 mA — to a system that has only a 2-wire bus available. A dedicated interrupt output (active-low, open-drain) lets the host know when an input changes state, so the firmware does not have to poll the bus.
Interrupt output saves firmware cycles
The interrupt output (INT) is pulled low whenever an input pin changes from its previously read state. This is the difference between a polling loop that reads all 16 pins every few milliseconds and a sleep-and-wake architecture that only consumes bus bandwidth when something actually happens. For a battery-powered sensor node or a panel with pushbuttons, that interrupt line can also serve as a wake-up source for the main MCU.
Power-on reset (POR) and push-pull outputs
The POR feature ensures that all I/O pins come up in a known input state on power-up, which avoids unintended relay or LED activation during the supply ramp. The push-pull output stage can drive LEDs directly through a series resistor, or switch a small relay coil with an external transistor — the 43 mA sink capability handles a standard indicator LED with margin.
Package and footprint: 24-TQFN with exposed pad
The pad is electrically connected to GND, so the same via pattern also provides a low-inductance ground return.
