On Tuesday 15 July 2003 06:23 am, Oliver Endriss wrote: > On Monday 14 July 2003 17:54, Johannes Stezenbach wrote: > > Oliver Endriss wrote: > > > On Monday 14 July 2003 14:33, Johannes Stezenbach wrote: > > > > What I get from Roberts description it's not a timing problem (it's > > not sufficient to udelay(1), or do a dummy read from some other > > register), but one should explicitely do one dummy read from IICSTA, > > discard the value, and then do a second read to get valid data. > > Hm, I tested this and could *not* verify this problem: > Reading IICSTA always returns a valid value (busy flag set). > Really strange. Anyway, to be on the safe side, a dummy read > should be added. >
Sorry to jump in so late on this discussion. I played with the I2C bus awhile back, and found that with the system I was working on it *was* a timing problem. Two reads just gave the I2C bus enough time to settle. This combination worked every time: udelay(2) and then loop until (status shows not busy && the upload bits for MC2 == 0). Maybe I'm way off and missed something reading the spec, but this has worked without any problems for a while... though I have not tested to see at what speed I can load data with this. Anyhow, that was my experience with the I2C bus. Matt Davis -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
