
I am troubleshooting an I2C device with the Beagle I2C/SPI Protocol Analyzer. Looking at the captured data on Data Center Software, I see several error codes. What do these error codes indicate, and what are the causes?
Here is the captured data:

I tried using an oscilloscope to better understand the error codes. In this example, I am looking for the T8 error. The signal looks clean – I do not see what the T8 error indicates. Can you explain why the error is not visible on the oscilloscope?
View from the Data Center Software:
View from the Oscilloscope:
The timing of the error is near the beginning of the trace, highlighted with the vertical dashed line:
Response from Technical Support:Thank you for your questions! We will describe what is indicated by the error codes, and the likelihood of why an error is not visible in your oscilloscope.
The shared trace file snapshot indicates the presence of Time out (T) errors, Middle of packet (M) errors and Partial last byte (P) errors.
Time out (T) errors indicate that the capture for transaction timed out while waiting for additional data. The timeout used by Data Center is 250ms.
P1, P2, P3 ..... P8 errors indicate Partial last byte (P) errors. The partial last byte occurs when the last byte in the buffer is incomplete. As the Beagle I2C/SPI Protocol Analyzer operates at a byte level, the P error indicates that the analyzer was not able to capture an entire 8-bit byte — only a few bits were captured.
Middle of packet (M) errors indicate that the data capture started in the middle of a packet.
The S/P column is unique to the I2C Transaction Window. It indicates whether the start and stop conditions were observed for each record.
The “*” asterisk in the I2C data column differentiates NACK’ed bytes from ACK’ed bytes. The I2C address of the slave device represents the the target of the transaction and is shown in hexadecimal format.
Additional information:
The TP8 error occurred while attempting to read 1 byte from address 0x1D, right after a successful read transaction.
In your case, the oscilloscope trace may have been obscured because the bus was released too early, resulting in an incomplete byte transmission. Also, since this occurred at end of the capture, it suggests that the capture may have been stopped while a byte was midway through transmission.
For more information comparing the Beagle protocol analyzers to other tools, refer to Oscilloscope vs. Logic Analyzer vs. Protocol Analyzer - Understanding Their Roles in Debugging.
Sampling rates can affect data results. There are three different sampling rates that can be used to monitor the SPI bus. Although you have used 20 MHz, but as a rule of thumb, it is recommended that the sampling rate be at least 4 times faster than the data rate of the monitored bus.
We hope this answers your questions. Additional resources that you may find helpful include the following:
If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.