I am starting to play with I2C and the 8574 I/O expander chip, and I am running into some of those "I don't think I understand the manual" types of problems. Manual: http://www-us.semiconductors.philips.com/pip/PCF8574.html I think I grok the cases where the chip is used as either 8 bits of input or 8 bits of output, but I am clueless about section 7.3, where it talks about using some pins as inputs at the same time that other pins are used as outputs. The reference to Figure 15 isn't helping. It sounds like the chip is mainly intended to be used as an "all inputs" or "all outputs" device, but it has some voodoo that can make it pretend to do mixed I/O if you line up various planets... The other bit of confusion has to do with the "how are i2C slaves intended to be used" department. The timing diagrams imply that you can read a slave's data by either START, address-a-chip, READ, STOP or START, address-a-chip, READ, READ, READ, READ, ..., STOP In the second case, I'm assuming that since the 8574 only has a single 8-bit chunk of data to read, it simply resends the current (possibly changing) states as the READs are processed. Or (and thus my confusion), is the multi-read case only for devices that have more than one byte of data to read? Obviously, I'm missing something basic here - can anyone share a clue or two to help? -John -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.