I'm looking for a circuit that creates a precision amplitude square wave of 600kHz (50% duty cycle). The amplitude of the square wave needs to be 3Vpk-pk +/-10mV, but can be DC offset. The output of the circuit must be able to supply 100mA. The whole circuit is powered from a single sided 5-6VDC supply. The circuit is for a small sensor and would like to have consistency between them (i.e. 3Vpk-pk +/-10mV amplitude on each board).

My initial idea was

  • generate a 3V precision power rail.
  • Use a 555 timer circuit to generate the base square wave at 600kHz
  • Feed the raw 600kHz square wave into a unity buffer rail-to-rail op amp circuit which has power rails of 0V and the precision 3V rail.
  • The output should be a buffered square wave signal with 3Vpk-pk amplitude. My concern is that the rail-to-rail op amps still have some voltage drop between the supply rail voltage and the output voltage when it is at the rails and it could vary between boards/chips (I need consistency between multiple boards).

My second thought was to use a voltage limiting circuit (with 5V supply) and set the voltage limit levels to 1V (from precision reference) and 4V (from precision reference). Feed the 5Vpk-pk 600kHz square wave oscillator signal from the 555 timer into the voltage limiting circuit to get the 3Vpk-pk output at 600kHz.

Does anyone have any other thoughts or issue with these approaches, or perhaps better ideas for circuits to consider.

  • \$\begingroup\$ Welcome. How stable does this have to be? A CMOS TLC555 can generate this with ease, but hours of thermal drift could change the frequency by several percent. Also, how close to exact 50% duty cycle do you need? \$\endgroup\$
    – user105652
    Jul 29, 2020 at 2:02
  • \$\begingroup\$ You say it must supply 100mA. What is the minimum load current? It's easier to stabilise something drawing 100mA than something drawing anywhere between 0 and 100mA. \$\endgroup\$
    – user16324
    Jul 29, 2020 at 13:51
  • \$\begingroup\$ What is the load? is it a resistor? If so, what is its value? \$\endgroup\$
    – bobflux
    May 21, 2021 at 17:15

3 Answers 3


Maybe a fast gate driver IC driving push-pull MOS n/p channel discrete transistors powered by the 3V rail. You need < 100 milliohm output resistance to get less change than 10mV with a 100mA load.

Note: It won’t take much inductance at 600kHz to ruin that low resistance. About 30nH, about the inductance of 1” of wire,

So I’m not sure how practical it is to achieve that goal.

It’s also a bit high frequency for a 555, though some CMOS versions can do it.


Rather than rely on the accuracy of power supply rails, or the repeatability of the headroom requirements for a component, I would take a different approach.

With power rails of +/-8 to 10 V, precision opamps with 0.1% resistors can produce a very accurate 3 V waveform. With the higher power supply voltages, the output stage is nowhere near running out of headroom and affecting the output signal amplitude.

The circuit would need a voltage reference with a total error budget of less than 0.3%, including initial value, ageing, and temperature.


You can set Gate Driver ICs with 1 ohm output resistance. That, at 0.1 amp, will be 100 millivolt error.

Otherwise, you need to use HUGE MOSFETS, or power opamps.

Or opamps with buffer outputs. OPA633 comes to mine.

  • \$\begingroup\$ Not sure what you mean by HUGE. There are tons of low voltage, medium current power MOSFETs with on resistances at or below 10 milliohm. \$\endgroup\$
    – AnalogKid
    May 21, 2021 at 21:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.