ESP Logo
 Elliott Sound Products AN-005 

Zero Crossing Detectors and Comparators

(The Unsung Heroes of Modern Electronics Design)
Rod Elliott (ESP)

App. Note IndexApp. Notes Index
ESP HomeMain Index

Share |


Zero crossing detectors as a group are not a well-understood application, although they are essential elements in a wide range of products. It has probably escaped the notice of readers who have looked at the lighting controller or the Linkwitz Cosine Burst Generator (both are on the ESP website), but these rely on a zero crossing detector for their operation. So too does the ESP Tone Burst Generator project.

A zero crossing detector literally detects the transition of a signal waveform from positive to negative (and vice versa), ideally providing a narrow pulse that coincides exactly with the zero voltage condition. At first glance, this would appear to be an easy enough task, but in fact it is quite complex, especially where high frequencies are involved. In this instance, even 1kHz starts to present a real challenge if extreme accuracy is needed.

The not so humble comparator plays a vital role - without it, most precision zero crossing detectors would not work, and we'd be without digital audio, PWM and a multitude of other applications that are perhaps taken for granted.

If you search the Net for zero crossing detectors, you will see a multitude of circuits suggesting the venerable µA741. The circuits will work, but the 741 is several orders of magnitude too slow to be even remotely usable at frequencies above perhaps 100Hz or so. The slew rate of a µA741 is 0.5V/µs - it's one of the slowest opamps around. In all cases, the 741 should be replaced with something considerably faster, such as an uncompensated LM301 or a 'real' comparator. By comparison, a TL071 opamp has a typical unity gain slew rate of 13V/µs, and even that is slow compared to most comparators (note however, this slew rate is not necessarily achieved open-loop). Expect dedicated comparators to have a slew rate of at least 100V/µs !

The reader may also wish to have a look at the zero crossing detector described in the article about Comparators, which includes a circuit that can perform very well with audio frequencies up to at least 10kHz. It's more complex than the ones shown here, but is also a great deal more versatile. It's easy to get a pulse duty cycle of less than 2% at 1kHz. Similar results can be obtained from some of the other circuits described here, provided a fast enough comparator is used.

The ideal zero crossing detector has infinite gain, and will change its output state at the exact moment the input signal passes through zero. The output state change should be instantaneous.

It goes without saying that the 'ideal' does not exist, and there are many factors that influence the end result. All devices have finite gain (typically around 100dB or more), and that limits the ultimate sensitivity to a change of voltage at the input. The input transistors of a comparator based circuit will never be perfectly matched, so the zero point can be displaced by several (or many) millivolts. All active circuits are subject to speed limitations, and nothing is instant. The output voltage can't change from (say) zero to 5V without some finite speed limit (known as slew rate). There is also the circuit's reaction time (propagation delay) that has to be considered, as that determines how quickly a signal gets from the input to the output. The limitations of real circuits have to be considered during the design process. While reality can be disappointing, that's what we have to live with.

Basic Low Frequency Circuit

Figure 1 shows the zero crossing detector as used for the dimmer ramp generator in Project 62. This circuit has been around (almost) forever, and it does work reasonably well. Although it has almost zero phase inaccuracy, that is largely because the pulse is so broad that any inaccuracy is completely swamped. The comparator function is handled by transistor Q1 - very basic, but adequate for the job.

The circuit is also sensitive to level, and for acceptable performance the AC waveform needs to be of reasonably high amplitude. 12-15V AC is typical. If the voltage is too low, the pulse width will increase. The arrangement shown actually gives better performance than the version shown in Project 62 and elsewhere on the Net. In case you were wondering, R1 is there to ensure that the voltage falls to zero - stray capacitance is sufficient to stop the circuit from working without it.

Figure 1
Figure 1 - Basic 50/60Hz Zero Crossing Detector

The pulse width of this circuit (at 50Hz) is typically around 600µs (0.6ms) which sounds fast enough. The problem is that at 50Hz each half cycle takes only 10ms (8.33ms at 60Hz), so the pulse width is over 5% of the total period. This is why most dimmers can only claim a range of 10%-90% - the zero crossing pulse lasts too long to allow more range.

While this is not a problem with the average dimmer, it is not acceptable for precision applications. For a tone burst generator (either the cosine burst or a 'conventional' tone burst generator), any inaccuracy will cause the switched waveform to contain glitches. The seriousness of this depends on the application.

Precision zero crossing detectors come in a fairly wide range of topologies, some interesting, others not. One of the most common is shown in Project 58, and is commonly used for this application. The exclusive OR (or XOR) gate makes an excellent edge detector, as shown in Figure 2. The risetime of the input signal is critical - if it's too slow, there will be no output. The total risetime must be less than the delay determined by R1 and C1 (nominally 56ns in the circuit shown).

Figure 2
Figure 2 - Exclusive OR Gate Edge Detector

There is no doubt that the circuit shown above is more than capable of excellent results up to quite respectable frequencies. The upper frequency is limited only by the speed of the device used, and a 74HC86 has a propagation delay of only 11ns [ 1 ] and a transition time of 7ns, so operation at 100kHz or above is achievable. The CMOS 4070 can be used, but it has a much greater propagation delay (110ns with a 5V supply) and transition time (100ns with a 5V supply). Timings are 'typical', as shown in datasheets.

