Re: ADC mux charge injection on commercial DAQ boards
- From: John Larkin <jjlarkin@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 30 Sep 2007 11:20:17 -0700
On Sun, 30 Sep 2007 10:36:12 -0700, CC <crobc@xxxxxxxxxxxxxxxxxxx>
wrote:
Hi:
A couple years ago at work our computer programmer specified Data
Translations DT3010-268 boards for our lab's high speed data acquisition
tasks. I was assigned the task of building a BNC breakout panel for all
the DT3010's signal ins/outs.
This didn't involve any electronics design, but rather just wiring. I
made a 4 layer PCB anyway to keep analog and digital signals over
respective ground planes, and since multiple labs had to be equipted
like this, it was more efficient than hand wiring each one.
Since I knew there are always gotchas with these off-the-shelf boards, I
designed in 7-pin SIL sockets near each analog input BNC to accept a
future analog input buffer module, in case it would be needed. I put in
buffer sockets for analog outs and the digital IOs too. Then I just
jumpered them all for the installation.
This seemed like a good compromise rather than building buffers into
each channel by default, which would have made the board design and
assembly take much longer than just a simple PCB wiring harness.
As anticipated there were troubles. When they started evaluating the
performance of the DT3010, they found that as sample rates increase, the
digitized signals incur very large errors. Some commercial
calibration instruments such as Keithley Source Meters cannot drive the
DT3010 inputs under any circumstances and get correct readings.
I got involved and scoped around until I concluded that the DT3010
directly multiplexes the sample voltage holding capacitor from one
channel to another. This cap appears to be in the range of 120pF. So
as the board switches channels, the prior channel's voltage gets ejected
out of the input BNC of the next input. The settling time thus depends
on the combination of the cable length and impedance leading to the
board, and whatever driver is feeding that cable. Typical instrument
voltage outputs can't settle fast enough (about 600ns from mux switch to
hold) to give accurate readings.
The two labs using these new boards worked around the problems and other
tasks took priority over building buffers, until a few days ago. Now we
have a lab that simply can't get measurements done with the present
level of performance. The scientist has been running at the lowest
possible sample rates and using as few channels as possible to get
reasonable data. But now he needs something better, so I built analog
input buffers consisting of a LT1167A instrumentation amp for the
inputs, followed by a LT1220 fast settling opamp in simple follower
configuration to feed the DT3010 inputs.
I am fairly confident this buffer will solve the problem when I assemble
and test it next week.
But I told the programmer who continually specifies Data Translations
products that I think the DT3010 is "broken" for not including input
buffers on each channel to isolate the sampling capacitor from the
outside world.
He became very agitated and said that it's not broken because all the
other makers do the same thing (which I am not certain about). That
logic escapes me in any case. He did agree when I rephrased it as, "the
DT3010 is a cheap-sh** design" But then he went on to accuse me of
having too high standards (which he then insulted with further use of
the sh** word).
I simply stated that I have a lab that is broken and can't record data
at the DT3010's specifications, and that I am going to fix it. He
cannot answer the question of how to fix it himself, because he isn't
able to design analog circuits. But he accuses me of having too high
standards and that I over design everything by 10x simply because I
think that a DAQ system should work as advertised.
Actually, if I had not designed in the hooks to allow inserting analog
buffers into my PCBs, I would be faced with having to re-do the entire
panel, or building another box containing analog buffers.
The programmer also stated that for every job he does, his goal is to do
the absolute minimum work to get something working. And if 90% of the
time there aren't problems which come back to him, then he has done too
much. The consequence of this is that the expensive lab time and the
time of scientists get expended in finding and solving problems. But he
takes credit for getting jobs done (which really aren't "done" at all)
very quickly and efficiently.
I have the opposite philosophy. I spend a large amount of time in my
workshop designing things to be nearly perfect before delivery to the
lab, because I believe it is my job to use my time to find and resolve
the problems before installation so that precious lab time isn't wasted.
I have never received a complaint that it took too long, only
compliments that my stuff works perfectly.
This difference of view has now led to quite a bitter state of conflict
between us, which is unfortunate. I'm not sure how it will play out. I
am pissed because now I fear this guy has bad-mouthed my work in the
past as taking too long to complete and over-engineered. So he makes
himself look like he's prolific and I'm not. But I'm the one who winds
up with the job to make his partially functional work reach full
functionality. And I get put down for doing it "too well."
I maintain my position that the DT3010-268 is "broken." Would you agree
or disagree? Should it be the job of the customer of a commercial DAQ
board to have to build analog input buffers on every channel before the
board can be used to specification for any other than "battery" voltage
sources located a few inches from it's inputs?
Good day!
All CMOS multiplexers kick out charge when they switch, plus whatever
signal is loaded onto whatever downstream capacitance there is, in the
ADC front end, gets switched between channels, too. So the inputs are
hardly simple, passive loads.
Lots of opamps go nuts when hit by a mux spike, and can take a long
time to recover. They may rectify the spike somehow, and then a high
sample rate winds up creating a big DC offset.
The easiest fix is a series R-C just ahead of the mux; something like
100 ohms, which most opamps can drive, and as much C as the signal
bandwidth can stand, some number of nF at least. The charge injection
can be treated as an average DC current, which produces an offset
error into the 100 ohm resistor, so this can have problems, too,
especially at very low signal levels.
Another trick is to select a dummy channel, grounded or Vcc/2, between
active channels. That keeps channel-channel crosstalk down.
People who design data acquisition boards should at least use very low
charge-injection mux's (as opposed to very cheap ones) and buffer
properly downstream, to keep the crosstalk capacitance low.
Nowadays, you might almost as easily go with an ADC per channel.
John
.
- References:
- Prev by Date: Re: BJT selection for noise generator
- Next by Date: Re: FTDI speed problem
- Previous by thread: ADC mux charge injection on commercial DAQ boards
- Next by thread: Re: ADC mux charge injection on commercial DAQ boards
- Index(es):
Relevant Pages
|