Saturday, 11 August 2018

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? Would a summing amplifier like the below circuit good enough? With R1 = R2 and V1 = 2.5V, V2 = my signal, V3 = V4 = GND


Summing Amp



Answer




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 \$\times\$1 amplification.


enter image description here


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:


\$ A_V = \dfrac{R3 + R4}{R3} \$


If we have 2.5 V on the Vin input and with R2 = 2 \$\times\$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.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...