# Level shifting

Discussion in 'Electronic Design' started by Henry, Oct 13, 2003.

1. ### HenryGuest

Do anyone know the simplest way to convert range (-1.6V to 3.4V) to
the range 0-3.3V by using Op-Amp?

2. ### Jeroen VriesmanGuest

just to try the new PyAscii just posted, running on a unix box, it works!
Thanks Gary Richardson.

Vcc
|
\
/
\
|
|
| + |\
Vin ----/\/\-----------| \
| >-----|------- Vout
|------| / |
| - |/ |
| |
| |
| |
-------/\/\-----|
|
|
\
/
\
|
Gnd

3. ### Walter HarleyGuest

Why use an opamp? You don't need any gain, so a simple passive summing
network will do fine. Assuming zero source impedance and infinite load
impedance, this should work:

___ ___
IN --|___|-o-|___|-- +3.106V
|
1.7k | 3.3k
|
|
OUT

The 1.7k and 3.3k resistors achieve the scaling from 5V to 3.3V range. The
3.106V value comes from fixing Vi at -1.6V, Vo at 0V, and solving for the
current through the two resistors, Vi / 1.7k = - Vx / 3.3k.

Of course, if you don't have a handy 3.106V supply around, you could be a
little more clever - note that the parallel combination of the 15.94k
resistor and the 4.16k resistor is still equal to 3.3k:

___ ___
IN --|___|-o-|___|-- +15V
| 15.94k
1.7k |
| ___
o-|___|-- GND
| 4.16k
|
OUT

And if you have nonzero input impedance, you could correct for it by
changing the input resistor, or just by scaling all the resistors to be in
some reasonable range.

-walter

yes.

5. ### JeffMGuest

Did you mean convert range (-1.6V to 3.4V) to
the range 0 to +3.3V by using Op-Amp?

6. ### Robert MonsenGuest

This is a good cheap solution if you know the impedance of the source and
load. Using a pot this way can also work. However, if you want the circuit
to be relatively independent of the impedance of source and load, an opamp
is the way to go...

Take a look at
http://home.comcast.net/~rcmonsen/levelchange/levelchange.html for a way to
do this with an opamp, which gives large impedance on input, and small
impedance on output.

Regards,
Bob Monsen