Level shifting a +/- 2.5V signal to 0 - 5V

时间:2021-06-09 06:24:38

Google : Op-Amp Level Shifter

Level shifting a +/- 2.5V signal to 0 - 5V

I have a front end module that generates an (ECG) signal that varies from +/-2.5 V. I want to shift this signal to 0 - 5V. What is the best way to do this?

First thing to try is a simple resistor adder, without opamp.

But it's clear that this won't work here:

a resistor adder always attenuates the signal, and we need a ×1 amplification.

Level shifting a +/- 2.5V signal to 0 - 5V

This is a non-inverting summing amplifier. You would think that we simply have to add 2.5 V, but do you have that? I'm assuming you have 5 V, so let's use that and see where it gets us. If we have -2.5 V on the Vin input the non-inverting input should be zero if you want 0 V out, regardless of the values of R3 and R4. So R1 and R2 form a voltage divider, and R2 should be twice R1 to get the 0 V.

Next we have to find the amplification, which is determined by R3 and R4:

AV = ( R3+R4 ) / R3

If we have 2.5 V on the Vin input and with R2 = 2 ×R1 we get 3.33 V on the non-inverting input of the opamp. To make that 5 V out we have to amplify by 1.5, so R3 must be twice R4.

We could use the following values:

R1 = 10 kΩ
R2 = 20 kΩ
R3 = 20 kΩ
R4 = 10 kΩ

You'll need an RRIO (Rail-to-Rail I/O) opamp if you want to power if from a single 5 V supply.

Here is one way to do it:

Level shifting a +/- 2.5V signal to 0 - 5V

The resistive divider supplies 1.25V to the non-inverting input.

This can be replaced by a dedicated voltage reference if desired. You will need a rail to rail output opamp.

Here is a simulation:

Level shifting a +/- 2.5V signal to 0 - 5V

Note the input impedance is defined by R3, so you may need to increase this (and R2 by the same) or buffer if the source is high impedance.

Also note that the output is inverting.

Here's a non-inverting method for reference also:

Level shifting a +/- 2.5V signal to 0 - 5V

And the simulation (the "to_adc" is the output voltage):

Level shifting a +/- 2.5V signal to 0 - 5V

The above non-inverting circuit is a bit like your summing amplifier.

The summing amp you show has a problem though, the inverting gain resistors shown will not correct for the divider.

It needs (R1 + R2) for the feedback resistor.

So gain equals ((R1 + R2) / R2) + 1.

Here is an example of how it should look (the a and b suffixes are just to keep SPICE happy):

Level shifting a +/- 2.5V signal to 0 - 5V

In the simulation you can see the opamp +IN swings from 0V to 1.25V,

so it needs a gain of 4 to output 0V to 5V.

Since R1c and R1d are in parallel, we get 50k. So (150k / 50k) + 1 = 4.

Level shifting a +/- 2.5V signal to 0 - 5V

I'm curious, how did you size C2?

I didn't actually size it for this particular question, it's a remnant from a previous schematic

