08-06-2021 08:46 AM
I have some differential signals going to an NI 9205 ADC, connected to a CompactRIO, and I am programing the FPGA VI.
In the FPGA VI, there are nodes representing the signals at the 32 pins of the ADC. My question is do I have to program myself the subtraction of the differential pin pairs? For example, I wire Pin 0 and Pin 8 to a subtract function, and wire Pin 1 and Pin 9 to a subtract, and so on?
If not, then for example can I use only Pin 0 and not even have Pin 8 in the block diagram altogether? Then how do I make the ADC know it is being used in differential mode?
08-06-2021 09:01 AM
Start the NI example finder and search for keyword 9205. The Example NI 9205 Basic IO.lvproj should answer your question.
Regards, Jens
08-06-2021 09:48 AM
Hi Jens,
Thanks for your suggestion! I really appreciate it. I took a look, and can I confirm with you what I see?
From what I can tell, they created a cluster of settings that include whether the channels are SE or Diff, and made it into a control that can be passed to an FPGA I/O Method Node. Then there's an FPGA I/O node without any logic after it that would subtract signal pairs.
I suppose this means that as long as I pass the info that its differential to an I/O Method node, the FPGA will know, and I won't have to worry about programming any signal-pair differences myself. Is that right?
08-12-2021 07:13 AM
Did you look at the FPGA-implementation in that example?
In this the Terminal mode for a specific AI channel is set:
https://zone.ni.com/reference/en-XX/help/370984T-01/criodevicehelp/crio-9205/
Keep in mind that you can only set AI0-AI7 and AI16-AI23 to differential:
https://zone.ni.com/reference/en-XX/help/370984T-01/criodevicehelp/set_terminal_mode_method/
After this configuration the node for that specific channel will hand back the differential value, no need for you to calculate an differences.
Regards, Jens