06-11-2007 09:13 AM
06-11-2007 04:11 PM
06-12-2007 01:10 AM
06-12-2007 02:33 AM
Hi Søren,
I/O's(IO nodes) use alots of spaces compare with all other design stuff in LV FPGA. So you might want to reduce the I/O's first, if that is possible. Can you by the way tell me how many I/O's from each module were you using when compiling failed due to spaces issue on the FPGA?
There is an excellent example with NI-9205 module(NI Example Finder-> Hardware Input and Output-> CompactRIO->Module Specific->Analog Input->NI 9205 Advanced IO), that multiplexes the IO data FIFO instead of using the traditional I/O nodes for saving spaces on the FPGA. This example is special made for the 9205 module because the "large" numbers of the I/O's on the module(Only for NI 9205).
I presume you are using DMA's to transfer data from FPGA to RT. Using shared resources is not recommanded in LV FPGA.
Another option(the easy one) is to upgrade you backplane to a 3M gate version. With the 3M version you will have more room for testing and expanding your design. Please contact your local NI office for more infomation.
Best Regards!
06-18-2007 09:57 AM
07-10-2007 09:08 AM
Hi, thanks for the response.
I have started working with the implementation of some DMA FIFO from the FPGA, and would like to aquire the TC inputs from 3 9211 modules, and a few AI from 1 9201. Later on I would like to send out signals from a 9263 AO module and a few DIO from a 9401.
I expected the 9211 to be problematic in regards to keeping a high sampling rate, but I hoped that DMA could solve some of these issues. I started out with the "DMA buffered data aquisition" - example, but it seems like I'm not really getting very high sample rates from my 9211 loop on the FPGA, the minimum clock (Ticks) is around 20000000, which is only 2 Hz, and this is only with one module. I also tried to lower the sampling rate of the AO loop, but without any improvement. I'm using a cRIO 9012 with a 1M FPGA running LV 8.2.
What am I doing wrong, should the signal resolution be lowered to fit in more 9211's and increase the sample rate or are there other things that could be done.
Best regards soeren.
07-17-2007 09:56 AM
The sampling rate of the 9211 is expected to be low and what you see is normal. I.e. if you sample from all channels of one 9211 module it will take about half a second to receive back your readings. However, if you read channels from three 9211 modules in the same loop, all operations will be performed in parallel and the total acquisition time will not increase.
To acquire data from the 9211s and a 9201 at a higher rate, I suggest that you sample the 9211s in one loop and place their readings on a front panel indicator which will be used as a local variable. You could also use a global variable for this purpose which may save you some FPGA space.
In a separate loop sample the 9201 at the higher sample rate. In this loop also read the TC values from your local or global variable and build an array with all of your input values. Then pass this array to your DMA FIFO write. In effect you will be resampling the TC dat at a higher rate (repeating the same measurement value many times) and pass the resampled data to the DMA.
07-17-2007 01:30 PM
Hi,
Another quick tip that may reduce the footprint on the FPGA ==> it is very simple to write multiple FPGA VIs and programmatically execute them on the cRIO. This can be done even when the cRIO is already executing an application.
Therefore, you may want to consider the following:
From the host side you would do the following:
I have been in a situation where the Calibration code on the FPGA VI has been nearly 1M by itself. The only drawback is that your system will not support hot swapping modules without a reboot since the calibration coefficients will not be correct for the new module after switching.
I hope that this helps!
Mike