We are using the CheetahTM SPI Host Adapter with an SPI slave device. This slave device sends FF bytes on MISO as long as it is busy (somewhat similar to the clock-stretch for I2C), and if it is ready a first byte != FF byte is sent at mark 4. From then on, the data is the valid payload of interest that we want at read-data. The problem we have is that the number of FF bytes varies, and that count is unknown at start of the whole read.
We tried a few combinations with a ch_spi_batch_shift() and ch_spi_queue_array(), but we always get timeouts on the Beagle trace we use. Are the ch_spi_queue_ss() and ch_spi_queue_oe() deassert also needed, or is there another way to accomplish this? How can we filter out the FF bytes with the API software?
Thanks for your question! It is possible to filter the unwanted FF bytes using CheetahTM Software API?. To do so, you can modify the API code. Modification is one of the main features of SPI software - it allows you to "tweak" existing software for your specific application requirements. API software is supported for 32-bit and 64-bit versions of Windows, Linux and Mac OS. With Rosetta Language Bindings and shared libraries, the supported 32-bit and 64-bit software languages are C, C#, Python, .Net, VB NEW and VB6. All software downloads are listed on the our Active Software Downloads page.
Currently, the Cheetah adapter reads all the data including the bad data FFs and the good data AA BB CC DD. For example: FF, FF, FF, AA, BB, CC, DD. Following is an outline of how that could be done:
For more information, please refer to the following documents:
Cheetah Host Adapter User Manual
Cheetah GUI Software User Manual
We hope this answers your question. If you have other questions about our Cheetah SPI Host Adapter or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.