# How can I generate positive and negative square wave with frequency of 1MHz?

I am planning to generate a square wave with positive and negative voltage, so basically, I create a 1MHz square wave from a microcontroller and send the output to a circuit which will convert the 0-5V square wave voltage to +20V and -20V square wave.

I have successfully created a circuit using BJT transistor but it only worked on frequencies below 100KHz.

Here's the circuit:

The voltage in the circuit is 12V/-12V, but it will do 20V/-20V.

Is there any way I can create the square wave with the specifications above?

• What Zo or load current. capacitance make a big difference on Tr. Apr 8, 2017 at 16:15
• Either you're showing the wrong voltages or you don't mean what you write in "+20V and -20V"
– pipe
Apr 8, 2017 at 16:25
• @pipe the circuit above also works on 20V and -20V, the voltage on the circuit above is example. the problem is just the frequency. Apr 8, 2017 at 16:50
• so, this is an example circuit, so why don't you make the voltages in the circuit match your text to avoid confusion? Kinda strange... Apr 8, 2017 at 18:38
• @MarcusMüller indeed, its an example circuit, i have tried to implement it though and it worked. just don't have time to edit the voltage Apr 8, 2017 at 21:36

Here is a published design 2009 for a 1MHz Piezo driver (sine wave) Square wave will be more efficient using power MESFETs

This is how Keithley designed their 50 Ohm generator output for +/-20 linear multi function generator. You can modify V+/- and Re to reduce to 10 mOhm open or lower with negative feedback and low gain.

But if you are driving a motor or inductive load for PWM then very low ESR supply decoupling and full MOSFET bridge is needed.

But if just small current then adjust your design to make sure base current = 10% of load current with extra driver and add 1 Ohm Rs or ESR to output to avoid capacitive load resonance on emitter followers depending on cable capacitance which limits current and rise time or matched source<>load impedance is best at loss of 50% efficiency e.g. 50 to 200 Ohms range for cables.

# Side info

My Doctor( who has 5 certs) says it works at low level by gently damaging the tissue to stimulate the bodies immune system for healing.

UltralievePro It also has PIC processor for 5 10 min timer and 3 power levels.

Reverse engineer it and make it better with added functions like a count down LED bar graph timer and buzzer when done , because it is almost no sensation.

# New input

Use 15V supply and step up transformer with MOSFET bridge similar to this architecture to a) avoid DC in RF transformer toroid and match source impedance to load. Do the math.

You can consider CMOS 15V logic driver with astable Schmitt trigger and shoot-thru avoidance Diode/R Nch & Pch drive or IC with better low impedance drive. Ciss*RdsOn of gate drive is important.

100% AM modulation ON/OFF is also important feature at low frequency ( 30Hz~60Hz?) for therapy. The test for operation is waterdrops for standing waves on thin metal floating surface. (epoxy mounted) Also do the PIC user interface. (masters? I would expect undergrad for this....

Plan on 20~30 Watts and have 3 power levels.

Examine ultralow ESR caps and do impedance load regulation calculations. You may need several caps since a square wave spans many decades.(f)

Do not copy above 5V design but use as starting point.

simulate this circuit – Schematic created using CircuitLab

Added Sig gen for giggles and kicks.

• First of all thank you, Wow the circuit looks pretty complicated though, im using the 1MHz wave to trigger an ultrasonic transducer, so i guess high current isn't really needed. Apr 8, 2017 at 16:23
• check Piezo capacitance, current is higher than you think. Just use a MOSFET bridge half or full for twice using single supply. Ic=C*dV/dt !! Apr 8, 2017 at 16:24
• oh i see, i haven't checked about the piezo stuffs, then i guess my problem gets bigger here. But still i guess it'd take pretty long time to implement the circuit above though. thank you so much btw Apr 8, 2017 at 16:27
• gratuities including coffee and blueberry muffins accepted No problem for right size bridge, consider Amp rating >5x load current. or RdsOn <<5% of Zc at 0.3/Tr rise time. (1/2pifC) Apr 8, 2017 at 16:33
• Sure :), im new in this forum, just created the account today. once again thank you for your answer Apr 8, 2017 at 16:35

If your transducer is a pretty ordinary piezo device then you don't need to supply it with +/-20V; a square wave of 40 Vp-p should be just fine. However, if you are unsure, then couple the output of the circuit below with an appropriately sized capacitor (a few micro farads is probably enough).

I'd be thinking about one of these just as a driver (and not part of a buck converter mentioned in the title): -

You'll have to choose MOSFETs but the LTC4444 is a pretty good driver for generating power square waves. It has sub-10 ns rise and fall times and shoot-through protection is built in. PWM inputs (aka your 1 MHz square wave) is TTL level so will work with all suitable 3.3 V and 5 V logic that generates the square wave.

As for generating the square wave, a simple relaxation oscillator built around a fast schmitt trigger will do the job (Tony shows one in his answer). Or if you want to control the amplitude of the power fed to the transducer you can vary the mark space ratio to TINP/BINP. You could use an LTC6992 for that: -

• what about the negative voltage sir? from what i can see on your figure the voltage is positive only, since i need a square (positive and negative) wave Apr 8, 2017 at 18:10
• You just use a capacitor in series with the load to generate equal positive and negative voltages but, because your load is a piezo there's a very good change that the impedance it presents is purely capacitance and therefore the DC standing voltage on it is immaterial. Some piezos may be affected by the standing voltage of course so read its data sheet or better still, post it here. Apr 8, 2017 at 18:14
• Looks good except he needs about 20~30VA to replicate consumer cheap 1MHz drivers for piezo units. Apr 8, 2017 at 18:54
• @TonyStewart.EEsince'75 adjusting the supply voltage is quite easy to do and there is always the option of varying the MS ratio. Apr 8, 2017 at 18:56
• Looks like a good starting point except bemindful of $P (_{C_{LOAD~~}~~~)} ~~= ~~2(C_{LOAD} )~~(f_{_IN} ~~)(V_{cc})^2$ as per datasheet where C is large and f=1e6 Apr 8, 2017 at 19:07

Looking into the base of Q1, I see enormous Cmiller (10pF * 100X) or even higher.

During turnoff, the voltage gain of Q1 will be 24 volts / 0.026 ~~ 9,000x.

Cin will be 9,000x * 10pf (if not 20pF) === 90,000 pF.

Yet the discharge R is 1Kohm. You have a very slow turnoff TAU on Q1.

• also mention small power 1MHz Piezo's are ~100 nF capacitive load Apr 8, 2017 at 19:27
• yes you are probably right sir, i guess something has to do with the calculations of the transistors above. Apr 8, 2017 at 21:38

BJT transistors seem to get affected by circuit capacitors for frequencies over 100 kHz. See discussions on edaboard.

Some have noticed PNP are also slower than NPN. From your circuit, you have PNP for your negative voltage. Can you design a circuit for NPN only, something like MJE4343? It's good for 1 MHz application. Or find one at digikey website, allows sorting transistors based on transition frequencies.

For higher power application, there's an item sold on ebay for "large signal applications up to 500 MHz": SD2903 RF POWER TRANSISTOR.

A 741 op-amp can also generate pulses with negative voltage for lower half of wave, but that would require feeding it with an already generated negative voltage on pin 4, possibly from a circuit like the below negative voltage generator: