0

I'm using a USB-6356 DAQ board to control an IC via SPI.

I'm using parts of the NI SPI Digital Waveform library to create the digital waveform, then a small wrapper VI to transmit the code.

My IC measures temperature on an RTD, and currently the controlling VI has a 'push for single measurement' style button. When I push it, the temperature is returned by a series of other VIs running the SPI communication.

After some number of pushes (clicking the button very quickly makes this happen more quickly in time, but not necessarily in number of clicks), the VI generates an error -200361, which is nominally FIFO buffer overflow on the DAQ board.

It's unclear to me if that could actually be the cause of the problem, but I don't think so...

An NI guide describing this error for USB-600{0,8,9} devices looks promising, but following the suggestions didn't help me. I substituted 'DI.UsbXferReqCount' for the analog equivalent, since my read task is digital. Reading the default returned 4, so I changed the property to write and selected '1', but this made no difference.

I tried uninstalling the DAQ board using the Device Manager, unplugging and replugging, but this also didn't change anything.

My guess is that additional clock samples are generated after the end of the 'Finite Samples' part for the Read and Write tasks, and that these might be adding blank data that overflows, but the temperatures returned don't indicate strange data, and I'd have assumed that if this were the case, my VIs would be unable to interpret the data read in as the correct temperature.

I've attached an image of the block diagram for the Transmit VI I'm using, but actually getting it to run would require an entire library of VIs.

The controlling VI is attached to a nearly identical forum post at NI forums.

block diagram for the Transmit VI

chrisb2244
  • 2,940
  • 22
  • 44

1 Answers1

0

I think USB-6356 don't have output buffers used for Digital signal. You can try it by NI-MAX, if you select the digital output, you may find that there is no parameters for Samples. It's only output a bool-value(0 or 1) in one time.

You can also use DAQ Assistant in LabVIEW, when you config Digital output, if you select N-Samples or Continuous samples, then push OK button, here comes a Dialog that tell you there is no buffer for lines that you selected.

litreily
  • 1
  • 4
  • When I looked in NI-MAX, I couldn't find any parameter to test a waveform output, but I didn't receive any dialog in LabVIEW. I used the DAQ Assistant, as you suggested, and was able to select Digital Output with 100 samples at 1kHz with no problems. If we assume that a lack of output buffer is the problem, why does this cause an error during program execution, but not immediately? – chrisb2244 Jul 19 '16 at 02:45
  • Checking the specification informs me that Port 0 has waveform output, with up to 2047 samples. Port 1 and 2 behave as you describe - they don't have waveform abilities and can provide only static bool values. Since my application is connected to Port 0 lines, I think I should have the 2047 samples available. Maybe I'm not clearing them? (But then why is the overflow after such a variable number of tests?) – chrisb2244 Jul 19 '16 at 02:48
  • It's weird, I need further testing – litreily Jul 19 '16 at 06:29