Multifunction DAQ

Showing results for 
Search instead for 
Did you mean: 

USB - 6343 Crosstalk between AI channels

Go to solution

I have a NI X Series USB 6343 which I am using to measure voltages from variable resistor position sensors.  The voltages are being as reference voltages between AI 20+ and AI 20-, AI 21+ and AI 21-, ... to AI 23.  We've found that varrying the voltage on channel 20 effects the voltage measured for channel 21, that the channel 21 voltage influences channel 22, and the channel 22 voltage influences channel 23.  Sample rate is 100 Hz.  The crosstalk will be roughly .15v on channel 21 for a signal variation of 6 v on channel 20... so about -16 dB (the specs say -75 dB for 100kHz).


any suggestions on how to reduce this?  Would sampling the AI's simultaneously help?, how do I setup of Matlab code to have the DAQ read simultaneously?







0 Kudos
Message 1 of 3
Accepted by topic author Envirophysics

Hi Nathan,


The 6343 is multiplexed (all of the channels share a single ADC).  So, you need to allow enough settling time between each channel--not doing so will result in the behavior you are seeing which is referred to as ghosting.  The amount of time required depends on the impedance of your signal source, as shown in the 634x specifications:




The amount of time between channels is determined by the convert clock rate.  The default convert rate is chosen by the driver by adding up to 10 us to the maximum rate of the card, giving 12 us on the 6343.  If you try to sample at higher rates the convert clock will run as fast as necessary to fit all of your channels in.


So, given your slow sample rate, the driver is choosing the default minimum of 12 us for the convert clock rate.  You're seeing an error of about 25000 parts per million.  This is off of the chart shown above, but if the resistor you are measuring across is above 10 kOhm (probably somewhere around 20k or 30k) then what you are seeing makes sense.



Your two options to avoid the behavior are:


  1. Lower the convert clock rate.  In the C API you can use DAQmxSetAIConvRate.  In LabVIEW you can use a DAQmx Timing property node.  I don't have experience programming NI DAQ hardware in MATLAB so I can't say for sure if this property is exposed for you or not.

  2. Reduce the source impedance.  The way I would suggest would be to use an op-amp as a unity gain buffer (aka voltage follower) for each high impedance channel that you need to measure.



Best Regards,

John Passiak
Message 2 of 3

Thank you! that was very helpful.  It was indeed ghosting, and I was able to fix it through matlab by setting 'ChannelSkewMode' to 'Equisample' and lowering the sample rate to increase the convert time of the ADC.


I also found this article on Wikipedia helpful to better understand convert time and ADC's in general.





Message 3 of 3