I am using a 3406B with PicoScope 6.7.21.2 and having problems decoding I2C. It seems that Repeated Start is not supported, the decoding gets out of sync when this is used. Can someone confirm this, or am I doing something wrong?
Hi,
attached is an example file showing one short package that reads the content of a registry . The target is a Freescale MMA8451Q accelerometer, which uses an I2C mechanism called Repeated Start. In this case the Host starts with a Write Address to device 0x1D, followed by the registry to read, 0x0C. Then a Repeated Start occures, repeating the slave address with read flag, followed by the data byte.
You can see that the decoder gets out of sync, probably because of the extra Clock pulse inserted by the Repeated Start.
Hi,
I have a similar problem with I2C. I'm running PicoScope® 6 - PC Oscilloscope software version: 6.7.27.5.
The I2C serial protocol decoder doesn't recognize repeated start condition and stop condition. The REPEATED START condition is something that can happen on the BUS between a normal START condition and a STOP condition.
Anyway, in my case, the STOP condition is not recognized too. If you look at the attached file in the first buffer page, @time 113 us a STOP condition occurs (the SDA line has a LOW-to-HIGH transition when the SCL line stay HIGH). As you can see the software doesn't recognize it, and identify the next packet as a normal data packet. At the same time, the immediately next START condition (@115 us) is ignored, then all the next data will be wrongly decoded.
In the second page buffer you can see the wrong behavior of the Picoscope software during the REPEATED START condition. The REPEATED START condition occurs @58 us, it is completely ignored by the serial protocol decoder.