IF-RIO

cancel
Showing results for 
Search instead for 
Did you mean: 

Megasample CompactRIO analog input module

Hi, I am converting an existing FPGA design of mine to CompactRIO.  I need to sample two analog signals at at least 1Msps.  Does anyone know of a module that can achieve this rate?  I could use two modules for the two signals if required.  The fastest NI module seems to be one that samples at 800Ksps, but for some reason it has an input range of +-60V which results in a terrible resolution at normal small signal levels.
 
If no 3rd party modules exists, I'm considering creating my own.  Any idea what the protocol between module and FPGA is?  With 40MHz and single channel SPI the highest achievable datarate is only 20Mbps, but if it is possible to implement some parallel interface between FPGA and the module much higher rates will be possible. . .
 
This data will be processed on the FPGA so the datarate between FPGA and RT isn't an issue here.
0 Kudos
Message 1 of 8
(7,776 Views)
 
The 9221 is currently the fastest analog input module available from NI. To my knowledge there aren't any third party modules available that will provide you a faster input rate.
 
 
The protocol between the FPGA and module is defined by the module developer. So it can be SPI, but you can also define your own custom protocol. You can use up to 8 signal lines for this communication.
 
The details of module communciation are documented in the CompactRIO Module Development Kit.
 
authored by
Christian L, CLA
Systems Engineering Manager - Automotive and Transportation
NI - Austin, TX


  
0 Kudos
Message 2 of 8
(7,764 Views)
As a note, the 9201 can sample at 800KS/s if you are reading only one channel. That's 12 bits on +/- 10V range. Not exactly what you're looking for, but better than the 9221 for small signals.
 
Chris F
 
0 Kudos
Message 3 of 8
(7,752 Views)
Hi,

I have never tried this before, but in theory (I think) it should work. Since each NI 9201 module can only go as fast as 800KS/s, what you can do is use a pair of modules to acquire each of your two signals (not sure if just one pair can handle both signals; I think it will be pretty close to 1MS/s so it may do the trick). The idea is that the acquisitions are off by half a cycle. That is, at t=0us you acquire from AI0 on ModA, at t=1us acquire a point from AI0 on ModB, at t=2us acquire a point from AI0 on ModA and so on. Then you just either directly write to the same FIFO from both loops (although I didn't write the VI that way, I think it should work), or you later interleave the data points.

You may understand better the idea by looking to the attached image or the attached VI.

Has anybody tried this before with no luck? Any reasons why this wouldn't work? Signal integrity issues?

JMota

PS. I think I have my numbers off by a factor of two. You want to wait for 1us before you start acquiring data from Module2, and then continously acquire data from the modules at 500KS/s (2us wait). In <b>my</b> ideal world, it seems that you should be able to go up to 1.6MS/s with two modules.




Message Edited by JMota on 11-14-2006 06:41 PM

Download All
0 Kudos
Message 4 of 8
(7,746 Views)

Thanks all for the useful feedback. 

As we have moved to CompactRIO to try get away from developing our own hardware I would prefer to buy a module than to develop one.  So the option of interleaving reads from seperate modules is interesting and one I have considered.  However, this will mean having to use up 4 slots for reading two signals which is going to impact on the other functions that the unit has to perform.  But this might still be better than going through a whole development cycle.

Seems I'll have to make up my mind about this one. . .

Cheers

Anthon

 

0 Kudos
Message 5 of 8
(7,741 Views)
Hi Anthon,
 
Before you make any final decisions, you should talk with your local NI representative about your needs and timeframe.
 
Chris
0 Kudos
Message 6 of 8
(7,729 Views)
Just one thing I forgot to mention, is that if you go with the interleave solution you should account for the different calibration constants that each module/channel combination has. You may do better choosing pair of channels with very similar calibration constants.

JMota
0 Kudos
Message 7 of 8
(7,721 Views)
Hi AnthonV
I'd like to get a more detailed feel of your requirements. I see you need 1MSPS. What about the input range, noise, distortion, etc specs? If you prefer we can communicate over email or the phone as well. Please let me know your preference. Thanks
 
 
0 Kudos
Message 8 of 8
(7,452 Views)