Maker Pro
Maker Pro

Simple(?) potmeter + opamp puzzle

R

Richard Rasker

Hi all,

The goal is simple: I want to build a non-inverting opamp circuit with a 10K
linear potmeter (the MAX5389 digital potmeter, to be precise), with a gain
between 1/10 and 10, depending on the potmeter's wiper position. Ideally, I
get 1/10 with the potmeter in the lowest position, 1 (unity gain) in the
middle position, and 10 in the highest position.

Problem: I have no negative supply rail, the input signal is always
positive, and the ground reference is also the opamp's lower supply
voltage, so any inverting stage is out of the question -- which is a bit of
a shame, of course, since that would offer an almost trivially simple
solution.

Of course I can simply build a (roughly) 10x amplifier with a 100K/10K
resistor divider as a negative feedback loop, and feed the + input through
the potmeter in standard volume control configuration (signal fed in the
top, bottom to ground). This, however, has a severe drawback: for unity
gain, the potmeter must already be turned nine-tenths down, and lower gains
are even trickier to set. Also, the opamp itself is always set to the
maximum gain of 10, which isn't optimal from a noise point of view.

I've been toying around with several configurations, but especially the
less-than-unity gain range is presented me with a bit of a challenge. Can
anyone offer a smart solution to this little puzzle?

Thanks in advance,

Best regards,

Richard Rasker
 
Hi all,

The goal is simple: I want to build a non-inverting opamp circuit with a 10K
linear potmeter (the MAX5389 digital potmeter, to be precise), with a gain
between 1/10 and 10, depending on the potmeter's wiper position. Ideally, I
get 1/10 with the potmeter in the lowest position, 1 (unity gain) in the
middle position, and 10 in the highest position.

Problem: I have no negative supply rail, the input signal is always
positive, and the ground reference is also the opamp's lower supply
voltage, so any inverting stage is out of the question -- which is a bit of
a shame, of course, since that would offer an almost trivially simple
solution.

Of course I can simply build a (roughly) 10x amplifier with a 100K/10K
resistor divider as a negative feedback loop, and feed the + input through
the potmeter in standard volume control configuration (signal fed in the
top, bottom to ground). This, however, has a severe drawback: for unity
gain, the potmeter must already be turned nine-tenths down, and lower gains
are even trickier to set. Also, the opamp itself is always set to the
maximum gain of 10, which isn't optimal from a noise point of view.

I've been toying around with several configurations, but especially the
less-than-unity gain range is presented me with a bit of a challenge. Can
anyone offer a smart solution to this little puzzle?

A) A 1:10 divider into a non-inverting amplifier with the pot wiper to the
opamp's (-) input, one end to ground and the other to the output?

B) The pot, connected in the rheostat configuration, in the low leg of a
voltage divider. Set the upper resistor such that it gives a 10:1 divider at
minimum pot value and 1:10 at maximum. Follow that with the non-inverting
amplifier with Rf/Ri=9.

B1)Variation on B), where the pot is wired as a pot to divide the voltage and
the opamp as a non-inverting amp with gain of 10 (Rf/Ri=9).

You really need to know the wiper resistance of the pot and resolution to get
the values right.
 
R

Richard Rasker

A) A 1:10 divider into a non-inverting amplifier with the pot wiper to the
opamp's (-) input, one end to ground and the other to the output?

This would give a gain between 1/10 and infinity (or more precisely: the
opamp's open loop gain) -- but this latter can be fixed with an extra 100R
resistor to ground. This doesn't solve the mentioned drawbacks though:
- With the potmeter halfway, the gain would still be merely at 1/5, not 1.
- Noise-wise, this is still rather bad: first, the input signal is cut back
to 1/10, so in order to get the desired highest 10x gain, the opamp circuit
must now have a 100x maximum gain (hence the 100R resistor I mentioned).
B) The pot, connected in the rheostat configuration, in the low leg of a
voltage divider. Set the upper resistor such that it gives a 10:1 divider
at
minimum pot value and 1:10 at maximum. Follow that with the non-inverting
amplifier with Rf/Ri=9.

B1)Variation on B), where the pot is wired as a pot to divide the voltage
and the opamp as a non-inverting amp with gain of 10 (Rf/Ri=9).

Not a bad idea, but there's still the problem that with the potmeter in
halfway position, the gain is nowhere near unity.
You really need to know the wiper resistance of the pot and resolution to
get the values right.

As I said, the potmeter is the MAX5389, a digital linear potmeter with a 10K
overall resistance, and 256 taps.

Thanks for your effort anyway, and I'll keep your configurations in mind.

Richard Rasker
 
R

Richard Rasker

Michael said:
That would be an interesting pot. Are you planning on having one
custom made? I don't think any of the lstandard log curves come close
to that ratio.

