Bob Axtell wrote: > The ACK signal is the way that the Master knows that everything is > working. It is important to distinguish between master/slave and sender/receiver. The ACK bit is always driven by the receiver, whether that is the master or the slave. > 3. Usually there are one or more bytes of address bytes (depends on > what the > SLAVE chip does) There are only 2 types of IIC addresses, 7 bit and 10 bit. I've found chips that support only 7 bit to be far more common. While it is possible that there is an additional address byte since 10 bit addressing could be used, I would NOT say that it is "usual". For most ordinary purposes you can consider IIC to be a 7 bit addressed bus and forget about 10 bit address mode. In no cases are there more than 2 address bytes. > 4. Finally, if data is to be written to the slave, it acknowledges > that > it is taking > each byte by pulling down during the 9th. When the chip can no longer > take anymore data, it no longer acknowledges by pulling down, > indicating to the Master that fact. This is correct. I just want to point out that this is only one way of ending a write sequence. The master can chose to stop at any time by issuing a BUS STOP, whether the slave ACKed the last byte or not. > 2. In order to set the address before sending the data, the read > cycle looks exactly like a WRITE transmission, except that after the > addresses are sent, the Master issues a STOP FLAG. No! Whether a IIC sequence is a read or a write is indicated by the LSB of the first address byte. Both master and slave then know which direction subsequent bytes will be sent. When the master writes a BUS STOP, the IIC sequence is over. Any new sequence will need to start with a new BUS START and address byte, and therefore can be read or write indpendently of the previous. In IIC, there is no requirement to preserve state from before the last BUS START or BUS STOP. Whatever happens in one sequence has no effect on the next as far as the IIC bus is concerned. > This transmission scheme, developed in the 1970s to send control info > on TV chassis, remains to this day the most efficient 2-wire > signalling method ever > developed. That's a very general statement, which is neither useful nor correct. IIC can be a good solution to particular problems, but can't possibly be the "most efficient" because each application has its own set of tradeoffs and "efficiency" will have many different meanings in different contexts. Comparing IIC to RS-485 to CAN, for example, outside the context of a particular problem is like comparing apples to cars to fenceposts. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist