Generally DAC output will be from 0V to Vref, and to get bipolar output we typically use this circuit that convert [0:Vref] -> [-Vref: Vref], with Rf = Ri.
But what else can this circuit do if we are able to tweak Rf, Ri? Can it gives Vo > Vref?
There are few ways to get the transfer function of this circuit block, namely:
- circuit simulation - overkilled for such a simply circuit - don't you think so?
- algebra manipulation - going to be tough for those not doing it for a while
- graphical analysis base on circuit inspection - quick and intuitive - my personal favourite
in this example, I'm going to shows you alternative #2, and #3, have a nice read-up!
The algebra way:
Vo = Vdac + i * Rf
Vo = Vdac + [(Vdac-Vref)/Ri] * Rf
Vo = Vdac*(1+Rf/Ri) - Vref*(Rf/Ri)
but it is time consuming to write Rf/Ri, let's just replace it by α
Vo = Vdac*(1+α) - Vref*α
but Vdac is a function of Vref, let Vdac = β*Vref, where 0<= β<=1
Vo = β*Vref*(1+α) - Vref*α
Vo = Vref* [β + α*β - α]
α = Rf/Ri
β = dacData/dacFullResolution
it is always good idea to drop in some number to verify nothings goes wrong in the algebra derivation, let's do it now
let α = Rf/Ri = 1
Vo = Vref* [2β - 1]
β = 0: Vo = -Vref
β = 1: Vo = Vref
which is expected
Now that we have the final equation, we can inspect the equation as ratio of Rf/Ri changes:
Rf/Ri = 0:
- Vo = Vref*β
Rf/Ri = infinity:
- from Vo = Vref* [β + α*β - α]
- when β = 0 (Vdac = 0): Vo = negative infinity
- when β = 1 (Vdac = Vref): Vo = Vref
from general equation of y = m*x + c, this circuit configuration allows us to configure maximum m = +1 @ c = 0, minimum m = negative infinity @ c = negative infinity, and max Vout = Vref.
For example, you are not getting more that Vo = Vref regardless of what Ri, Rf values you used.
The Graphical Way:
Figuring out what is input, what is output:
- draw out XY axis
- acknowledge that we control dac output directly, hence x-axis is label as Vdac
- Vo is the output of circuit block - we want to know what happen to Vo as Vdac changes - thus Vo as label for y-axis
Draw out the xy boundaries by circuit inspection:
- from circuit inspection - dac output can only varies between 0V to Vref, thus we draw at vertical line at x = Vref.
- from circuit inspection - when Vdac = Vref:
- since inputs of op-amp is essentially the same potential - the inverting input is at Vref,
- there is no voltage drop across Ri, both side of Ri at Vref, thus i=0A, and since there is no voltage drop across Rf, Vo=Vref
- thus draw a horizontal lines at y = Vref
Acknowledge there is essentially one variable to play around - that is, the ratio of Rf/Ri :
- from circuit inspection - consider the case Rf/Ri = 0, it means Ri = open and i=0, and the amp act as voltage follower , Vo = Vdac, from y = m*x + c, this gives m =1, c =0, draw a line that cross point (x,y) = (Vref, Vref), (0,0), this is one of our boundary.
- from circuit inspection - consider the case Rf/Ri = infinity, when Vdac =Vref, Vo = Vref, when Vdac is slightly less than Vref, Vo = negative infinity, draw a vertical lines at x = Vref.
- region bounded by the 2 lines above is the possible circuit function for this circuit configuration. For example, you are not getting more that Vo = Vref regardless of what Ri, Rf values you used.