With two inverting opamp stages, a standard linear pot will do the trick
just fine:
_ POT
___ ___ ___ '\__ ___
In o---|___|---|___|---|___|---|_\_|--|___|----o Out
R | R | 1K 10K | 1K |
| |\ | | |\ |
`-|-\ | `-|-\ |
| >--' | >----'
.-|+/ .-|+/
| |/ | |/
=== ===

Pot to the left: gain Out/In = +10x; pot to the right: gain Out/In = +1/10
(OK, 11 and 1/11, but that's not the point). Pot halfway: gain = 1. Exactly
what I need.

My problem is that I have this circuit running on a single +5V supply, and
that I'd like to keep it that way, so I can't use inverting stages.


Richard Rasker
 
This would give a gain between 1/10 and infinity (or more precisely: the
opamp's open loop gain) -- but this latter can be fixed with an extra 100R
resistor to ground.

No, pots, particularly digital ones, have a non-zero wiper resistance.
This doesn't solve the mentioned drawbacks though:
- With the potmeter halfway, the gain would still be merely at 1/5, not 1.
- Noise-wise, this is still rather bad: first, the input signal is cut back
to 1/10, so in order to get the desired highest 10x gain, the opamp circuit
must now have a 100x maximum gain (hence the 100R resistor I mentioned).

Noise is an issue, sure. The midrange issue is there but as you note could
easily be solved. Linearity is an issue.
Not a bad idea, but there's still the problem that with the potmeter in
halfway position, the gain is nowhere near unity.

You want an exponential transfer function with a linear pot. It won't be
easy. ;-)
 
R

Richard Rasker

Jim said:
Never heard of a virtual ground?

Yes I have, and I'm thinking about going down that road -- as inverting
stages make everything so darn easy. But I'm also curious if there are any
neat solution with no inverting stages.

Richard Rasker
 
R

Richard Rasker

Jim said:
I haven't followed your thread closely... is the signal AC only, or is
there a need to handle DC signals?

It has to handle DC signals -- the input signal is always positive -- and I
realize now that virtual ground isn't going to work.

I think I'll create -5V after all, e.g. with a MAX660.

Richard Rasker
 
R

Richard Rasker

Jan said:
It takes next to no parts to generate a low current capable negative
supply.

I know, and I'm rather tempted to simply chuck in a MAX660 and have done
with it.

Richard Rasker
 
R

Richard Rasker

Phil said:
Run the op amp driving a matched NPN diff pair. Op amp output drives
both emitters through a suitable resistor. First transistor has its
base connected to a nice stable 1.2ish volt reference,

OK, this I can follow ...
and resistor from
op amp output to the emitters, feedback from one collector and output
from the other collector into the SJ of a second op amp as a TIA.

.... but this is becoming a bit hazy. I know that TIA stands for
transimpedance amplifier, but what is meant with SJ?
Drive the base of the second transistor with a voltage divider between
the 1.2V reference and the pot. You should be able to get a 1000x range
that way.

Even though I fail to fully envision your circuit's geometry, it does sound
an awful lot like a basic multiplier setup -- is that right?

Anyway, there doesn't appear to be a simple non-inverting solution, so I
think I'll make a -5V supply after all, and go with two subsequent
inverting stages.

Thanks everyone for thinking along and the suggestions you came up with :)

Richard Rasker
 
N

Nico Coesel

Richard Rasker said:
It has to handle DC signals -- the input signal is always positive -- and I
realize now that virtual ground isn't going to work.

I think I'll create -5V after all, e.g. with a MAX660.

Did you think about a multiplying DAC? Since your control is already
digital, this might be another option. This route may also eliminate
all kinds of offset errors from the opamps.
 
R

Richard Rasker

Nico said:
Did you think about a multiplying DAC? Since your control is already
digital, this might be another option. This route may also eliminate
all kinds of offset errors from the opamps.

The digital potmeter is controlled by some simple logic, and there's no
microcontroller in the rest of the setup. Also, accuracy isn't really
important. I can't go into details, but the aim is to pinpoint the
wavelength of a resonance peak in a sort of optical spectrum analyzer,
where the resonance peak can vary wildly in strength and width -- the only
constant is that it's symmetrical. The idea is to increase or decrase the
signal's gain until the peak just intersects a particular level; the
wavelength at which the peak occurs is then found exactly halfway between
these intersection points.
Sure, all this can be done digitally too, but that would involve fast,
accurate A/D-converters and a fair bit of programming. The people I'm
building this for just want simple analog levels, so that's what they get.

Richard Rasker
 
F

Fred Bartoli

Richard Rasker a écrit :
Yes I have, and I'm thinking about going down that road -- as inverting
stages make everything so darn easy. But I'm also curious if there are any
neat solution with no inverting stages.

Richard Rasker

