How Can I Use One Cheetah SPI Host Adapter to Simultaneously Program Identical Devices?

Question from the Customer:

We are using the Cheetah SPI Host Adapter to program ICs on our test bed. In many cases, two ICs are designated to receive exactly the same data. These ICs are the same SPI devices. To save time, instead of programming ICs one by one, we would like to program these devices simultaneously. The Cheetah adapter may be fast, but we would like to make this process run faster using one Cheetah adapter.

What do you recommend for our setup?

Response from Technical Support:

Thanks for your question! The SPI protocol is designed to work with SCK, MOSI, MISO on the same bus as long as SS1# and SS2# are separate and asserted one at a time. The Cheetah adapter has multiple slave selects, which makes it easy to select which IC to program, and all ICs can receive the same instructions separately.

For your goal, programming two devices at the same time will require a change to the interface: connect the select signal of the devices to the same CS (chip select) line. As mentioned above, MOSI (master output slave input) pins of the two ICs are already connected on the same signal lines.

If the MISO (master input slave output) signal lines of the programmable devices are also connected to the Cheetah adapter, additional changes will be needed to protect the devices from short-circuits.

What Causes a Short-Circuit

Two output signals on the same wire can result in collision: a short-circuit. Here are two instances that may cause a short-circuit:

  • If the output data is the same, there can be differences in rise/fall time and other delays, which can result in a short-circuit.
  • If the output data of the devices disagree on any number of bits, a short-circuit will occur.

To prevent this instance, we have two suggestions for the layout of the signal interface:

Isolate the MISO Signals

If the output signals are not needed, you can disconnect the MOSI lines.

XOR the MISO Line

If the output signals are needed, you can add a “filter”. Since both devices are the same model and design, and receive the same data, they should be returning the same values. With that in mind, the proposed option is adding a discrete XOR gate with the two MISO lines as inputs to the XOR gate. This way, the output of the XOR gate will be “low” when both output signals are the same, both logically high or low, and “high” if the logical signals are not the same.

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.