in data 10-20-2006 10:01 AM
in data 10-20-2006 10:29 AM
in data 10-23-2006 04:08 AM
in data 10-24-2006 09:26 AM
in data 10-26-2006 03:18 AM
Hi JMota!
Some updates:
I'm using a CompactRIO 9104 with two NI 9401 and two NI 9233 modules, the software is Labview 8.0.
After some readings on the subject I decided that, for the amount of data I need to transfer to the host on RT, it was better to use DMA FIFOs. Talking only about the encoder part,as I wrote before the while loop on the FPGA is running at 100kHz and every time i store in the DMA FIFO two elements: the first which( with some operations on it afterwards) will give me the position of the encoder, the second that will give me the speed of the shaft of the encoder. I set up the FIFO depth at 8191 elements: I thought that if I write two elements in the FIFO at 100 kHz I will have to read from the FIFO on the RT 200 elements each 1 ms ( I'm using a timed loop which goes up to maximum 1kHz). This doesn't work. I placed an indicator which tells me the number of elements remaining in the FIFO and it never goes to zero even if I tell the FIFO.read to read 202 elements every 1 ms. In order to understand this problem I decided to change the acquisition rate to 1ms so my DMA FIFO would have to be full in about 4 seconds and this actually happened the first time I run only the FPGA VI after compiling it. The problem is that if I run the VI again the full flag immediately switches on so it means that every time the FPGA runs the FIFO write method finds the FIFO memory full, am I right? What happens then if I try to read the data from the host through the FIFO read method? I guess that even in this case the FIFO.read will find the memory full. Any suggestions to solve this problem? I've attached the FPGA and RT VIs so you can immediately see if I'm doing things right
I thank you once again!
Ciao
Rob_F
in data 10-26-2006 04:42 PM
in data 10-27-2006 02:38 AM
Thanks a lot JMota,
your explanations have been very helpful!
Have a nice day!
Rob_F