# Comparator with hysteresis equations

I'm trying to be sure I'm computing the values for this circuit right. Here's an example of the circuit I'm trying to build (it's going in a 12V DC system so I filled that in already).

I have a textbook from electronics class several years ago (which is where the circuit design came from) and it has these formulas:

$V_{h}=hysteresis~width$

$V_{ut}=upper~threshold~voltage$

$V_{ctr}=center~of~threshold~voltages$

$V_{lt}=lower~threshold~voltage$

$V{ref}=comparator~reference~voltage$

$n=resister~multiplier~for~the~hysteresis~divider$

$V_{h} = V_{ut}-V_{lt}$

$V_{ctr}=\dfrac{V_{ut}+V_{lt}}{2}$

$n=\dfrac{+V_{sat} -(-V_{sat})}{V_{h}}-1$

$V_{ref}=\dfrac{n+1}{n}V_{ctr}$

So according to this if I want the comparator that has Vut = 7v and Vlt = 6v I should have n=11 and Vref=7.09 to match my Vsat+=12V and Vsat-=0V

In ngspice (using a lf411 model from national semiconductor) these values simulate an output that is more like Vut = 7.5, Vlt = 6.5. I even used exact resistor values (R = 10k, nR = 110k) instead of closest-available.

Is this a good circuit to use for my purpose? Should I normally have to tweak these values for real life? I've found that R=10K, nR=75K, Vref=6.5v get me closer to the Vut=7V and Vlt=6V that I wanted, but those values are pretty far off from expected.

-

You should see immediately that the 7.09V can't be right. 7.09V on one end of the resistors and 12V on the other end can never give you 7V on the non-inverting input. Your equation for $V_{REF}$ seems to be wrong.

Here's how I do it. Since the current through the resistors is the same we have

$\begin{cases} \dfrac{V_{SAT+} - V_{UT}}{nR} = \dfrac{V_{UT} - V_{REF}}{R} \\ \\ \dfrac{V_{SAT-} - V_{LT}}{nR} = \dfrac{V_{LT} - V_{REF}}{R} \end{cases}$

Filling in the parameters and eliminating R:

$\begin{cases} \dfrac{12V - 7V}{n} = 7V - V_{REF} \\ \\ \dfrac{0V - 6V}{n} = 6V - V_{REF} \end{cases}$

From the second equation:

$V_{REF} = \dfrac{n + 1}{n} 6V$

Replacing $V_{REF}$ in the other equation:

$\dfrac{12V - 7V}{n} = 7V - \dfrac{n + 1}{n} 6V$

We find $n =11$, that's also the value you found. But my $V_{REF}$ is different:

$V_{REF} = \dfrac{n + 1}{n} 6V = 6.55V$

This is OK for a theoretical calculation, but in practice you may have a problem: do you have a 6.55V source? The typical way to solve this is to get a reference voltage via a resistor divider from your 12V power supply, and then you get this circuit:

We still have 2 equations, but three unknowns, so we can choose 1. Let's pick a 30k$\Omega$ for R3. Then, applying KCL:

$\begin{cases} \dfrac{12V - V_{UT}}{R1} + \dfrac{V_{SAT+} - V_{UT}}{R3} = \dfrac{V_{UT}}{R2} \\ \\ \dfrac{12V - V_{LT}}{R1} + \dfrac{V_{SAT-} - V_{LT}}{R3} = \dfrac{V_{LT}}{R2} \end{cases}$

Filling in our parameters:

$\begin{cases} \dfrac{12V - 7V}{R1} + \dfrac{12V - 7V}{30k\Omega} = \dfrac{7V}{R2} \\ \\ \dfrac{12V - 6V}{R1} + \dfrac{0V - 6V}{30k\Omega} = \dfrac{6V}{R2} \end{cases}$

That's

$\begin{cases} \dfrac{5V}{R1} + \dfrac{5V}{30k\Omega} = \dfrac{7V}{R2} \\ \\ \dfrac{6V}{R1} - \dfrac{6V}{30k\Omega} = \dfrac{6V}{R2} \end{cases}$

From which we find

$\begin{cases} R1 = 5k\Omega \\ R2 = 6k\Omega \end{cases}$

-
Ha! CircuitLab! Link –  clabacchio Jun 8 '12 at 9:36
The calculations are correct but the OP's assumptions about Vsats of 0V & 12V won't hold for the LF411! –  MikeJ-UK Jun 8 '12 at 15:41
@Mike - True! But his problems started already before the simulator: his equation for Vref from his textbook is wrong. –  stevenvh Jun 8 '12 at 15:51
Your second circuit worked wonders for me! Thanks! Sometimes I have a little bit of a hard time following the formulas though, and I couldn't figure out where the equation Vref=((n+1)/n)6V came from. It's labeled "from the second equation" but I'm still not seeing it. Sorry I'm a little slow at this after years of being out of it. ;) –  Matthew Jun 8 '12 at 16:07
@Lytithwyn - -6V / n = 6V - Vref, then -6V / n - 6V = -Vref, then 6V x (1/n + 1) = Vref, then 6V x (1/n + n/n) = Vref, then 6V x (1 + n)/n = Vref. Write each step down, and you'll see it's very easy. (Out of it since 25 years ;-)) –  stevenvh Jun 8 '12 at 16:26

Assuming the comparator draw no current on it's input pins, We have

i (from output of comp to Vref) = (Vo-Vref)/(R+nR).


So V+ (+ input comp) :

V+ = (Vo-Vref)*R/(R+nR) + Vref


Which give us :

Vbottom = (Vss - Vref)*(R/(R+nR)) + Vref


and :

Vup = (Vdd - Vref)*(R/(R+nR)) + Vref


Assuming Vss and Vdd are your negative and positive power supply. Then isolate for what you want.

Now, is it a good circuit ? It depends on what you want to do and you would have to think about, in no particular order :

• Is the comparator sufficiently fast for the signal you put in.
• Is Vin a high impedance source ? because there will be some pF of parasitic capacitance to ground on the negative input of the comparator, so it might act as a low pass filter.
• Your comparator is inverting, is this really what you want ? (ie : if Vin > Vup => Vo = Vss)
• Did you provide adequate supply decoupling ?
• Also, if you are abusing an op-amp as a comparator, you should be very careful, for several reason, it will be (in general) quite slow, your op-amp input common mode range might not include the range of Vin, which might cause latch-up, phase reversal and other non-specified behaviors, they might saturate and be slow to recover, etc ..(see http://www.analog.com/library/analogdialogue/archives/37-04/comparator.html for a article about abusing op-amps as comparators)
-
Welcome! You can use the MathJax engine to type Latex formulas, with much better results –  clabacchio Jun 8 '12 at 12:48
"sufficiently fast". Has nothing to do with his calculations. "so it might act as a low pass filter". Idem. "Your comparator is inverting". This is a Schmitt-trigger. "adequate supply decoupling". Has nothing to do with his calculations. And so on. Also you don't verify his n and Vref, you don't finish the calculations. –  Federico Russo Jun 8 '12 at 16:16
I did intend for it to be inverting actually. Slow isn't a problem either...there should be whole minutes between crossings in my application. Thanks for the good questions and the link! –  Matthew Jun 8 '12 at 17:04
@clabacchio Thanks for the tip about MathJaX. I updated the question with pretty equations. –  Matthew Jun 8 '12 at 21:34