Single Supply Op-amp circuit gain - Page 1
Forum section: electronics / beginners

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 08, 2020, 03:37:21 am
content: I am trying to use a MCP6001 op amp circuit to get a gain of ~10 but am having issues. I want to feed a 250 mV, 1 kHz sine wave in and obtain 2.5 volts out. However, I am only able to obtain 1.14 volts out before I start to see clipping on the signal. Is the limited output due to the fact that I have the op amp biased at 1.65 volts?Do I just need to increase the Vcc to 6 volts and call it good? Or is there a way to obtain the 2.5 volts out with a 3.3 volt supply? The output needs to be 0 volts when the input signal is 0 volts.

author: awallin
author_rank: Frequent Contributor
timestamp: March 08, 2020, 06:53:43 am
content: you should specify if your numbers are amplitude or volts-peak-to-peak.for peak-to-peak your numbers seem doable, if the op-amp is "rail-to-rail" so that its output can swing close to GND and +3.3V.since you see clipping, have you checked the op-amp datasheet spec for how close to the rails the output will swing?a higher VCC like 6V will probably improve things.

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 08, 2020, 07:10:11 am
content: The voltage levels I am referring to are AC RMS voltages. The op amp is a rail-to-rail low voltage op amp that can pull to within 25 mV of Vss and Vdd. Therefore I would think I should be able to get 2.5 volts RMS output with a 3.3 volt DC supply.6.0 VDC is the recommended maximum operating voltage recommended by Microchip. 7.0 VDC is the absolute maximum voltage allowed.

author: awallin
author_rank: Frequent Contributor
timestamp: March 08, 2020, 07:29:25 am
content: also check what load you are putting on the output.looks like fig 2-14 in the datasheet shows that the more you load the output, the more clipping you will see:https://ww1.microchip.com/downloads/en/DeviceDoc/21733j.pdfmake sure you have enough decoupling-caps on the VCC pin. a 10uF cap in parallel with the 100nF one in your schematic might be a good idea.

author: iMo
author_rank: Super Contributor
timestamp: March 08, 2020, 07:31:55 am
content: Quote from: rcbuck on March 08, 2020, 07:10:11 amYou should be able to get 2.5V PEAK TO PEAK, not RMS..

author: Nominal Animal
author_rank: Super Contributor
timestamp: March 08, 2020, 07:34:02 am
content: 2.500 VRMSis sqrt(2) × 2.500 V ≃ 3.54V peak. 2.33 VRMS≃ 3.30 V peak.If the opamp is biased to 1.65 V, using a 3.3V supply you have 3.30 V - 1.65 V - 0.025 V ≃ 1.625 V peak headroom; 1.625 Vpeak= 1.625/sqrt(2) VRMS= 1.15 VRMS.It seems to me you're seeing clipping exactly where it should happen; it's only your expectations that are faulty.

author: Zero999
author_rank: Super Contributor
timestamp: March 08, 2020, 07:25:10 pm
content: Yes, it's clipping at exactly the point one would expect it to.There are other things which this circuit which aren't right.R11 and C15 set the lower cut-off frequency to at most 1.6kHz, which doesn't allow much headroom for the 1kHz signal and when the potentiometer is set half way, it will be just over 1kHz, which is probably too low.R11 will load the potentiometer quite a bit, making the response non-linear: is this desirable or is it by accident?The note next to the input says it's 600R, so an input impedance of 500R, when the potentiometer is set to its maximum setting, will load it considerably.I'd advise increasing the values of R10, R11 and R14 by at least factor of 10, to reduce the effects of loading. If a linear response of the potentiometer is required, then increase its value to 100k. The value of C11 can then be reduced if convenient.

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 08, 2020, 08:20:38 pm
content: Nominal Animal, thanks for your comments. They clear up what I am seeing. I now know I should be using the Pk-Pk output value. What I actually want to do is feed the output of the MCP6001 into the ADC of a 3.3 volt STM32. I then want to use the DMA of the STM32 to transfer the signal to the DAC and look at it on the oscilloscope. What I hope to see on the DAC output is roughly the same Pk-Pk value. Should the lower end of R10 connect to ground or to the 1.65 volt reference point? I tried both and it doesn't seem to matter. The output from the MCP6001 is 3.0 V Pk-Pk either way.Zero999, also thanks for your comments. Did you mean R10 and C15 set the lower cut-off frequency? I can increase C15 to 2.2 uF which would solve that problem. I need to cover a frequency range of 300-3000 Hz. I want the signal source to see roughly 600~1000 ohms. So if I leave R10 at 1k, increase R11 to 4.7k, and increase R14 to 47k that would be close enough wouldn't it? I probably should increase R12 and R13 to 10k. The output load is essentially 10k as set by R15. C18 will be feeding the ADC input of the STM32. The connection going to the right of C17 and R15 is feeding another MCP6001 configured as a unity-gain amp with 100k biasing resistors.This is a learning experience to find out more about how the ADC and DAC work on the STM32. At least now I know to use Pk-Pk levels instead of RMS values.

