How Many Promira Serial Platforms Can I Run Simultaneously and How Many SPI Target Devices Can Be Driven?

Question from the Customer:

We are looking to use two Promira Serial Platforms to drive multiple SPI target devices from the same computer.

  • How can we best control two Promira platforms? Which software applications would work best? We are running several tests and gathering a lot of data per test run.
  • How many target devices can each Promira platform drive?

Response from Technical Support:

Thanks for your question! The software application we recommend is the Promira Software API I2C/SPI Active.

Controlling Multiple Promira Serial Platforms

For your requirements, we recommend using the Promira queue implementation with the Promira API. The commands to multiple Promira platforms be can be queued and then sent out in a batch.

Queuing API

The Promira API can be used to create up to 127 queues. Each queue can contain up to 255 commands. Multiple queues can be submitted asynchronously, as long as the uncollected data is less than the internal Promira buffer size (2 MB).

In SPI Slave mode, the Promira platform can send multiple SPI bytes without delay in one transaction. To do so, the SS (slave select) must be asserted for the entire transaction.

The maximum amount of outstanding slave data to collect is 2 MB – 1. To avoid losing data, we recommend collecting the SPI slave data as soon as possible.

  • The maximum data size of single command is 1 MB.
  • The maximum amount of data in a queue is 64 MB – 1.

You can create several queues for SPI. After you submit the two queues to the Promira platform, each queue will operate as a separate sub-system. For more information, please refer to the subsection Queue Overview in the  Promira Serial Platform I2C/SPI Active User Manual.

Sample Promira API Programs

Several functional program examples are provided in the Promira Software API I2C/SPI Active package. Each program can be modified as needed for your requirements. The Promira API supports many program languages; the examples we are referring to are written in Python.

Here are two scripts that could be useful for your setup. Each of these scripts is based on spi_slave_py, which is provided in the Promira API package.

  • spi_stream_master.py: sends 32 kB packets with 3 ms intervals between the packets. This program can be further modified to send data to multiple Promira platforms.
  • spi_stream_slave.py: responds to spi_stream_master.py

Driving Target Devices

The Promira platform has the capability to drive up to eight loads at the same time. However, the maximum load may vary depending on the power requirements of the target devices. For details, please refer to the section Electrical Specifications of the Promira Serial Platform I2C/SPI Active User Manual.

How Master and Slave Lines Operate

When the SPI interface is activated as a master, the Slave Select line (SS) is actively driven low. The MOSI, SCK, IO2, and IO3 lines are driven as appropriate for the SPI mode. After each transmission is completed, these lines return to a high impedance state.

This feature allows the Promira Serial Platform, following a transaction as a master SPI device, to be reconnected to another SPI environment as a slave.

The Promira platform will not fight the master lines in the new environment.

  • It is advisable that every slave device also has passive pull-ups on the MOSI and SCK lines.
  • These pull-up resistors can be relatively weak – 100k should be adequate.

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.

Request a Demo