Exact match. Not showing close matches.
'[EE] Removing offset voltage for ADC'
I have a circuit which I now plan to use an allegro ACS711 current sensor. This puts out voltage based on current, where zero current is referenced to VCC/2. As I only care about current in one direction, I'd really like to remove this offset and then be able to amplify this to a range based on my expected current range.
Vcc is 3.3V. The full scale output is from 1.65 to 3.3V. The current range I am working with is probably more like 1.65V to 2.5V. I'd like to move this to where this is scaled to a range of around 0 to 3.3V.
The obvious way to do this is to feed this output into a difference amplifier made out of an opamp and four resistors. Wire the positive input to the ACS711, and wire the negative input from a VCC/2 voltage source made from another opamp in unity gain mode and with a voltage divider on the input. But that seems like a bit of overkill since I'm pretty certain I should be able to do this all with one opamp and skip the unity gain amp- unfortunately I'm not seeming to have much luck doing the correct analysis to make this work.
So, I'd appreciate any opamp wizards which could either just point me towards the solution, or even better help me figure out where my 'mental model' of opamp operations is falling down in this case, so I don't have to ask a similar question again.
On Thu, Jun 23, 2011 at 7:10 AM, Forrest Christian <imach.com>wrote:forrestc
Well, how about an out-of-the-box idea?
Are you aware of the other ACS7xx parts? They have a couple that are
unidirectional and do not have a vcc/2 "zero" point. Look at the ACS713 or
The other thought depends on the rest of your system. An interesting
approach is to play with the negative and positive Vref inputs. Most of the
time Vref is set to Vdd and Vss, but there's nothing stopping you from
setting the lower Vref to Vdd/2 which scales the A/D converter to the
effective range of the sensor. I had one application where I changed the
Vref on the fly (internal Vdd/Vss to read one sensor, external references to
read another sensor)
I like Denny's out of the box ideas. How about "in the box", but one less opamp?
Have you seen, the Sparkfun ACS712 Low Current Sensor Breakout @?
More importantly, the schematic half way down the page, if this url doesn't work,
Uses 1 inverting opamp + resistors, but you can put the current through the input of the ASC712 in either direction to get the correct sense on the opamps output. Offset and gain are variable.
Just been looking at this for a PIC project.
On 23-Jun-11, at 10:10 AM, Forrest Christian wrote:
> I have a circuit which I now plan to use an allegro ACS711 current
> sensor. This puts out voltage based on current, where zero current is
> referenced to VCC/2. As I only care about current in one direction,
> I'd really like to remove this offset and then be able to amplify this
> to a range based on my expected current range.
On 23/06/2011 15:10, Forrest Christian wrote:
what is resolution of ADC compared to accuracy of the sensor? Does it actually matter if full adc range isn't used? If so save on HW and just scale in SW. Unless you use precision resistors etc adding an op-amp may reduce accuracy?
Deepening on the accuracy you meet do it in the micro you can
establish an offset value for no current this will effectively give
you 11 bits of resolution for a 12bit conversion and you don't need
any odd voltage supplies for the opamp to ensure true rail to rail
On Thursday, 23 June 2011, Michael Watterson <radioway.org> wrote: mike
On 6/23/2011 11:38 AM, Michael Watterson wrote:
> what is resolution of ADC compared to accuracy of the sensor? Does it
> actually matter if full adc range isn't used? If so save on HW and just
> scale in SW. Unless you use precision resistors etc adding an op-amp may
> reduce accuracy?
I'm going to be using a 10 bit ADC in a PIC. Vdd/Vss references, 3.3V So 3.3/1024 = ~3mV/step.
For various reasons (primarily increasing the number of places this part can be used), i'd really like to use the +-25A version of the Allegro product. In this case, I'm most interested in 0-+5A.
0A corresponds to 1.67V. 5A corresponds to (5*0.055+1.67)= 1.945V. So, a range of 275ma over the range of interest... or just under 100 steps.
Or using the other math... 55mV per AMP, or about 1/20th of an amp per step. Not sure that is enough resolution for me.
I was considering moving the ADC references but there just isn't enough to gain - you need at least 2V from Vref+ to Vref-, which means I'd be lucky to gain another 100 steps.
Although I have to admit, the most usable option I've come up with so far is to give up and use the 12.5A version, and move the Vref- to around 1.2V, which should put us at 2.1V/1024 = 2mV/step, and the about 55 steps/amp... or 0.02A per 'step', which seems quite a bit better, and then do math in software to get the right values.
I typically use microchip rail-to-rail in and out opamps, such as the MCP6024, so that isn't a big issue.
On 6/23/2011 11:53 AM, smith steve wrote:
Mark E. Skeels
It might be worth investigating using a very small series resistor with a TI INA21X. current shunt monitor.
The chip output reference can be attached to something other than ground and the small value resistor needed allows very low insertion loss and low wattage rating.
Different parts in the family have different gains, so you can choose one that fits your needs.
Data sheet: http://focus.ti.com/lit/ds/symlink/ina214.pdf
I can't spend a lot of time to see if this really fits your app, but I thought I'd mention it here because I bet if you take a look you'll find a nice way to use it and I suspect it will save you some $ over the Allegro part.
Just make sure you have dedicated sense lead connections to the inputs to avoid voltage drop in the main current path which leads to errors. If you do this right you can get good results.
Wow, how did I miss the TI parts?
Looked everywhere else, and I was sort of stuck between a $1.20 national part w/shunt, and the Allegro part... The INA21X's have too low of a CMRR voltage, but the INA270 looks like it might be perfect for the job.
On 6/23/2011 12:39 PM, Mark E. Skeels wrote:
I agree with this! Adding a differential amplifier in front of the ADC in
this case looks like you're only gaining 1 bit of resolution (converting a
half scale range to a full scale range). You'll probably lose that in
errors in the diff-amp.
I did a "cow thermometer" design years ago (see http://www.gla-ag.com/ )
that uses a precision thermistor. A typical thermistor circuit puts the
thermistor in a Wheatstone bridge with fixed resistors in the other legs.
This results in one side just being a voltage divider feeding one side of
the differential amplifier, getting rid of offset from the voltage divider
that has the thermistor in it. So, you'd need three precision resistors.
Instead, I increased the resolution of the ADC and then used one precision
resistor to pull up the thermistor to the ADC reference voltage. No
differential amplifier to contribute errors. Only one precision resistor
required. No calibration required. It just works.
(The ideal design has zero parts).
-- FCC Rules Updated Daily at http://www.hallikainen.com - Advertising
Mark E. Skeels
You will need an RRIO op-amp that will run off of 3.3V. First get two equal value resistors (say 20K 1%) and connect one to 0V and the other to 3.3V connect the junction of the two resistors to the inverting input of the op-amp. This sets the offset voltage. Connect the output of the Allegro current monitor to the non-inverting input of the op-amp. Then to set the gain, connect a resistor from the output of the op-amp to the inverting input (say 10K 1% for a gain of 2) where there are already the other two resistors connected. You can trim the gain by adjusting the 10K resistor value and you can trim the offset by adjusting the ratio of the two 20K resistors. For noise filtering you may want to try a 1K resistor between the output of the op-amp and the input to the PIC and place a 0,01uF cap from the PIC pin to 0V. Unless this slows the response too much
What was I thinking? My last post was wrong. The offset voltage was wrong. Use the same op-amp, feedback resistor (10K 1%), output RC filter (1K; 0.01uF). Use a single 10K 1% resistor connected from 3.3V supply to the inverting input of the op-amp. This will result in a gain of 2 and an offset voltage of 1.65V (=3.3 / 2). Things to watch out for:
1) Noise in 3.3V supply will be coupled into A/D.
2) 3.3V supply MUST be exactly twice zero A output voltage of Ametek sensor and must be stable.
3) This circuit lets A/D cover entire output range of sensor - Having the A/D converter cover a smaller part of sensor range will require more gain, and more accuracy in gain setting and offset reference stability and accuracy - probably will require circuit trims.
4) Op-amp must have input offset spec that is lower than 1/2 LSB or circuit trims will be required.
5) If you use capacitor on input of A/D (recommended by Microchip to reduce conversion noise) don't forget isolation resistor between op-amp output and A/D input. Many, if not most op_amps will oscillate with cap on output..
More... (looser matching)
- Last day of these posts
- In 2011
, 2012 only
- New search...