PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

Sporadic invalid values obtained from FlexRIO card

Solved!
Go to solution

Hello,

 

I'm having trouble acquiring data from my FlexRIO (PXIe-7962R + NI-5734). I'm writing custom code instead of using FIDL building blocks, because the FIDL requires a master-slave design for synchronized triggering, while I require every FlexRIO card to be able to fire the trigger.

 

Anyway, here is a small test case (I tried with both a 40 MHz clock and a 10 MHz clock, with the same outcomes):

 

FPGA

Simple FlexRIO - FPGA Pack.png

 

Host

Simple FlexRIO - Host Unpack.png

 

While most of the output looks ok (i.e. the waveforms look like the input signals), I get many bursts of corrupted samples. I often get spikes that equal the max/min value of I16, although there are cases of non-max spikes too.

 

Interestingly:

  • Each FlexRIO card seems to have exactly 1 misbehaving channel.
  • The channel varies across cards (e.g. RIO1 gets spikes in AI0, while RIO2 gets spikes in AI3)
  • When I repeatedly trigger acquisition on the same card, I see a very similar "noise shape" each time. Different cards produce different "noise shapes".
  • I don't observe any spikes when I use the pre-built FIDL examples instead of my own code (perhaps I need to do some kind of synchronization??)

 

Screenshots below.

  • The orange graphs are supposed to be all zeroes.
  • The green graph is supposed to show a clean sine wave.

 

What might the problem be, and how can I fix it?

 

 

Thanks!

 

 

FlexRIO AI Corruption 1.png

 

Zoomed in

FlexRIO AI Corruption 2.png

 

 FlexRIO AI Corruption 3.png

 

Certified LabVIEW Developer
0 Kudos
Message 1 of 2
(4,482 Views)
Solution
Accepted by topic author JKSH

You need to acquire data from the 5734 in the Sample Clock domain. Reading from the AI Node in any other clock domain causes the glitching you are seeing. 

 

sample_clock.PNG

Message 2 of 2
(4,468 Views)