Components

cancel
Showing results for 
Search instead for 
Did you mean: 

[Deprecated] SPI Digital Waveform Library

Hi jigsaw -

 

The ZIP file contains a Windows installer. Unzip all contents to a folder, then run the EXE file to install the component. It includes a user.lib API and an example program that gets installed to <lvdir>/examples/SPI Digital Waveform.

David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 71 of 200
(8,433 Views)

Thanks it must have been the saturday midnight thing, because I can clearly see that it says where to find it.

 

Question about the oversampling clock. Does the oversampling clock take the place of the sampling rate? I will be using the PXI-6229 (hardware not in yet)

 

 

0 Kudos
Message 72 of 200
(8,421 Views)

Hi jigsaw -

 

The Serial Protocol Communication reference design will help you get this component running with your M-series board. To directly answer your question, yes the Oversample Clock input should be provided with the rate of your DAQmx Sample Clock.

David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 73 of 200
(8,419 Views)

When I try to download sdw_1_0_1_lv85.zip, i get a server error saying:

 

ISA Server: extended error message :

200 Type okay.
500 Illegal PORT command

I also get this error when i try to download the zips for 8.2 and 8.6.

 

Is this an error with NIs server? How else can i download this library?

0 Kudos
Message 74 of 200
(8,244 Views)

Hi Robo_mike -

 

This is a problem that needs to be reported to the webmaster. On the Contact NI page, please click the link to "Report a problem with ni.com" and fill in all these details you've shared with me.

David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 75 of 200
(8,234 Views)

Hi,

 

I'm using SPI library with 6552 and it seems working fine for a single device (ADIS 164xx sensor). But I'm having a hard time making it to talk with multiple devices. I am trying to read one device at a time (with CS = 0). Both Devices share SCLK, MISO, MOSI, with independant CS line. I think I know how it should be, but not sure how to implement this with SPI Libraray toolkit. Can someone please tell me how it should be changed to talk with multiple SPI devices? Many thanks.

0 Kudos
Message 76 of 200
(8,051 Views)

Hi tlee16 -

 

It looks like you're trying to command two slaves in sequence. SDW can build a waveform to do this for you, but I think you're trying to manage the details yourself and that's getting things confused.

 

There are two software components in the application: The SDW VIs that build the digital waveform, and the Serial Protocol reference VIs that configure and command the HSDIO hardware. The recommended approach to communicating with two slaves in sequence is to configure the HSDIO hardware to implement a 5-pin bus (SCLK, MISO, MOSI, CS_1, CS_0), then build an SDW waveform that manages both CS lines at any given time.

 

To configure the HSDIO hardware, give it the indices of all four output lines (SCLK, MOSI, CS_1, CS_0) and the input line (MISO) on your bus. Don't worry about one of the CS lines not being used at any given time: SDW will manage that by writing '1's to the waveform to hold that line high when its slave isn't being addressed.

 

To address one slave or the other, change the value of the "Slave address" input on "Swap.vi" with each generated message. To address the slave on line "CS_0", set the value to 0. To address the slave on line "CS_1", set the value to 1. The Serial Protocol VIs will handle mapping that CS line to the appropriate HSDIO pin when the waveform is downloaded to the HSDIO board's memory.

 

Here's where you can find the "Slave address" control in your program. This is a screenshot of "Format to SPI.vi":

 

22821i529E0A9E25FD6735

David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 77 of 200
(8,037 Views)

Hello David,

 

I must be missing something because I am getting an error, number of signal in waveform doesn't match the number of assigned channels. I assigned CS0, CS1, MISO, MOSI and SCLK (pin 3, 5, 7, 9, 11).  I really appreciate your help.

0 Kudos
Message 78 of 200
(8,028 Views)

Hi tlee16 -

 

Referring to the same screenshot as my last reply, take a look at the "Digital Signal Subset" VI at the end: You're only passing a waveform with 3 channels to the "Run Core Device" VI. But you configured 4 channels for output on the HSDIO device. You'll have to write a 4-channel waveform to the device's memory.

David Staab, CLA
Staff Systems Engineer
National Instruments
Message 79 of 200
(7,995 Views)

Hi David,

 

I understand that and tried it (CS0, CS1, MOSI, MISO, SCLK - signals configured to 0, 1, 3, 3, it only supports 0, 1, or Z with 4 channels) but still gives a wrong data. Is [0, 1, 3, 3] correct configuration for the signals? With the single slave, it worked with [0, 2, 3]. Also what should I do with output initial/idle state input of 'Init Core Device.vi'? Should just copy 'not CS Active' string and feed in to output initial/idle state input of 'Init Core Device.vi'? It feeds in 1101 (CS_0, CS_1 active state, MOSI and CPOL). Thanks again!

0 Kudos
Message 80 of 200
(7,988 Views)