MAX7323
Accessing the MAX7323
The MAX7323 is accessed through an I2C interface. The
transition flags are cleared, and INT is deasserted each
time the device acknowledges the I2C slave address.
A single-byte read from the MAX7323 returns the sta-
tus of the four I/O ports and the four output ports (read
back as inputs).
A 2-byte read returns first the status of the four I/O ports
and the four output ports (as for a single-byte read), fol-
lowed by the four transition flags for the four I/O ports.
A multibyte read (more than 2 bytes before the I2C
STOP bit) repeatedly returns the port data, alternating
with the transition flags. As the input data is resampled
for each transmission, and the transition flags are reset
each time, a multibyte read continuously returns the
current data and identifies any changing I/O ports.
If a port data change occurs during the read sequence,
INT is reasserted after the I2C STOP bit. The MAX7323
does not generate another interrupt during a single-
byte or multibyte read.
Port data is sampled during the preceding I2C
acknowledge bit (the acknowledge bit for the I2C slave
address in the case of a single-byte or 2-byte read).
A single-byte write to the MAX7323 sets the logic state
of the four open-drain I/O ports and four push-pull
outputs.
In a 2-byte write to the MAX7323, the first byte sets the
logic state of the four open-drain I/O ports and four
push-pull outputs, while the second byte sets the inter-
rupt mask bits for the four open-drain I/O ports.
Reading from the MAX7323
A read from the MAX7323 starts with the master trans-
mitting the MAX7323’s slave address with the R/W bit
set high. The MAX7323 acknowledges the slave
address, and samples the ports during the acknowl-
edge bit. INT deasserts during the slave address
acknowledge.
Typically, the master reads 1 or 2 bytes from the
MAX7323, each byte being acknowledged by the mas-
ter upon reception, with the exception of the last byte.
When the master reads 1 byte from the MAX7323 it
subsequently issues a STOP condition (Figure 6).
The MAX7323 transmits the current port data, clears
the change flags, and resets the transition detection.
INT deasserts during the slave acknowledge. The new
snapshot data is the current input port data transmitted
to the master, so any input port changes that occur dur-
ing the transmission are detected. INT remains high
until the STOP condition.
The master can read 2 bytes from the MAX7323 and
then issues a STOP condition (Figure 7). In this case, the
MAX7323 transmits the current port data, followed by the
change flags. The change flags are cleared, and transi-
tion detection restarted. INT goes high (high impedance
if an external pullup resistor is not fitted) during the slave
acknowledge. The new snapshot data is the current port
data transmitted to the master, so any port changes
occurring during the transmission are detected. INT
remains high until the STOP condition.
I2C Port Expander with 4 Push-Pull Outputs
and 4 Open-Drain I/Os
10
______________________________________________________________________________________
SDA
SCL
DATA LINE STABLE;
DATA VALID
CHANGE OF DATA
ALLOWED
Figure 3. Bit Transfer
SCL
SDA BY
TRANSMITTER
CLOCK PULSE
FOR ACKNOWLEDGMENT
START
CONDITION
SDA BY
RECEIVER
12
89
S
Figure 4. Acknowledge