Understanding an ultrasonic piezo driver circuit

[Disclaimer: I'm okay-ish with digital electronics, but somewhat a noob with analog stuff. Since this circuit is a) pretty simple and b) still covers both areas, I was hoping that somebody here could help me clear up a few things].

I came across this circuit for driving an ultrasonic transducer: originally from http://blog.mbedded.ninja/electronics/components/piezos. A similar circuit is also mentioned in https://electronics.stackexchange.com/a/22058/30433.

This fits my application scenario perfectly, but I have a couple of questions:

1. Why isn't there a diode between the LC circuit and the supply rail? Wouldn't the coil put some pretty nasty voltage spikes onto the supply rail, too?

2. As far as I understand, I could just as well use a MOSFET in place of the BJT (as long as it can also deal with the coil's voltage spikes), is that correct? In that case, I can also get rid of R1, correct?

3. The target frequency in my application is in the range of 19 - 21 kHz (slightly variable, the PWM will be adjusted accordingly). Should I try to tune the LC circuit to the center frequency of 20 kHz, or is that a waste of effort?

• Are you certain the piezo doesn't eat the inductive spikes? – K H Sep 13 '18 at 7:37
• Well, no :-) That's why I'm asking... – Florian Echtler Sep 13 '18 at 8:00

• Because the piezoelectric device is a (nonlinear) capacitor from the electrical point of view, therefore prevents the $V_\mathrm{CE}$ of $T_1$ to rise toward infinity. Precisely, during $T_1$ turn-off phase, the voltage $V_\mathrm{L_1}$ tends to rise since the inductor tends to keep its stored magnetic energy by keeping a current flow $I_\mathrm{L_1}$ through its terminal: however, since $L_1$ is connected in parallel to $LS_1$, the piezoelectric device sinks the following current $$I_{LS_1}=\frac{\mathrm{d}(C_\mathrm{LS_1}V_\mathrm{LS_1})}{\mathrm{d}t}=\frac{\mathrm{d}(C_\mathrm{LS_1}V_\mathrm{L_1})}{\mathrm{d}t}$$ The sinked current bounds the rise of the Collector-Emitter voltage $V_\mathrm{CE}$ of $T_1$.
• Yes, you can use a (Logic Level) MOSFET, i.e a MOSFET device which is fully on at $V_\mathrm{GS}=+5\mathrm{V}$. However do not eliminate completely $R_1$: it can be lowered to 1/20 of the actual value, depending on the current driving capability of your gate drive stage, but it must be present in order to limit the inrush current of the MOSFET gate.
• Tuning the circuit lowers the collector current of $T_1$: therefore, its up to you choosing to search the resonance frequency of the BJT load or not. If the power dissipation is not critical, you can avoid the complication of a self tuning circuit (this is not possible if you are driving a piezoelectric actuator): remember that such circuit should include a precision current measuring shunt resistor and the track(s) to measure the voltage across it by the microcontroller.
• @FlorianEchtler: yes, your're right. It is the LC tank made of $L_1C_\mathrm{LS_1}$ that determines the resonant frequency: I forgot to add the word "load" after the word "BJT" (I'll do this). The BJT is important only through its power dissipation capability, thought it also present a (usually very small) collector parasitic capacitance. – Daniele Tampieri Sep 13 '18 at 10:06