I adjusted for this answer (I left it in as it's always a good idea t

o have a small cap across Rf to prevent oscillation, but didn't want to go into more detail in that area)

However, as shown the bandwidth would be 1 / (2pi * C2 * (R1+R2)) -> 1 / (6.28 * 100e-12 * 150e3) = ~10.6kHz.

For an ECG, the bandwidth could be reduced plenty more.

Non-Inverting Op-Amp Level Shifter

A common engineering task is to convert a positive to negative signal into a range suitable for a single supply ADC.

This circuit will convert a +/-5V signal into a 0 to 3.3V signal so that it can be sampled by an ADC on a 3.3V  microprocessor.

Level shifting a +/- 2.5V signal to 0 - 5V

Check out our Op-Amp Resistor-Calculator.


A = (R4/R1) x (R1+R2)/(R3+R4)

If R1= R3, and R2=R4, then

A= (R4/R1)

We want to convert a 10Vpp signal to a 3.3V signal so the gain should be 1/3.  We can choose R4 to be 33K and R1 to be 100K.

Now we need to choose the positive offset such that the signal is centered at 1.6V.

The gain off the offset voltage is:

Aoffset= (R2+R1)/R1 x R3/(R3+R4) = R3/R1.

For the previous resistor values, the gain is 1 since R3=R1, and so we use an offset voltage of 1.6V.

Single-Supply Op Amp Forms Noninverting Level Shifter

Abstract: Single-supply circuitry saves space and cost, but audio and video are usually referenced to ground, which requires two op amps and a negative rail. This circuit, however, uses only one op amp (MAX4380) to level-shift a ground-referenced signal while operating on a single supply voltage.

A similar version of this article appeared in the May 5, 2010 issue of Electronic Design magazine.

As portable battery-operated devices continue to shrink in size while adding functionality, their PCB real estate becomes increasingly valuable. Single-supply circuitry can help by saving space and cost. Adding audio or video, however, can pose a problem because those signals are usually referenced to ground.

Most single-supply ICs must be configured for signals above ground, so it's necessary to shift most audio or video input signals to an appropriate level above ground. For video, you must also preserve the signal polarity. Unfortunately, however, operation on a single supply voltage while preserving signal polarity is impossible with traditional op-amp level shifters, which demand two op amps and a negative rail.

The single op-amp circuit of Figure 1 level shifts a ground-referenced signal while operating on a single supply voltage. The op amp's noninverting summing configuration creates the level-shifted output by summing a reference voltage with the input signal. A standard potentiometer with a bypass capacitor sets the reference voltage in this case, but any voltage reference capable of providing enough bias current for the op amp and summing resistors will suffice.

Level shifting a +/- 2.5V signal to 0 - 5V

Figure 1. This noninverting level shifter operates on a single supply voltage, with one op amp.

This example also includes the 75Ω termination resistors required in a standard video application.

Accordingly, the op amp shown features a small footprint plus the wide bandwidth necessary for video.

Figure 2 shows the circuit in action, shifting a 10MHz ground-referenced input signal (bottom trace, blue) by +1.5V (top trace, orange).

Level shifting a +/- 2.5V signal to 0 - 5V

Figure 2. The Figure 1 circuit shifts this ground-referenced 10MHz signal (bottom trace) by +1.5V (top trace).

Level shifting a +/- 2.5V signal to 0 - 5V

A Single-Ended Op Amp Used as a Level Shifter

Some ideal op amp configurations assume that the feedback resistors exhibit perfect matching.

In practice, resistor non-idealities can affect various circuit parameters such as common mode rejection ratio (CMRR),

harmonic distortion and stability. For instance, as shown in Figure 1, a single-ended amplifier configured

to level-shift a ground-referenced signal to a common mode of 2.5V needs a good CMRR.

Assuming 34dB CMRR and no input signal, this 2.5V level shifter exhibits an output offset of 50mV,

which can even overwhelm the LSB and offset errors of 12-bit ADCs and drivers.

Offset an input voltage of -2.5V - 2.5V to 0V - 5V?

This question already has an answer here:

I have a circuit input which provides a voltage range of negative 2.5 volts to positive 2.5 volts. How do I change this so the output voltage is 0 - 5 volts?

Level shifting a +/- 2.5V signal to 0 - 5V

There are several ways to do this, for instance using an opamp to sum 2.5V to your signal:

Level shifting a +/- 2.5V signal to 0 - 5V

This is an inverting summing amplifier, so for R1=R2=R4, the output would be Vo=−(VAC+VDC)

If you want to keep the phase of the signal, a non-inverting summing amplifier would be like this:

Level shifting a +/- 2.5V signal to 0 - 5V

In this, R3,R4 control the gain of the amplifier, and R1,R2 act as a resistor divider.

Analysing this, we get that the output is

Vo = Vinop * ( (R3+R4) / R3), and from the resistor divider

Vinop = ( Vs1 * R2 + Vs2 * R1 ) / ( R1+R2 )

If we make R2=2 R1 we get Vinop= ( 2Vs1+Vs2 ) / 3.

Substituting this in the first output equation, and making the gain 2/3 by choosing R3=2R4,

then the final output will be the desired Vo=Vs1 + Vs2/2, being Vs1 the -2.5V to 2.5V AC input signal and Vs2=5V in this case.

In page 6 here you can also find a few different examples to offset signals using opamps: