# Opamp offset compensation circuit

Discussion in 'General Electronics Chat' started by picstudent, May 18, 2011.

1. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
I need to measure the current flowing through a resistor of 1 Ohms.
Maximum is 500ma.
I need to measure this current with 1 ma resolution and need to provide a calibration out put which should measure 1mv at 1ma.

I wish to avoid low offset op amps like op07 as quad or dual versions are not available here. I prefer LM324.
LM324 is having input offset 2mv. my range is 0 to 500mv at 1 mv steps. So i need to cancel that 2 mv offset using another stage of LM324. I tried in simulator but I cant get stable and linear results in Proteus.

Is this a workable idea? please suggest.

My plan is of LM324
first stage buffer
second stage offset to exactly 0-500ma ( goes to a test pin.(1ma=1mv)
Third stage amplify to 0 to 4.882V for PIC ADC.
Fouth stage a low pass filter .

File size:
88.8 KB
Views:
144
2. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
You did not state what reference voltage you are giving the PIC, so I'm going to assume you have a rock solid 5 volts Vdd and using that as the D2A reference. You also did not state which PIC so we don't know the resolution of the A2D, which is 8 (0 to 255) or 10 (0 to 1023) bits.

The basic A2D conversion ratio of a PIC is:

$\fra{V_{in}}{V_{ref}} * bits = (ADRES)$ (ADRES is the A2D result register in the PIC)

So for a 5V reference and a 10 bit converter you get:

$\fra{V_{in}}{5V} * 1023 = 204.6 * V_{in} = (ADRES)$

If we start at your sense resistor (1 ohm or 1.2 ohms?) you get a sense voltage for 1 mA of 1mA * 1 ohm = 1 mV. Plug the 1 mV into the conversion relation and you get:

$204.6 * 1mV = .2046 = (ADRES)$

The D2A will round to the nearest integer, so this will read zero. Not good, you want a result of 1 or better.

So let's start again and add some gain between the Vin and the A2D:

$\fra{A_v * V_{in}}{5V} * 1023 = 204.6 * A_v * V_{in} = (ADRES)$

Now we solve for Av when ADRES = 1 and Vin = 1 mV:

$\fra{A_v * 1mV}{5V} * 1023 = 1$

$A_v = \fra{5V * 1} {1023 * 1mV} = 4.888$

So your 4.882 factor should also work.

Now lets look at the high end: Max current is 500 mA which gives us an input voltage of .5A * 1 ohm = .5V. Multiplying by the gain we get .5V * 4.888 = 2.444V. That's great as it is lower then our reference so we can measure the entire range.

So you actually have some extra headroom here. You can use that. If you simply double the gain you still apply a max of 4.888V to the PIC and you get .5mA resolution per bit.

However... I assumed your reference was the power supply. As the supply changes so does the conversion on the high end and you might loose resolution there. I estimate you will get 1 bit (or 1 mA) of error for every 10 mV change in Vdd. (You can get that by using the conversion ratio equation and finding the difference in two conversions with different Vref that give you a 1 bit change).

As far as your circuit goes, I think you have too many parts. I would use but a single non-inverting op amp amplifier. Take out all the resistors around your sense R and run that direct to the amp; you use the high impedance terminal anyway, your source impedance is... 1 ohm so that works nice. Microchip has some very nice single supply rail to rail devices (if you can tolerate SOT packages) that will run off the 5V the PIC uses.

You mention some filter in the 4th stage, what are you filtering? Can you just average readings from the A2D instead?

Note to self: make a nice write up on how to compute accuracy and resolution for A2D converters.

3. ### #12 Expert

Nov 30, 2010
18,078
9,617
The R8,9,10 arrangement is almost right. What you need to do is set up a voltage divider from +12 to -12 with a small resistance pot in the center, like a pair of 100k resistors to a 500 ohm pot. The wiper of the pot will give you +/- 6 millivolts of adjustment. Feed that to pin 6.

What Ernie said went completely over my head, as I am an analog guy. I can fix this on an analog level and leave the PIC stuff to somebody else.

ps, you can use a 10 turn pot for the 500 ohms for very nice accuracy.

Last edited: May 18, 2011
4. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
I'm an analog guy too. If you go to some amp invented in this century you can forget about input offset adjustments:

The MCP6031T is spec'd for an input offset voltage of ±150 micro volts. It has a tiny gain bandwidth product of only 10 KHz so it is its own low pass filter. Not bad for under a buck.

The only question is how low need you go: Rail to Rail is spec'd at 10 mV, so you will loose reading the first couple of mA unless you bias it up a tad.

5. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
Thanks for all the inputs.They were extremely helpful.
Let me clarify one by one.

My PIC ADC is 10 bits so I am expecting a analogue input span to a range of 0 to 4.882 V.(My reference is PIC's Own Vdd +5 volts). So 1000 divisions of 4.88mv will give me .5ma resolution.

The filter I propose was a Anti-aliasing filter at the end of the chain. Off course I will be taking a average of at least 10samples placed 2 ms apart. In that case, can this anti aliasing filter avoided? (I am not an analog guy. Basically I am a MCU programmer who sometimes bump into the analog domain!). Or we can use the Microchip op amp with filter?

Can this so called 'rail to rail single supply concept' solve my issue? I need to get lower down as 1mv. I am ready to use dual power supply +12V and -12V if needed.
I may need another stage in between. I need to provide a test point where I can measure with a meter to get 1mv for every 1ma current flowing.
Also I need presets in input ,offset and gain stages to facilitate caliberation.(My crude way of trying that objective was that high component count!

On further reading I think I have abandoned the idea of using LM324 for this application.

Thank you very much.

6. ### Jaguarjoe Active Member

Apr 7, 2010
770
91
A split supply (+/-12v) would let you go all the way down to zero and lower. An easy way to get -12v from a +12v supply is from an ICL7660 or a 555 diode pump if you don't need much current from them.

7. ### #12 Expert

Nov 30, 2010
18,078
9,617
What are you guys doing coming up with a +/-12 volt supply now? That supply is in the original drawing. That supply is what I relied on to make my suggestion work. That supply is why you don't need rail-to-rail amplifiers.

I'm getting confused.

8. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
Good, that's what I thought you were doing, I would do it that way too, you get the most bang for the buck with such a scheme.

What does your input signal look like? It is a slowly changing but basically DC signal? If so you don't need the anti aliasing filter; those are only needed when the input signal has frequency components higher then the sample rate, and 2mS * 10 = 50 Hz, so you're pretty much down to DC anyway.

Oh... why average 10 samples? Would 8 be OK? Would 16 be better? I ask as those are powers of two and let you do the division in the average as a shift which is much faster, less code too.

Oh crap, I was afraid you would say that. So you actually need to read 0.00 mA and 1.00 mA as different signals? Zero is important enough to spend money on reading it? I'm asking the question, and yes is a valid and acceptable answer.

So lets accept zero is important. Since we can get our 4.88V (and lots more) from this amp connected to the existing 5VDC supply there is no need to get a +12V supply. For a negative supply all we need is a handful of millivolts to get us past the "ground + 10 mV" limit of the amp's output. I would put a max of -5V (or is that a min? <grin> ) on the negative supply, as that can be done with a simple cap inverter (5V in, -5V out), and a lower voltage would also work.

This begs the question: how do you get or make the 5V running this thing? Perhaps we can be clever and sneak a volt or two negative out of it. That voltage doesn't need to be regulated, just stable.

You already have a 1 ohm resistor for sense. Anything you put between that resistor and the testpoints will corrupt that sensed voltage (excepting a controlled calibrated amplifier). It has a lovely low impedance (under an ohm, right?) and a meter shouldn't be able to inject a signal to such a low impedance point.

If your boss looks worried add a 100 ohm resistor each side of the sense resistor to the test point; they don't do anything but looks like you now have that magical "isolation."

I find a high component count to be a crude objective! I object!

I know your resolution is 1 mA and you're looking to measure to twice that (0.5 mA), that should be good.

Hopefully by using nice modern op amps with microscopic offsets we don't have to tinker with that either. (But we will re-check that in the final design.)

So what are your calibration objectives? How accurate does this need be? What percentage of the true current into the resistor can we be off by?

Oh, and how accurate is that resistor? Got data sheet? Will you kelvin (4-point) the current and sense paths?

Horay!!!!

You're welcome, it's been my pleasure.

9. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
Thank you very much for spending that much time for a detailed reply.
I will describe the situation in detail.

This is absolutely a 'DC' affair. Actually I am applying +60VDC to a Specimen and I need to measure current flowing through the specimen for 6 hours. I will log the current every 5 minutes. If the current exceeds 500ma I will cut off the supply. I am using a p channel MOSFET IRF9540 to turn this on from PIC18F452. The specimen and this current sense resistor is in the lower side of the MOSFET. The device contains 6 channels of this setup. The signals goes to a MUX and then to PIC. At the same time each specimen temperature also I am monitoring. If either temperature or current exceeds limits I will switch off the MOSFET. All the channel data I am showing on a 4 Line LCD . I am using another PIC 18F4550 for logging this data in a 24LC256 EEPROM and uploading to windows machine via USB. A C# application displays and print out the data with some calculation with text and graph.

All these things I have already done and everything except the analogue signal sensing part is working fine.(But when current value is not accurate nothing else matters!) So I am redoing that part. Initially I did it with OP07 line up with a objective of .1ma resolution which was actually not needed.(Over enthusiasm or whatever. Or 'ignorance of the practical difficulties' will be apt!). So now I am planning to change the analogue part to new line up with reasonable objectives.
Neither current or temperature is fast changing in this case. I can slow down sampling if needed. But I need a short circuit protection for the probes into specimen. If I can move that part into hardware I can be more flexible in ADC conversions.
That is the story!

So now.

So as you suggested since this is DC Anti -Aliasing filter is not needed. I will introduce a short circuit protection in hardware and introduce a RC filter just before the MUX. right?

So will take 16 samples and right rotate.

Regarding your query about reading '0' and 1 ma I think I should say 'yes' as you already presumed. I do not think any specimen in my case will give exactly below 1ma current. But on testing they may try it. So be prepared. Also why should I avoid a chance to learn?

So I will make a capacitor inverter or charge pump or something (I will search and find how) to derive -5V out of +5V to drive this op amp. So we can dip to minus side. right? If that is possible I can avoid +12V and -12V altogether. The supply I am getting from SMPS. +60V for Feeding the probe, +12V,-12V for op amps and +5V for MCU part. In this case I can avoid that +12V,-12V part.

Here I have some lack of data. The client says when they or the concerned party measures the test point they should get 1mv for 1ma. Here I think we have to make a best guess. One thing I know this is not a high accuracy case. Let us say +/-.25ma, Is it practical in our case?

Regarding the sense resistor in the first version I used 1% resistors. In that there was no 1ma=1mv test point. I simply calibrated in the software. at that time my concentration was in software. Now that part is OK. I need a professional hardware part. What are the good options here?

Regarding the meter connection to test point, Ok about the dual 100 Ohm resistor arrangement. But in that case we have no option to compensate for resistor value variation.

Thanks for reading and writing lengthy posts!

MCP6031 supply voltage is 5.5V only. So from +5V tied to top side ,we do not have much room to go down 0. That is enough for us, but is my understanding correct in that case.
Let me read some docs I have found on Microchip site.
I have seen circuits with 555 to get -4V from +5V. They claim it can supply 100mA!
will be back. Thanks

Last edited: May 20, 2011
10. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
That's a lot to think about and I am on my way to work now, after dropping off poop samples from my kitties to the vet (I rescued 2 babies last week). I'll think about this and get back.

Basically your on the right path.

If you make a fixed -5V (or close) then the op amp has to change, but there are lots of parts that fill in there.There are also some nice simple dedicated "charge pump" voltage inverter chips that charge a cap to 5V, switch it reversed to another cap that then outputs -5V. Advantage is it is a 1 chip plus caps solution.

Now about this .25mA in 1 mA resolution. Does that scale up to 500mA, meaning 125 mA in 500mA or the same .25mA in 500mA? The first way is 25% accuracy, pretty crappy, then latter way is .05% accuracy, that is damn impossible with a resolution of .5mA/500mA*100=.1%

1mA in 500mA is 0.2% and probably easily achievable given you find stable resistors (not hard) and do some software calibration which could be as simple as you apply a known 500 mA and hit a cal button on the PIC so you grab the value grab the reading to calculate a cal value to store in the EEPROM.

I did a very fast check of what Digikey has for resistors and found
http://search.digikey.com/scripts/dksearch/dksus.dll?Detail&name=SR10-1.00-FCT-ND
It's 1% but low temperature change (50-100ppm/°C) with the 4-point sense terminals built in, at \$5.25 each. That's probably the best tolerance you'll find unless you go to very expensive current shunts.

Are you powering this from a lab supply? If you could send it 6 volts you could use a 5V regulator and a diode to make +5V and -.7V which gets around the zero issue.

And curiously enough, I used that same PIC on a bunch of fixturing I've done; I used it as the default choice just to keep using the same device. It is a good part.

I see your reply at 1:22 AM and edited at 4:45AM; did you stay up all night or are you on the other side of the world?

(And that was my *quick* answer. If I have more time I would have written a shorter post.)

11. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
OK, let's talk a bit about resolution, accuracy, and calibration.

The resolution we worked out before, each of us sees 1 ohm sense R followed by a gain stage of 9.777 so .5A * 9.777 = 4.888V to get 1,000 counts at the A2D. The current of 0.5A over 1000 counts gives us 0.5mA per count. That's the resolution. The system sees the world in 0.5mA increments.

There are two areas where accuracy are important: the test point at the sense resistor, and the A2D conversion internal to the processor.

The test point accuracy is the simplest: it is just the accuracy of the sense resistor. I've looked over a few distributors and have not found anything better then the 1% in a 1 ohm 1 watt 4 terminal resistor I mentioned before.

They exist, just not commonly stocked. Here's a sample of the best you can find: IET Labs, but 0.02% accuracy isn't cheap. No online pricing either, you have to request a quote from them.

The accuracy of the the A2D conversion is subject to your calibration, then the accuracy is how much the resistors and the Vdd supply drift from what they were when you calibrate. Since you said you can "simply calibrate in software" it seems you know how to do that part, but please ask if you want.

12. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
Hi

btw I am on the other side(..of the globe! not of opinions or interests.) from INDIA.

I got it. That was my misunderstanding about the concept. 1ma in 500ma accuracy should be OK with me on .5ma Resolution.(My previous hardware was using a 12 bit Microchip dedicated ADC with good resolution in paper! Not Microchip fault - poor layout and component tolerances!)

For the current sense resistor I will opt that 1% from digikey. The .02% will be a overkill for my purpose even if I could afford it.

What I understand is, 1% is the maximum possible 'fixed' shift from the specified value of the resistor and the 'runtime' change (which is the main problem) will be very low - say a few micro ohms/every Degree Celsius temperature change. right?

I will have a dedicated SMPS for this, of which I think the +5V rail has a post regulator. I may be able to lift the GND pin up using a diode and get +5.75 Volts coming. Then split on the board.(But how 7805 needs +8V to operate?) May be confusing the 'GND' for me. Or I can bring +12 into the board and make +5 and needed minus volts. Any way better to use a single positive tap SMPS in my case and make minus locally.

Regarding the accuracy part again, one thing confuses me. The sense resistor is 1% so it can be 1.01 Ohm. So if 500ma current flows through it
volts will be 505 mV. The software result can be compromised, but what about the test points? or are you suggesting that any attempt to correct this using active devices will make situation worse?

What I did is subtracting or adding a error value to get the known current and store it in internal EEPROM. I am not sure weather it will hold linear in the entire range. Or should we divide into ranges and do more 'close' corrections?

Thanks and regards

13. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
Yes, you got it. Resistor value changes can be divided into to types: Initial set and drift. "Initial set" is what we commonly typically take as the tolerance, what value the resistor starts off at. "Drift" (or runtime for you programmers <grin>) is any change from the initial value; drift can come from many reasons such as temperature change, power surge (even below rated maximum), age, and so on. A careful read of the data sheet of the resistor you pick will show what is significant.

"Initial set" is eliminated as a source of error when we do the calibration. "Drift" for the large part we have to live with, except when we do a later recalibration we take out any "age" changes.

While choosing a 1% resistor for the sense resistor leaves us with a direct error of 1% in the testpoint you are always free to calibrate this error by measuring the exact sense resistance and using that to calculate the current from the voltage reading.

That would work. While how it is powered is important you have many options to choose from.

If you already have the power source you may have to build a negative supply for it, such as the LM2687 which will give a negative voltage with just 4 external capacitors (no inductors) and 2 more resistors.

(Question: How are you building this? Can you use surface mount parts or would leaded DIP packages be better?)

If you get one with a + and - output all is good (we just have to pick a different op amp and there are many to choose from).

What has me worried the most is the exact voltage of the power you supply enters directly into the conversion in the A2D and thus the overall accuracy depends on the supply voltage. (Note the negative supply is not at all critical as the A2D doesn't "see" it.) I've used the Microchip MCP1541 before. This isolates the A2D from supply changes, though you would have to re-scale the amplifier to use it. You get the same resolution and a more-predictable accuracy.

The conversion should be linear over the entire range. The typical offset from the op amp will be in the range of .1mV from -40 to 85°C so it should be negligible, but we can calibrate and compute for it anyway.

Here's one way to do a calibration. You insert two known currents you get to choose, so choose something like 50mA and 500 mA. You would apply these currents and inform the PIC it is doing a calibration and should treat save off these CAL values.

The converter output is:

$ADRES=C_V*I_{IN}$

where $C_V$ is the actual overall conversion ratio of:

$C_V =I_{IN}* R_{IN}*\fra{A_V*1023}{V_{DD}}$

The good news is we don't have to know that exact equation when calibrating.

A linear system follows the same equation of any straight line:

$y=mx+b$

For this system:

$ADRES =C_V*I_{IN} +V_{OFFSET}$

When you take two measurements you get two sets of numbers:

$ADRES_1 =C_V*I_{IN1} +V_{OFFSET}$

$ADRES_2 =C_V*I_{IN2} +V_{OFFSET}$

If you subtract these two equations you get:

$ADRES_1-ADRES_2 =C_V*(I_{IN1}-I_{IN2})$

Solving for C_V:

$C_V = \fra{I_{IN1}-I_{IN2}}{ADRES_1-ADRES_2}$

As we just measured $ADRES_1$ and $ADRES_2$ and we know $I_{IN1}$ and $I_{IN2}$ we have all we need to calculate $C_V$. This measures the exact conversion ratio and can be used calibrate all further measurements.

If setting an exact current is difficult you can input any current as long as the PIC can be told the value of the current at runtime (setting exact currents we can assume their values at compile time).

You can also determine the exact offset:

$V_{OFFSET} = C_V*I_{IN1}-V_{OFFSET}$

But I expect you to find this term to be negligible.

I'm going to stick in a schematic now. It is a bit more refined then the first but it is still a "concept" and not a "build" version. I include it to show how I would use the diode to make a small negative voltage, and also to show the "kelvin" connections to the sense resistor. I've also stuck in a free bypass caps where I would put them (the regulator may need some more caps).

14. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
Thanks for the details especially the calibration notes and schematic plan.
Time to 'wind up for the day' here (08.30PM - 22nd May Sunday!). Will update in detail later.

Regards By

15. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
I will avoid SMD as much as possible.

SMPS to be used with this is not finalized. I will try to avoid using a dual rail SMPS if possible. If this diode arrangement can solve my offset issue no need for it.(right?) otherwise, I can use my old idea of a +12V and -12V supply. In that case OP07 may be used. It is having Low offset,available and cheep.Only problem is if one channel needs more than one opamp, dual version is not available here!
I think I can solve that issue. Actually those 2.048V or 4.096V reference devices are not locally available. I have to online order that item and online order is not like 'DigiKey method' here. It takes 1 or two weeks and charges are high. Farnel and RS components are smiler sources here.
But 2.5V shunt diode is a cheap and locally available item.(Is it accurate for our purpose?) I can connect two LM336 in series and make a 'Stable' +5V reference. Using only one for +2.5V reference will strech PIC to its extremes. +2V is the minimum VRef specified. What about this method? I will have to spare two IOs. 1 for +VRef and one more for -Vref. 18F452 ADC is having only such a combination in which 1 Analog input and if you want to provide external ref, then Vref+ and Vref- to be given. So two Lm336 can be arranged close to those Ref pins and forget about Power supply variations.
Here still I can't derive a solution. The test point in this case cannot be called 1mV@1mA. For each equipment the resistance to be noted down and calculated.That beats the purpose of this so called 'test point'.I think they are looking for a analog result in parallel with digital result.

btw when we use this -.75V -1V for this negative supply of opamp, how much current it will draw? You use 1N4148 of which 150ma is the forward current. I will have 6 op amps running from this supply. what about 1N4007? Avoided because of Low forward drop?(.8V instead of 1V of 4148?)

Thanks for the time.
wish you a nice week ahead!

16. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
Chicken! Cluck cluck cluck!!!!

I actually prefer to work with SMD parts but it took me a few years of experimentation to get there. I also have an incredibly expensive soldering iron with a very fine tip with options to use wide tips if need be, a hot air reflow station, and a microscope to actually see what I'm doing. Then I use all this to solder parts to the cheapest breadboards I can get from Radio Shack.

OK, leaded parts it is. That gives me a guide when suggesting parts. It also means the MCP6031 is out as it does not come in a DIP package.

The diode version, while I believe would absolutely work does fall into the area of a kludge and isn't a strong suggestion of mine, but rather a cost savings option. If you use a dual supply then I would suggest a +5V and -5V if you can get an op amp to run with it, otherwise back to +12V/-12V.

If you can't get duals then use a lot of singles <grin> However, the OP07 part can't get closer then 3V to the rails so if you must use it then you will need the +12V -12V supply.

We could scale the amp to work with a 2.5V reference and keep the same accuracy.

Then I would just tell them it is 1mV@1mA ±1%, and the digital answer is better calibrated.

A 1N4007 is a better choice as it can handle more current. The diode's voltage is from it passing all the current from everything but the op amp, and if you add all that up it may overload a signal diode. The absolute drop of the diode is not critical as all the circuit needs is 10-20 millivolts and anything more is fine as long as we don't give the amp too much supply voltage, so anywhere between .1 to 1V is just perfect.

However, it doesn't apply when using the OP07, that needs a much larger negative supply of at least -3 volts or better.

Do your local vendors have websites? If so, please list them so I can recommend parts you can actually get!

Have a great day! And you work too much

17. ### #12 Expert

Nov 30, 2010
18,078
9,617
Ah yes, this seems so much simpler than an analog "dial an offset". I can see now why microcontrollers are so popular.

18. ### ErnieM AAC Fanatic!

Apr 24, 2011
7,947
1,817
Exactly. I built an 11 micro controller test stand that tests 10 units together. 1 micro is the master that runs the main display and the other 10 each serve as slaves to perform the actual test & perform measurements.

To calibrate each slave I have a simple LCD screen the calibration tech inserts and the slave will then run on it's own. To calibrate you just apply a voltage and connect a voltmeter to measure the voltage or current.

The calibration is then just pushing buttons until the cal display agrees with the DVM. That value gets stored into the micro's EEPROM until next year when it is time to recal. No knobs or trim pots necessary.

BTW, if we can assume the offset is either zero or negligible then only a single calibration test value is needed; if you have y=mx+b and b is zero, then inserting a known x and measuring y means you can compute m.

19. ### picstudent Thread Starter Well-Known Member

Feb 3, 2009
78
0
Hi
I was on some other work for two days.(Multitasking!!)

I think I will stick with OP07. For power supply, single supply +12V SMPS are easily available and low cost. I have located a voltage converter TL7660 which is available here. So that I can generate -12V and +5V locally in the board. The only problem is it can accept up to +10V and deliver up to -10V.
How can I drive this chip from +12V for this purpose. The option immediately coming to my mind is arranging 4 rectifier diodes in series to drop the +12v to +10V. Any other good idea for that?
Also driving OP07 with +12V and -10V, I believe is OK in My case. Supply need not be symmetrical. Correct?.

Also again to the case of ADC reference, 2.5V reference means close to extreme limit of PIC.(2V is the min Reference for PIC ADC). So I was thinking that by adding another LM336 to make reference +5V, will make PIC ADC having more span to work with.Also the scaling amplifier will be less prone to tolerances. What about this analysis? Is there any other consequences for making ADC reference +5V than more component count?

Local vendors are not web friendly.
Thanks