I am attempting to drive a 640kHz piezo electric transducer with an FPGA. For some reason, I cannot get a matched signal, and do not know why. I've captured a scope readout where CH1 is IN, CH2 is A, and CH3 is B. Any ideas what might be going on?enter image description here enter image description here

I've also captured a readout when the transducer is NOT attached. Here it is: enter image description here

  • \$\begingroup\$ Singnal CH3 (B) is almost identical to signal CH1 (IN), isn't that a perfect match? \$\endgroup\$ – Marko Buršič Oct 19 '16 at 7:18
  • \$\begingroup\$ What does your input circuit look like? What is your intended waveform? is it square? sine? Are you driving this with an ADC or a gpio? (I'm guessing gpio). What is the amplitude of the input (ie: what voltage)? \$\endgroup\$ – Voltage Spike Dec 21 '16 at 18:48
  • 1
    \$\begingroup\$ Can you tell us which transducer you are using \$\endgroup\$ – RoyC Dec 23 '16 at 21:32
  • \$\begingroup\$ What is your driver circuit? Is the piezo connected only to the FPGA? FPGA alone can't provide enough power for the piezo. I made a project with a piezo once (though in the acoustic spectrum) - one end of the buzzer was connected directly to VCC, the other via a MOSFET to ground. MCU was providing PWM at the resonant frequency and everything worked fine. No extra inductors, no extra capacitors. \$\endgroup\$ – filo Dec 24 '16 at 15:19
  • \$\begingroup\$ Please advise your source impedance and waveform. Then test by FM Sweep envelope with sweep trigger to scope from 100k to 10MHz then zoom in around 640kHz, if you can do log sweep, please do. \$\endgroup\$ – Tony Stewart EE75 Dec 25 '16 at 8:16

I do not understand the inductor L3 or its value. It would only make sense if you were trying to create resonance at 640kHz in which case it is the wrong value.

You should not need to do this however because the transducer will be mechanically resonant at 640kHz. Take the inductor out.

It will be difficult to hit resonance with the output of a FPGA it might be better to use a switched self oscillating circuit as is described here How can i make a ceramic piezo operate at a specific frequency?

  • \$\begingroup\$ yes, we did remove L3, and are now driving the transducer with a DDS chip, that is programmed via FPGA \$\endgroup\$ – jgaro Dec 25 '16 at 12:49

What appears to be going on is your Ch 2 middle trace is actually your output and the LC filter is a low impedance (150 ohm, BandPass filter with a small Q to remove the harmonics and this also shunts the fundamental .

There is also several ( series and parallel ) or resonant and anti-resonant points on Piezo that does not match the filter or input signal, that causes high impedance resonant gain on input waveform with the overshoot pulses. This harmonic nature with crystals is common.

Correction to your question . The "No Load sine wave" is the BPF output "C" on shown Channel 2, and not 3 as suggested.

You must do an FM Sweep with a sine wave to test your Piezo impedance and show input output with 50 Ohms Generator, then give Specs on transducer.

By estimating Bode plots or S11 s21 plots from schematic and simply looking at breakpoints of series , shunt impedance where reactance matches resistant the poles and zeros can be derived and the wave form explained by the Spectral Transformation of a square wave to the recorded waves.

If you wish to change your question with requirements, parts used, and ask how to correct the design, that deserves a different answer.

enter image description here


Piezo tranducers might require up to 5V and 1,5mA current. For a typical hobby Arduino (aka microcontroller ) that is not a problem. We could hook it up directly. For ARM processors there is a current limit its GPIO's can deliver so a driver is required.

I am not aware if an FPGA can deliver that specs but if I were you I would drive it throught a transistor.

edit: I meant a real transistor not from the FPGA.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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