Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Methods for measuring a low voltage

Status
Not open for further replies.

ElectroxX

Newbie level 6
Joined
Dec 21, 2011
Messages
12
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,421
I want to measure a voltage <100mV for a current measurement setup with the ADC on an Arduino board.

In order to get a neat resolution I could either amplify the this voltage to the ADC ref level of 5V or lower the ADC ref level to ~100 mV.

However, there is quite some noise on the internal ADC reference voltage, 5-20 mV, with the highest peak on 32 Mhz. I think its due to the system crystal on 16Mhz. When using PWM, further disturbances are induced. If the supply voltage is lowered, this noise will get signifant.

If I choose to use an op amp the signal to noise ratio could become a lot better. However, the "main" supply voltage is as noisy as the ADC supply. These could propagate through the OP amp, and cause problems. Furthermore the OP amp itself can add some noise and also other errors such as common mode error and offset error.

Internally I'm thinking about averaging the result. This could eliminate some random noise. But what if some noise isn't distributed according to a normal distribution, then I will get worse accuracy from it.

What do you guys think? Would the supply voltage noise propagate through the OP-amp? If I hook it up as a sallen-key filter, will that further enhance the OP's power supply rejection ratio?
 

It gets complicated very quickly doesn't it.

Firstly, if you lower the ADC ref level you will make it far more prone to problems, always try to bring the voltage up to full ADC range. As you are measuring a current I'm guessing it is DC or at a low frequency, this means you can safely reduce the amplifier HF response by use of negative feedback. If possible make the amplifier have lower gain as the frequency rises rather than filtering then using a wide bandwidth amplifier or you risk re-introducing the noise again. I don't know what the current you are measuring comes from but assuming it is DC or LF, you could safely make the amplifier gain roll off at only a few hundred Hz which will make it impervious to the crystal frequency and its harmonics. As far as supply line noise coupling in to the op-amp directly, the problem shouldn't be too serious as most amps have excellent supply rejection but in any case you can filter it's supply with say a 10 Ohm resistor in series with the supply pins and a capacitor to ground. You can aways trim out offset errors but in modern amplifiers it is generally very small anyway.

If time allows, it is worth averaging two or more readings, if only to reduce the normal +/- one digit resolution of the ADC.

Brian.
 

You want to use a precision, low noise, low offset op amp such as an OP27. If you only have a single supply voltage then you want a precision rail-rail type such as an LT1637. Whatever amp you use, roll off the response to no higher a frequency than that needed to measure any current change.
 

Firstly, if you lower the ADC ref level you will make it far more prone to problems, always try to bring the voltage up to full ADC range.
Can you elaborate that please?

I As you are measuring a current I'm guessing it is DC or at a low frequency, this means you can safely reduce the amplifier HF response by use of negative feedback. If possible make the amplifier have lower gain as the frequency rises rather than filtering then using a wide bandwidth amplifier or you risk re-introducing the noise again. I don't know what the current you are measuring comes from but assuming it is DC or LF, you could safely make the amplifier gain roll off at only a few hundred Hz which will make it impervious to the crystal frequency and its harmonics.

I'm only interested in the DC level of a current controlled by switching. The current design criteria is the time it takes for a DC step change to settle.

I'm little worried about the step change ripple introduced by a second order butterworth (eg. Sallen-Key). But maybe it's better to get a steeper rolloff, and accept some ripple in the time domain. I considered creating a Bessel filter to get rid of that issue, but implementing such filter in practice seemed a bit too complex.

Thank you for your response so far :)
 

Can you elaborate that please?
The voltage corresponding to a single digit change in ADC is (Vref/number of ADC steps) so if you drop the reference down to 100mV and are using a 10-bit ADC (I'm assuming that's what your Arduino uses) each digit corresponds to only 0.0000978V (~98uV) which is probably in your 'noise' floor. Using a noise free amplifier with a voltage gain of 50 so 100mV becomes 5V, the step size becomes 50 times larger at 4.8mV. Of course you will never find a perfect amplifier but with care you can lift the signal free of the noise by a factor of many times.

Unless you are dealing with extreme precision measurement I think what you propose is overkill. If you really need such precision, I would forget the Arduino and look for a custom solution. A simple LPF rolling off at a few hundred Hz should be sufficient.

Brian.
 

. However, the "main" supply voltage is as noisy as the ADC supply. These could propagate through the OP amp, and cause problems.

Opamps have a performance parameter, power supply rejection ratio (PSRR) which, for modern amps, is in the order of 80 dB or more.

Now, the ADC supply itself is another matter. For high performance applications, you must really filter this out, preferably with an LC filter. The C in the filter must be comprised of a low-ESR aluminum or tantalum capacitor, in parallel with a ceramic one. Placed as close as possible to the device's supply pins.

I also second the motion that it is best to amplify the small signal level with an opamp, located as close as possible to the source, and then send the amplified voltage to the Arduino.

Proper grounding techniques are also a must. You must use star-grounding.
 

.............................
I'm little worried about the step change ripple introduced by a second order butterworth (eg. Sallen-Key). But maybe it's better to get a steeper rolloff, and accept some ripple in the time domain. I considered creating a Bessel filter to get rid of that issue, but implementing such filter in practice seemed a bit too complex.
.......................
You might try using FilterPro, a free download from Texas Instrument. It calculates the values of any frequency, type and order of active filter you want.

But for your application just a single RC low-pass filter with a very low corner frequency may be adequate.
 

I recommend looking at instrumentation amplifiers, like
AD620; from the description I think much of your noise
may be ground perturbation related and you do not
want to refer the input to a busy power return at some
distance. Better to place an inst amp close in (or, look
at current-sense ICs since this is a current sense
problem - Maxim and Touchstone (RIP) have some
neat ones.
 

betwixt: Alright, so it's about the signal to noise ratio then.

schmitt trigger: I have to read more about HF power supply filters.
Star grounding was interesting, found a great paper on that and other things here:
https://www.analog.com/library/analogdialogue/archives/46-06/staying_well_grounded.pdf

crutschow: Well I guess I'm forced to do simulation, as there seem to be no simple answers to many of these questions.

dick_freebird: I did some check-ups on the Texas instruments INAXXXX series. However the best of regular OP' amps had lower offset voltage and also a lower price. However, the current sense IC's offer a solution to easilsy measure currents high side I guess.
 
Last edited:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top