This turned into a really long post... My question is at the end if you want to skip most of it... A lot of this post is some real world results that I decided to include, just in case it might help someone else in my situation...
I've got some questions about OpAmps. By trade I'm a computer programmer, so the digital electronics world makes sense to me... I've done a lot of home brew PICChip and a couple of Arduino projects and I've dabbled with analog circuitry (mostly for real world input and output, in support of the PICChip and Arduino projects). I know the basic analog theories and how to apply them. But I am having trouble understanding how OpAmp spec sheet data relates to the OpAmp real (or virtual) world behavior. I've been through most of the documentation for OpAmps I could find online and on this site... But I must be missing something...
I'm attempting to construct a circuit to read the output from an O2 sensor using the A2D inputs of a PICChip (actually, I think I have succeeded, but I don't like the method I ended up using to get to the solution). The O2 sensor generates between 8mv to 12.5mv. I am attempting to obtain an accuracy of around 0.1%. So I would like to be able to get about 1000 unique readings over the 8mv to 12.5mv range. To do this, I am trying to amplify the 8mv to 12.5mv signal to around 0v to 5v.
I was able to do this fairly easily using CircuitMaker Student's IDEAL OpAmp5. But when attempting to find an IDEAL OpAmp5 to purchase, I've come to the conclusion that this is a just a virtually perfect device and probably doesn't really exist.
Most of the docs I have read, make this project seem fairly simple to do with just about any OpAmp.
With almost all the other CircuitMaker Student OpAmp models and with my real world tests with OpAmps on the bench, it doesn't seem to work...
Posts I've found on this board seemed to imply that it should work with a LM741, using 1k and 1m resistors. My experiences didn't come close to the expected results using an LM741.
I made up a simple non-inverting OpAmp virtual circuit in the CircuitMaker Student version, to test OpAmp outputs using a 0 to 200mv signal generator and R1 = 1k and R2 = 2k. I'm using Gnd and a simple LM7805 to supply +5v to the power inputs of the OpAmp (I suspect this could be part of my problem, but the spec sheets seem to imply that most of the OpAmps can operate on most any input voltages...).
Here are my original assumptions and a list of the OpAmp models that came closest to the results I was expecting.
Voltage Output = Voltage Input x (1 + (R2/R1))
R1 = 1k
R2 = 2k
Voltage Input, Sine Wave from 0mv to 200mv
Voltage Input = 0mv
Voltage Output = 0mv x ( 1 + ( 2000 Ohms / 1000 Ohms ) )
Voltage Output = 0 x ( 1 + ( 2 ) )
Voltage Output = 0mv x 3 = 0mv
Voltage Input = 200mv
Voltage Output = 200mv x ( 1 + ( 2000 Ohms / 1000 Ohms ) )
Voltage Output = 200mv x ( 1 + ( 2 ) )
Voltage Output = 200mv x 3 = 600mv
Thus the expected result, Voltage Output should be a Sine Wave from 0mv to 600mv
The actual results:
IDEAL OPAMP5 - Looks perfect...
LM2902 - Curve looks fairly close at the top, but the signal appears to bottom out around 325mv (The curve at the bottom is very wide, as if there is some sort of bottom end clipping)
LM324 - Comes close, clean curve, but top output voltage swing isn't as wide as expected (about 50mv to 575mv)
LM358 - Same as LM324
LT1006 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1013 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1014 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1077 - Looks perfect
LT1078 - Looks perfect
LT1079 - Looks perfect
LT1178 - Looks perfect
LT1179 - Looks perfect
LT1217 - Curve and Coverage look good, but is offset by 425mv
LT1223 - Curve and Coverage look good, but is offset by 1.1v
LT1229 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 925mv
LT1230 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 925mv
LT1253 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 675mv
LT1254 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 675mv
LT1259 - Curve looks fairly close (hard to tell), but the range might be too wide (can probably be compensated for) and the base is offset by 220mv
LT1260 - Curve looks fairly close (hard to tell), but the range might be too wide (can probably be compensated for) and the base is offset by 220mv
LTC1047- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1049- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1050- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1051- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1052- Curve looks fairly close (even a little wide at the bottom than
LTC1047-LTC1051), but it not quite as wide a range as expected and the base is offset by 80mv
LTC1053- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1150- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC7652- Curve looks fairly close (even a little wide at the bottom than LTC102), but it not quite as wide a range as expected and the base is offset by 80+mv
By doing this trial and error method, I was able to determine that the LT1077-LT1079 and LT1178-LT1179 OpAmps should work for what I want to do... In my final virtual circuit, I ended up using a LT1078. It uses both OpAmp circuits in the chip. I made a voltage divider to generate a 8mv reference voltage and a voltage follower to isolate it from the negative input of the second OpAmp in the LT1078. I use the second OpAmp in the LT1078 as the amplifier.
Using this trial and error method to figure this out seems amazingly wrong to me... In the past I've always been able to look at the spec sheets and figure out what components will work best. But these OpAmps are making me feel like an idiot.
Here is my question...
What am I missing in the Spec Sheets that accounts for the differences I am seeing?
I'm not looking for a detailed description, just a little help, in letting me know what data in the spec sheets I need to apply to the non-inverting formula VO = VI x ( 1 + ( R2 / R1 ) ), to maybe account for the radical differences I am seeing...
Thanks for any insight...
I've got some questions about OpAmps. By trade I'm a computer programmer, so the digital electronics world makes sense to me... I've done a lot of home brew PICChip and a couple of Arduino projects and I've dabbled with analog circuitry (mostly for real world input and output, in support of the PICChip and Arduino projects). I know the basic analog theories and how to apply them. But I am having trouble understanding how OpAmp spec sheet data relates to the OpAmp real (or virtual) world behavior. I've been through most of the documentation for OpAmps I could find online and on this site... But I must be missing something...
I'm attempting to construct a circuit to read the output from an O2 sensor using the A2D inputs of a PICChip (actually, I think I have succeeded, but I don't like the method I ended up using to get to the solution). The O2 sensor generates between 8mv to 12.5mv. I am attempting to obtain an accuracy of around 0.1%. So I would like to be able to get about 1000 unique readings over the 8mv to 12.5mv range. To do this, I am trying to amplify the 8mv to 12.5mv signal to around 0v to 5v.
I was able to do this fairly easily using CircuitMaker Student's IDEAL OpAmp5. But when attempting to find an IDEAL OpAmp5 to purchase, I've come to the conclusion that this is a just a virtually perfect device and probably doesn't really exist.
Most of the docs I have read, make this project seem fairly simple to do with just about any OpAmp.
With almost all the other CircuitMaker Student OpAmp models and with my real world tests with OpAmps on the bench, it doesn't seem to work...
Posts I've found on this board seemed to imply that it should work with a LM741, using 1k and 1m resistors. My experiences didn't come close to the expected results using an LM741.
I made up a simple non-inverting OpAmp virtual circuit in the CircuitMaker Student version, to test OpAmp outputs using a 0 to 200mv signal generator and R1 = 1k and R2 = 2k. I'm using Gnd and a simple LM7805 to supply +5v to the power inputs of the OpAmp (I suspect this could be part of my problem, but the spec sheets seem to imply that most of the OpAmps can operate on most any input voltages...).
Here are my original assumptions and a list of the OpAmp models that came closest to the results I was expecting.
Voltage Output = Voltage Input x (1 + (R2/R1))
R1 = 1k
R2 = 2k
Voltage Input, Sine Wave from 0mv to 200mv
Voltage Input = 0mv
Voltage Output = 0mv x ( 1 + ( 2000 Ohms / 1000 Ohms ) )
Voltage Output = 0 x ( 1 + ( 2 ) )
Voltage Output = 0mv x 3 = 0mv
Voltage Input = 200mv
Voltage Output = 200mv x ( 1 + ( 2000 Ohms / 1000 Ohms ) )
Voltage Output = 200mv x ( 1 + ( 2 ) )
Voltage Output = 200mv x 3 = 600mv
Thus the expected result, Voltage Output should be a Sine Wave from 0mv to 600mv
The actual results:
IDEAL OPAMP5 - Looks perfect...
LM2902 - Curve looks fairly close at the top, but the signal appears to bottom out around 325mv (The curve at the bottom is very wide, as if there is some sort of bottom end clipping)
LM324 - Comes close, clean curve, but top output voltage swing isn't as wide as expected (about 50mv to 575mv)
LM358 - Same as LM324
LT1006 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1013 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1014 - Looks almost perfect, but the bottom of the curve is a little high - but probably can be compensated for...
LT1077 - Looks perfect
LT1078 - Looks perfect
LT1079 - Looks perfect
LT1178 - Looks perfect
LT1179 - Looks perfect
LT1217 - Curve and Coverage look good, but is offset by 425mv
LT1223 - Curve and Coverage look good, but is offset by 1.1v
LT1229 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 925mv
LT1230 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 925mv
LT1253 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 675mv
LT1254 - Curve looks almost perfect, but it not quite as wide a range as expected (can probably be compensated for) and the base is offset by 675mv
LT1259 - Curve looks fairly close (hard to tell), but the range might be too wide (can probably be compensated for) and the base is offset by 220mv
LT1260 - Curve looks fairly close (hard to tell), but the range might be too wide (can probably be compensated for) and the base is offset by 220mv
LTC1047- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1049- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1050- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1051- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1052- Curve looks fairly close (even a little wide at the bottom than
LTC1047-LTC1051), but it not quite as wide a range as expected and the base is offset by 80mv
LTC1053- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC1150- Curve looks fairly close (A little wide at the bottom), but it not quite as wide a range as expected and the base is offset by 70mv
LTC7652- Curve looks fairly close (even a little wide at the bottom than LTC102), but it not quite as wide a range as expected and the base is offset by 80+mv
By doing this trial and error method, I was able to determine that the LT1077-LT1079 and LT1178-LT1179 OpAmps should work for what I want to do... In my final virtual circuit, I ended up using a LT1078. It uses both OpAmp circuits in the chip. I made a voltage divider to generate a 8mv reference voltage and a voltage follower to isolate it from the negative input of the second OpAmp in the LT1078. I use the second OpAmp in the LT1078 as the amplifier.
Using this trial and error method to figure this out seems amazingly wrong to me... In the past I've always been able to look at the spec sheets and figure out what components will work best. But these OpAmps are making me feel like an idiot.
Here is my question...
What am I missing in the Spec Sheets that accounts for the differences I am seeing?
I'm not looking for a detailed description, just a little help, in letting me know what data in the spec sheets I need to apply to the non-inverting formula VO = VI x ( 1 + ( R2 / R1 ) ), to maybe account for the radical differences I am seeing...
Thanks for any insight...