LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Only 3 DMA channels on the PCI-7833R?

Hi,

I am working on an application, which should get data from 4 different SPI sources. So, I have 4 parallel SPI data aquisition loops in the fpga VI running. Therefor I need 4 DMA Channels to send the data to my host VI. The PCI-7833R card I use has only 3 DMA channels. Which other ways I can go to send all the data parallel and fast to the host VI?
I am thinking about multiplexing data from 2 SPI loops, to send them on 1 DMA channel, but I have already multiplexed the SPI data (Timestamp, MISO, MOSI) for each DMA channel.
0 Kudos
Message 1 of 2
(2,813 Views)
Hi,
you are talking about that you already have multiplexed some data for each DMA channel but the question at this point is, how many bits are reserverd?
One opportunity is to use (if one byte is remaining) one additional information for one DMA channel like an identification. For this special FIFO you have to enable the arbitrator to beware conflicts.

Another opportunity is a handshaking implementation with polling in the RT Host.vi, but this solution is connected with a high CPU load. A better alternative would be to use IRQs to save CPU burden, but this variant would be a little bit slower and decrease the determinism of the RT Host application.

For further information about IRQ or handshaking programming have look in the FPGA Online Course Material, chapter 5.
If you have further questions do not hesitate to come back.

Thanks,
ThSa


0 Kudos
Message 2 of 2
(2,795 Views)