The XOR gate is a special case in logic. It will output a '1' only when the inputs are different (i.e. one input must be at logic high (1) and the other at logic low (0v). The resistor and cap form a delay so that when an edge is presented (either rising or falling), the delayed input holds its previous value for a short time. In the example shown, the pulse width is 50ns. The signal is delayed by the propagation time of the device itself (around 11ns), so a small phase error has been introduced. The rise and fall time of the squarewave signal applied was 50ns, and this adds some more phase shift.

Depending on the application, you will need to change the values of R1 and C1. The values shown provide a very narrow pulse (around 50ns), but most circuits don't need to be that fast. The length of the pulse is nominally just the product of the two values (56ns as shown), but that pulse width is too short for some oscilloscopes to display properly. For audio (up to around 10kHz), you can use 10k for R1 and 100pF for C1, giving a pulse width of 1µs.

There is a pattern emerging in this article - the biggest limitation is speed, even for relatively slow signals. Digital logic can operate at very high speeds, and we have well reached the point where the signals can no longer be referred to as '1' and '0' - digital signals are back into the analogue domain, specifically RF technology. PCB tracks become transmission lines, and must often be terminated to prevent serious corruption of the digital waveform.

The next challenge we face is converting the input waveform (we will assume a sinewave or other audio frequency waveform) into sharply defined edges so the XOR can work its magic. Another terribly under-rated building block is the comparator. While opamps can be used for low speed operation (and depending on the application), extreme speed is needed for accurate digitisation of an analogue signal. It may not appear so at first glance, but a zero crossing detector is a special purpose analogue to digital converter (ADC). In some cases, you can use an uncompensated opamp (such as the LM301) as a comparator, but most 'real' comparators are significantly faster. An LM301 was used as a zero crossing detector in Project 143.


The comparator used for a high speed zero crossing detector, a PWM converter or conventional ADC is critical. Low propagation delay and extremely fast operation are not only desirable, they are essential.

Comparators may be the most underrated and under utilised monolithic linear component. This is unfortunate because comparators are one of the most flexible and universally applicable components available. In large measure the lack of recognition is due to the IC opamp, whose versatility allows it to dominate the analog design world. Comparators are frequently perceived as devices that crudely express analog signals in digital form - a 1-bit A/D converter. Strictly speaking, this viewpoint is correct. It is also wastefully constrictive in its outlook. Comparators don't "just compare" in the same way that opamps don't "just amplify". [2]

The above quote from Linear Technology was so perfect that I just had to include it. Comparators are indeed underrated as a building block, and they have two chief requirements ... low input offset and speed. For the application at hand (a zero crossing detector), both of these factors will determine the final accuracy of the circuit. The XOR has been demonstrated to give a precise and repeatable pulse, but its accuracy depends upon the exact time it 'sees' the transition of the AC waveform across zero. This task belongs to the comparator.

Figure 3
Figure 3 - Comparator Zero Crossing Detector

In Figure 3 we see a typical comparator used for this application. The output is a square wave, which is then sent to a circuit such as that in Figure 2. This will create a single pulse for each squarewave transition, and this equates to the zero crossings of the input signal. It is assumed for this application that the input waveform is referenced to zero volts, so swings equally above and below zero. If the input voltage is outside the allowable input voltage of the comparator, it will need to be clamped to ensure the input transistors are not damaged.

Note that many comparators have an open collector output, and the output pin must be connected to a positive supply with a suitable resistor. This is shown in Figure 3, with R2 connected to +Vcc. In most cases, the pull-up resistor (as it's known) can connect to a higher or lower voltage than the comparator's supply, allowing it to act as a level shifter. In some cases, the output can be used to activate a relay, provided the relay current is within the IC's ratings.

Figure 4
Figure 4 - Comparator Timing Error

Figure 4 shows how the comparator can mess with our signal, causing the transition to be displaced in time, thereby causing an error. The significance of the error depends entirely on our expectations - there is no point trying to get an error of less than 10ns for a 50/60Hz lamp dimmer, for example.

The LM339 comparator that was used for the simulation is a basic, comparatively low speed type, and with a quoted response time of 300ns it is much too slow to be usable in this application. This is made a great deal worse by the propagation delay, which (as simulated) is 1.5µs. In general, the lower the power dissipation of a comparator, the slower it will be, although modern IC techniques have overcome this to some extent. Another choice here would be an LM393, which is very similar.

You can see that the zero crossing of the sinewave (shown in green) occurs well before the output (red) transition - the cursor positions are set for the exact zero crossing of each signal. The output transition starts as the input passes through zero, but because of device delays, the output transition is almost 5µs later. Most of this delay is caused by the rather leisurely pace at which the output changes - in this case, about 5µs for the total 7V peak to peak swing. That gives us a slew rate of 1.4V/µs which is useless for anything above 100Hz or so.

One of the critical factors with the comparator is its supply voltage. Ideally, this should be as low as possible, typically with no more than ±5V. The higher the supply voltage, the further the output voltage has to swing to get from maximum negative to maximum positive and vice versa. While a slew rate of 100V/µs may seem high, that may be too slow for an accurate ADC, pulse width modulator or high frequency zero crossing detector.

At 100V/µs and a total supply voltage of 10V (±5V), it will take 0.1µs (100ns) for the output to swing from one extreme to the other. To get that into the realm of what we need, the slew rate would need to be 1kV/µs, giving a 10ns transition time. Working from Figure 3, you can see that even then there is an additional timing error of 5ns - not large, and in reality probably as good as we can expect.

The problem is that the output doesn't even start to change until the input voltage passes through the reference point (usually ground). If there is any delay caused by slew rate limiting ('transition time') and propagation delay, by the time the output voltage passes through zero volts it is already many nanoseconds late. Extremely high slew rates are possible, and Reference 2 has details of a comparator (LT1016) that is faster than a TTL inverter! Very careful board layout and attention to bypassing is essential at such speeds, or the performance will be worse than woeful.

While zero crossing detectors intended for mains (120V, 60Hz/ 230V, 50Hz) phase control are fairly straightforward, once you are working with higher frequencies (including audio), the requirement for high speed becomes an imperative. Naturally, any significant speed increase also means a more expensive part, and much greater care is needed when laying out a PCB than needed for more pedestrian comparators.

Using A Differential Line Receiver

This version is contributed by John Rowland [ 3 ] and is a very clever use of an existing IC for a completely new purpose. The DS3486 is a quad RS-422/ RS-423 differential line receiver. Although it only operates from a single 5V supply, the IC can accept an input signal of up to ±25V without damage. It is also fairly fast, with a typical quoted propagation time of 19ns and internal hysteresis of 140mV.

Figure 5
Figure 5 - Basic Zero Crossing Detector Using DS3486

The general scheme is shown in Figure 5. Two of the comparators in the IC are used - one detects when the input voltage is positive and the other detects negative (with respect to earth/ ground). The NOR gate can only produce an output during the brief period when both comparator outputs are low (i.e. close to earth potential). However, tests show that the two differential receiver channels do not switch at exactly 0.00V. With a typical DS3486 device, the positive detector switches at about 0.015V and the negative detector switches at approximately -0.010V. This results in an asymmetrical dead band of 25mV around 0V. Adding resistors as shown in Figure 6 allows the dead band to be made smaller, and (perhaps more importantly for some applications), it can be made to be symmetrical.

Figure 6
Figure 6 - Modified Zero Crossing Detector To Obtain True 0V Detection

Although fixed resistors are shown, it will generally be necessary to use trimpots. This allows for the variations between individual comparators - even within the same package. This is necessary because the DS3486 is only specified to switch with voltages no greater than ±200mV. The typical voltage is specified to be 70mV (exactly half the hysteresis voltage), but this is not a guaranteed parameter.

Indeed, John Rowland (the original designer of the circuit) told me that only the National Semiconductor devices actually worked in the circuit - supposedly identical ICs from other manufacturers refused to function. I quote ...

We did some testing with 'equivalent' parts made by other manufacturers, and found very different behavior in the near-zero region. Some parts have lots of hysteresis, some have none, detection thresholds vary from device to device, and in fact even in a quad part like the DS3486 they are different from channel to channel within the same package. Eventually we settled on the National DS3486 with some added resistors on its input pins as shown in Figure 6. The most recent version of the circuit uses trimpots, 100 ohm on the positive detector and 200 ohm on the negative detector. These values allow us to trim almost every DS3486 to balance the noise threshold in the +/-5mV to +/-15mV range. Occasionally we do get a DS3486 which will not detect in this range. Sometimes, we find that both the positive and negative detectors are tripping on the same side (polarity) of zero, if so we pull that chip and replace it.

The additional resistors allow the detection thresholds to be adjusted to balance the detection region around 0V. The resistor from pin 1 to earth makes the positive detector threshold more positive. The resistor from the input to pin 7 forces the negative detector threshold to become more negative. Typical values are shown for ±25mV detection using National's DS3486 parts. In reality, trimpots are essential to provide in-circuit adjustment.

  1. Quad 2-input EXCLUSIVE-OR gate 74HC/HCT86, Philips Semiconductors Data Sheet
  2. A Seven-Nanosecond Comparator for Single Supply Operation, Linear Technology, Application Note 72, May 98
  3. Differential Line Receivers Function As Analog Zero-Crossing Detectors, John Rowland (reproduced with the author's permission)


App. Note IndexApp. Notes Index
ESP HomeMain Index

Copyright Notice.This article, including but not limited to all text and diagrams, is the intellectual property of Rod Elliott, and is Copyright © 2004 & 2011. Reproduction or re-publication by any means whatsoever, whether electronic, mechanical or electro-mechanical, is strictly prohibited under International Copyright laws. The author (Rod Elliott) grants the reader the right to use this information for personal use only, and further allows that one (1) copy may be made for reference while constructing the project. Commercial use is prohibited without express written authorisation from Rod Elliott.
Page Created and Copyright © Rod Elliott 20 Jun 2005./ 08 Jan 2011 - added DS3486 detector.