I2C SPI USB CAN eSPI Cable Testing View All Quick Start Guides User Manuals Software Downloads Knowledge Base Videos Case Studies App Notes White Papers Sales Support About Us
Products Blog Sales Support Contact Search
How Can I Send Data Packets Greater than 8 Bits to an SPI Device without Clock Stoppage or other Midstream Delays?
Rena Ayeras

Question from the Customer:

I have been using the Cheetah SPI Host Adapter for years, and it has always worked for me. But today, I have a setup that is giving me some problems. I’m testing a new SPI device and I need to send more than 8 bits per packet. If there is any delay within that stream, such as clock stoppage every 8 bits, communicating with that device fails. The data must be sent as 32-bit words. How can I send 32-bit words using the Cheetah adapter?

Response from Technical Support:

Thanks for your question! For your system requirements, we recommend the Promira Serial Platform with the appropriate level of SPI Active application: Level 1, Level 2, or Level 3. The Promira platform is the only SPI adapter that can perform the function you’re looking for. The Cheetah adapter can provide 16-bit data transactions with no delays, but it does not support the full range of word sizes that you need.

How to Use the Promira Serial Platform for Various Word Lengths

To vary the word lengths, you will be using Promira Software API, which supports multiple operating systems and several programming languages. Also, example programs are provided that can be used as-is or modified for your specifications.

The Word Lengths the Promira Platform Supports and How

For the Promira platform, the word size can be set from 2 bits to 32 bits without the “clock stopping” inter-byte delay.

For your usage, the API command ps_queue_spi_write should work. The argument includes the parameter word_size that can be used to specify the packet length of each burst.

Here are details about this API command that writes a stream of words to the downstream SPI slave device:

int ps_queue_spi_write (PromiraQueueHandle queue,
PromiraSpiIOMode   io,

u08                word_size,

u32                out_num_words,

const u08 *        data_out);

Arguments:
queue       handle of the queue io                IO mode flag as defined in table 12 word_size     number of bits for a word; between 2 and 32 out_num_words       number of words to send data_out         pointer to the array of words to send
Return Value:
A status code is returned with PS_APP_OK on success.
Specific Error Codes:
None.

For more information about API commands, please refer to the API Documentation section of the Promira Serial Platform I2C/SPI Active User Manual

Additional resources that you may find helpful include the following:

We hope this answers your questions. If you have other questions about our software, host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application

Request a Demo