author: Zero999
author_rank: Super Contributor
timestamp: March 08, 2020, 10:27:58 pm
content: The DC voltage on the lower end of R10 makes no difference to the signal. It just needs to be connected to either supply rail, via a low AC impedance.R10 does affect the lower cut-off, but not as much as R11. When R10's wiper is at either extreme it has no affect on the cut-off and when it's half way, its output impedance is equal to half the total value, so the cut-off increases slightly.No, leaving R10 at 1k is no good. Even if the impedance of the inverting op-amp stage is increased to a high enough point where it can be ignored, R10 will still significantly load the 600R source. If R10 is 1k, that's the highest ever input impedance the circuit will ever have.

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 08, 2020, 11:04:06 pm
content: QuoteBut isn't that what I want for the 600 ohm source? My understanding is that maximum power transfer takes place when the source impedance matches the load impedance. A 1k load would be fairly close to 600 ohms.I have a Siglent SDG2042X AWG and a Tektronix TDS2014B scope. If I set the AWG output to 620 ohm and 720 mV Pk-Pk output and load it with a 620 ohm resistor, I measure 732-736 mV Pk-Pk. If I then change the load resistor to 1k ohm, the scope shows 748-752 mV Pk-Pk. I don't want maximum output level from the source, just close impedance matching.

author: Zero999
author_rank: Super Contributor
timestamp: March 09, 2020, 08:57:38 am
content: Quote from: rcbuck on March 08, 2020, 11:04:06 pmYes that's true, but why do you want impedance matching and maximum power transfer? Generally minimum power transfer is desirable with an amplifier, is it's better to load the source as little as possible, that way it can drive other loads and less gain is required from the amplifier.What's the 600 Ohm source? Is it exact? Is it purely resistive?If the source impedance isn't purely resistive, then it will vary with frequency and loading it with a 600R resistor will give an uneven frequency response, which is all the more reason to keep loading to a minimum.

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 09, 2020, 04:35:49 pm
content: The source is the paging output connection from a telephone system. The nominal level out is 250 mV, maximum output level 500 mV. I don't want to risk over driving the ADC on the STM32. That would cause clipping and distortion of the DAC output.Ultimately I will send the ADC output to the Ethernet port for transmission to a remote building. The STM32 in the remote building will receive the transmission and send the signal to the DAC port. I am implementing ADC to DAC transfer on my local board just to see what the levels are and what the signal looks like.

author: Zero999
author_rank: Super Contributor
timestamp: March 09, 2020, 04:45:31 pm
content: I should have guessed it was for a telephone system by the 600R impedance.Yes, then you really do want to load it with 600R. This is because the telephone line might be very long, has an impedance of 600R, thus needs to be matched to avoid reflections. Indeed, I'd say 1k isn't ideal. Add another resistor in parallel to get 600R.RT= (R1-1+R2-1)-1RT= 600RR1 = 1000RR2 = (600-1-1500-1)-1= 1500 = 1k5

author: rcbuck
author_rank: Frequent Contributor
timestamp: March 09, 2020, 05:32:03 pm
content: Thanks for all your help and comments. This will be a fun project and a good learning experience.