Back from holidays, so I hope it's not too late...

Like that one?

|\
-----------|+\
| >----------+--------
.---|-/ |
| |/ |
| |
| R1 /| |
| ___ /+|-'
+----|___|-+-< |
| | \-|--+---.
.-. | \| | .-.
| | | ___ | | |
R2| | '-|___|-' | |R2
'-' R1 '-'
| ___ |
'--------|___|---------'
A
|
GND


I've not worked out the resistors values but you should be able to do
that :)

And mind the stability issues too.
 
R

Richard Rasker

Fred said:
The goal is simple: I want to build a non-inverting opamp circuit with
a 10K linear potmeter (the MAX5389 digital potmeter, to be precise),
with a gain between 1/10 and 10, depending on the potmeter's wiper
position. Ideally, I get 1/10 with the potmeter in the lowest position,
1 (unity gain) in the middle position, and 10 in the highest position.
Problem: I have no negative supply rail, the input signal is always
positive, and the ground reference is also the opamp's lower supply
voltage, so any inverting stage is out of the question -- which is a
bit of a shame, of course, since that would offer an almost trivially
simple solution.
Of course I can simply build a (roughly) 10x amplifier with a 100K/10K
resistor divider as a negative feedback loop, and feed the + input
through the potmeter in standard volume control configuration (signal
fed in the top, bottom to ground). This, however, has a severe
drawback: for unity gain, the potmeter must already be turned
nine-tenths down, and lower gains are even trickier to set. Also, the
opamp itself is always set to the maximum gain of 10, which isn't
optimal from a noise point of view.
I've been toying around with several configurations, but especially the
less-than-unity gain range is presented me with a bit of a challenge.
Can anyone offer a smart solution to this little puzzle?
Thanks in advance,
Best regards,
Richard Rasker
--http://www.linetec.nl

Dunno if someone already suggested this almost trivial circuit or not-
gain is linear adjust with pot rotation- closed loop operation
throughout- wide range- and noninverting single supply operation all
the way:

Please view in a fixed-width font such as Courier.

.
.
.
.                          |\
.                Vi >------|+\
.                          |  >---.
.                       ---|-/    |
.                      |   |/     |
.                      |       _  |
.                      |       /| |
.                      +----[Rv]--'
.                      |    /
.                      |   Vi
.                      |-  -- x Rv +
.                 +    |   Rs
.                      |
.                Vi   [Rs]
.                      |
.                 -    |
.                     ---
.
.
.
.         Vi produces linear wide range voltage across Rv
.
.         Ground reference this voltage with diff amp:
.
.
.
.
.
.                                                       Vi
.             Vi >-----+----------[R]--+-----[R]--+-->  -- x Rv
.                      |               |          |     Rs
.                      |   |\          |          |
.                      '---|+\         |  |\      |
.                          |  >-.      '--|-\     |
.                       ---|-/  |         |  >----'
.                      |   |/   |      .--|+/
.                      |     _  |      |  |/
.                      |     /| |      |
.                      +--[Rv]--+-[R]--+
.                      |  /            |
.                      |               |
.                     [Rs]            [R]
.                      |               |
.                      |               |
.                     ---             ---
.
.
.
.- Hide quoted text -

- Show quoted text -

If you want exponential adjust then interchange Rs and Rv...

Ah, stuffing a unity-and-higher gain signal in a differential amp with the
input also at the negative input -- another interesting solution that's
actually so simple it's strange that no-one ( including me) came up with it
before. This is definitely one for the records! Thanks!

Richard Rasker
 
R

Richard Rasker

Fred Bartoli said:
Richard Rasker a écrit :

Back from holidays, so I hope it's not too late...

Like that one?

|\
-----------|+\
| >----------+--------
.---|-/ |
| |/ |
| |
| R1 /| |
| ___ /+|-'
+----|___|-+-< |
| | \-|--+---.
.-. | \| | .-.
| | | ___ | | |
R2| | '-|___|-' | |R2
'-' R1 '-'
| ___ |
'--------|___|---------'
A
|
GND


I've not worked out the resistors values but you should be able to do
that :)

.... And we have another prize winner! Sheesh, so there's me, shoving
potmeters around in all the worn-out familiar patterns in opamp circuits,
but never a moment thinking outside the box (or into double loops, like
this one ;-) -- but here people have come up with several very nice and (at
least to me) novel solutions within mere days.
I really love this group :) Thanks!
And mind the stability issues too.

Indeed that could get a bit dicey here. I'm sure to try and build it in the
worst possible configuration (breadboard without ground plane) before
committing it to PCB. Then again, small negative feedback caps solve most
of these problems (except in the case of Jim Thompson's current mirror
solution, which behaves a bit, um, "differently" in this respect).

Cheers,

Richard Rasker
 
Top