I have a question about using the Beagle I2C/SPI Protocol Analyzer. I am testing SPI devices. I have two sets of data which are shown below. I am using the Control Center Serial Software for viewing and analyzing the captured data.
Comparing new and old data:The old data shows errors. I have personally confirmed there was a buffer issue in the devices being tested. That issue should have been resolved. However, after making that correction, the new data shows that some of the buffering is still incomplete.
The Device Settings that I selected:
My question - can you check if I made the correct settings for my Beagle I2C/SPI Protocol Analyzer? Also, are there other setup factors that I should look into? I want to make sure the data readings are correct before I initiate more troubleshooting with the SPI devices.
Response from Technical Support:Thanks for your questions! Most of your setup is correct – there is one change we will suggest. In addition to going over your configuration settings for your test setup, we will provide details about the transaction log data.
In the Error column of the Data Center Software Transaction Log, P1, P3, P3 … P7 are indications of Partial last byte errors.
The Beagle I2C/SPI analyzer uses the SPI slave select line to frame each transaction. For example, if the Beagle I2C/SPI analyzer sees one bit and then sees the slave select line go inactive, the rest of the byte will be padded with 0s.
In summary, the partial last byte occurs when the last byte in the data buffer is incomplete. This occurs when the number of bits of data captured did not adhere to the expected data size. This can occur for various reasons, which we will discuss in the following sections.
Sampling rates can greatly affect the results of the captured SPI data. There are three different sampling rates that can be used to monitor the SPI bus. It appears that you selected 20 MHz. As a rule of thumb, we recommend selecting a sampling rate that is at least four times faster than the data rate of the monitored bus. For your case, we recommend increasing the rate to 50 MHz and retrying your setup.
We recommend using short I2C/SPI cables, about 5” in length. A longer cable length can adversely affect the signal integrity and the operational speed. The SPI (and the I2C) bus does not have any inherent distance capability. Because of that, excessive cable length can easily corrupt the signals being tested, causing any number of problems including partial data size errors.
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.