Showing results for 
Search instead for 
Did you mean: 

Communicating with Multiple Unique SPI Devices on Common Buss with USB-8451

Go to solution

I am working on a project where I am using a NI USB-8451 to communicate with 3 different SPI devices on a common SPI buss. Each has it's own unique Configuration, write and read protocols. Each device uses a separate CS (Chip Select) line to select it per normal SPI protocol. My question is what is the best way to send and receive data to the 3 devices? 


  1. My first thought is to use the "" to create 3 unique "device references"  that will then be used to talk to the individual device. I can carry these unique "device references" in a Class and use it when I plan to talk to the desired device. (See attached file.)
  2. My other thought is that one could use the NI845x SPI Configuration property node to change the ChipSelect setting immediately prior to sending data to the individual device. This doesn't seem to be a logical way to approach the problem.

Thanks to anyone that has an insight as to the best way to approach this.


John Freeman

0 Kudos
Message 1 of 4

Have you tried your code out and is it working properly? While I don't have an immediate answer, you could check out these resources that might have insight:


Example Program: Using the NI USB-8451 SPI Interface to Evaluate a Texas Instruments Analog to Digit...


Understanding the SPI Bus with NI LabVIEW


Also check out the Multiport SPI example in the NI Example Finder


I hope this is helpful!

Francine P.
Applications Engineering
National Instruments
0 Kudos
Message 2 of 4


Thanks for your response. I had already found ad downloaded both of those. I will check the Multiport SPI example


John Freeman

0 Kudos
Message 3 of 4
Accepted by john@enersys

I was able to get my original idea to work. I now have 5 separate SPI devices defined and am currently communicating with two, the LTC-6804 and the ADS1018. This seems to work very well. The good thing is that different devices need unique Clock Phase settings which are easily configured. For example the LTC-6804 clocks data on the rising edge of the Clock while the ADS1018 needs data clocked on falling edge. This is done using NI-845x SPI Configuration Property Node as shown in the Open SPI_device. example attached.  


John Freeman

Message 4 of 4