Driving piezo buzzer as push-pull without tone2 library?

Hi All, I did some research around but somehow I cannot find definite answer to my problem, can you please take a look at the challenge and point in right direction.
I have 328p configured to run on 1Mhz clock speed, and a piezo beeper directly on a pin.
I can drive piezo by hardware PWM on that pin and all works well, I cannot use tone or tone2 libraries because those are obviously software based and due to slow clock speed there is some kind of interrupt interference sol beep comes out distorted, which is a known issue, and there is nothing really to do about it, I tried different pins, different optimization, nope. Only hardware PWM provides a crisp consistent tone that I need.
I want to to be able to drive piezo twice louder by implementing some kind of hardware push-pull, I cannot find reasonable circuit to try, can you please suggest a known working circuit to try?

I'm not clear what "tone2" refers to but if it isn't the toneAC or toneAC2 library, you might want to give those a try.

https://bitbucket.org/teckel12/arduino-toneac/wiki/Home

You can try driving it with a higher voltage. You would need to use a mosfet to drive it. You need to know just how much voltage the piezo can handle. It's typical to place the piezo across a resistor to keep from applying dc to the device.

Check out this post Buzzer Driver Circuit - Electrical Engineering Stack Exchange

The second schematic (shown using 3.3V) is the type of circuit that I commonly use. Where I work we use 13V to supply the buzzer, but many piezo's can't handle that.

I'm not sure that such a slow clock is going to provide a very good tone, but if louder is all you need try a higher voltage.

MrMark:
I'm not clear what "tone2" refers to but if it isn't the toneAC or toneAC2 library, you might want to give those a try.

teckel12 / Arduino toneAC / wiki / Home — Bitbucket
GitHub - teckel12/arduino-toneac: Enhanced version of the standard tone library

Sorry, yes, that's what I means, ToneAC, I think its copy that I downloaded from somewhere was called Tone2 or some other reason but ToneAC does not work in my case, as it still uses interrupt and distorts the tone.

amdkt7:
You can try driving it with a higher voltage. You would need to use a mosfet to drive it. You need to know just how much voltage the piezo can handle. It's typical to place the piezo across a resistor to keep from applying dc to the device.

Check out this post Buzzer Driver Circuit - Electrical Engineering Stack Exchange

The second schematic (shown using 3.3V) is the type of circuit that I commonly use. Where I work we use 13V to supply the buzzer, but many piezo's can't handle that.

I'm not sure that such a slow clock is going to provide a very good tone, but if louder is all you need try a higher voltage.

Thank you, that will definitely get it louder, and that is my PlanB, I was looking at still using 3.3V and push-pull if possible.

You can use two output pins to drive it directly. Maybe you should have a small resistor in series (say 200 ohms) to limit current.

One pin will be high while the other pin is low, and then the pins reverse, do that fast enough you will get a tone out of it. Bit banging is the only way I know to do it, but there might be a library that handles a two pin output.