general i2c ? - LPC2148

Started by Sutton Mehaffey November 7, 2006
I know this is a general question, but didn't know where to post. I
know quite a few members have used I2C, as have I. And, I've gotten
my LPC stuff to work pretty well with several I2C chips. But, I have
a question that seems never to be included in data sheets that I
wanted to see if other I2C users can confirm.

When reading any data from any chip, using the standard I2C protocol
for a read (START, RESTART), there must be an extra cycle before
reading data (otherwise you will get SLAVE ADDR + R). Then after the
next to last read of data, turn off ACK, wait for status, read last
byte, then immediately issue STOP.

This read scenario seems to work correctly for each chip I am using,
but the 'extra cycle on read' is rarely specified in the data sheets
(I have found it in one). It seems as though there could be a better
algorithmic description in data sheets, since the I2C standard
protocols are the same. At least, I've found it to be so on the chips
I'm using.

By the way, one of our members (I can't remember who (Ken?))
recommended to me MCC's I2C monitor and support software, which had
been invaluable to getting I2C to work. It is well worth the investment.

Can anyone else confirm this read process?

Sutton Mehaffey

An Engineer's Guide to the LPC2100 Series