From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

No data transfer over DMA FIFO

Solved!
Go to solution

Hello All,

 

I'm running LabView 2013 and have updated all the drivers and versions on my local computer and also on the Single Board RIO 9636 I am using. My goal is to measure 4 analogue inputs corresponding to four different microphones and then output each individual signal as a waveform. I am attempting this using 4 DMA FIFO's.

 

The problem I'm running into is that I am not able to read data in the RT Microprocesssor VI when using the 4 FIFO.Read methods. I am rather new to labVIEW and programming using an FPGA. I have enclosed both block diagrams for informational purposes. I thank you all in advanced for any assistance you may be able to provide.

Download All
0 Kudos
Message 1 of 7
(2,691 Views)

I don't think any cRIO supports more than 3 DMA channels, although I could be wrong. What happens when you run this code? You didn't explain the problem, other than to say that you are not able to read the data.

 

Your error handling is all sorts of weird. Are you sure no error occurs somewhere along the way? Clean up the error wires. You should not have the feedback node, and you shouldn't loop the error wire back into the while loop. It looks like your goal was to stop the while loop if an error occurs, but that's not what will actually happen. Try running the code with execution highlighting turned on. Also, try starting with a single microphone and don't branch the error wire or the FPGA reference anywhere. Once you have a single microphone working, then add the others.

0 Kudos
Message 2 of 7
(2,680 Views)

Hey Nathand,

 

I followed your advice and did not get any errors. Everything executed fine. I have attached a new block diagram and front panel  just with a single microphone. What happens is that the data out of the FIFO is just 1 and the actual data coming in is not. I included a read method to compare values. I hope this helps.

Download All
0 Kudos
Message 3 of 7
(2,671 Views)
Solution
Accepted by topic author mcoe12

mcoe12 wrote:

What happens is that the data out of the FIFO is just 1 and the actual data coming in is not.


AH! If you'd said that in the first place, I might have identified the problem in the first post. It looks like your data types don't match - the fixed-point configuration for the DMA FIFO does not match the data coming from the analog input. That's what the small red "coercion dots" are showing you on the FIFO Write. My guess is that's why the data isn't coming through correctly.

 

While you're changing numeric representations, also change the Sample Rate so it's an integer, to match the timer input.

Message 4 of 7
(2,661 Views)
Thank you for your help nathand.

I'll attempt such a solution first thing Monday when I get back. Will update then.
0 Kudos
Message 5 of 7
(2,654 Views)

Thanks Nathand, It worked.

 

I shall remember the red dots for the rest of my life now.

0 Kudos
Message 6 of 7
(2,619 Views)

Glad to hear that fixed it! By the way, the coercion dots are not necessarily bad - think of them more as warning than an error. There are many situations in which they're harmless and unavoidable - for example, wiring together data of the same type where one is a type definition and the other is not - so don't panic and try to eliminate one just because you see it, but make sure you understand the cause.

0 Kudos
Message 7 of 7
(2,613 Views)