Microcontroller Op-Amp circuit for Piezo


I am trying to amplify the signal from an STM32H7 using a circuit I found to power a piezo transducer. The piezo will expand depending on the signal supplied by the STM32 and should be able to receive a peak voltage of 100V. However, I simulated the circuit in LTspice and didn't read a P.D. greater than 5V. My experience with LTspice and op-amps is limited, so I am likely making a blatant mistake. Can anyone see where I am going wrong?


The op amps should have an explicit power supply, often bipolar.

Here is an example of an LTSpice op amp simulation circuit, with single ended supply and a 2.5V offset (V2 source is not used).


That said, this generic simulation works as expected:

Expecting that an opamp with a supply voltage that's typically in the range of 3.3V to 36V will magically yield a 100V signal :wink:
I'm sure high voltage opamps exist, but they're not very common and I think it makes more sense to go with either a transistor based linear amplifier or perhaps modulate the output of a buck-boost converter.

Clearly not an application for op-amps in any way, shape or form. :roll_eyes:

The absolutely critical missing information would be the purpose of this project.

We could continue to discuss op-amps but it is 100% irrelevant. :crazy_face:

Huh? Its easy to attenuate a high voltage input into an opamp, or even just route direct to virtual ground...

Of course. But when we translate the OP, it is not what he is desiring at all. :woozy_face:

Read it again.

Hey all,

Thanks for your help and replies. To add a bit of context, I am using the piezo transducers to drive an XYZ nanopositioning stage for an Atomic Force Microsscope. So ideally they will be driven at high voltage and with low noise. Also, I was hoping to find a driver for the Z piezo which can handle high frequencies (200kHz to 400kHz) as the probe of the microscope oscilaltes at roughly 300kHz.

I have actually used buck converters in the past, but only for 3.3V to 5V conversion. I clearly see why amplifying 5V to 100V is ambitious using opamps, but how much noise would these alternatives introduce? My plan was to use something high precision like the OPA2227 as these piezos must be controlled down to fractions of a micrometer. I also read somewhere that an inductor in series with the driven piezo boosts voltage because their impedances are in antiphase or something like that.

So what type of boost circuit would be the best bet?

Best regards,

Xephlon: You need 100V HV voltage source, some driving element like NPN-PNP transistor pair (High Voltage too) and feedback circuit, dividing the voltage from piezo to 0...5 V range.
So op-amp will be used to compare input voltage with feedback and give current for driving transistor.

... but Vout precision on 400+ kHz (if you have a 300kHz vibration, the position must be updated much faster ) may be a challenge.
Another approach - make piezo uncontrollably vibrate from simple charge-discharge voltage cycle and only ADC voltage on piezo at desired time moments and make from that a conclusion about piezo position.

So are you saying I would need a flyback transformer with 100V output? I haven't seen any similar designs which use that method of amplification where 100V source is required. I found this stun gun design which seems to be what you are referring to, but using an NPN transistor only. Dan Berard who made a similar microscope only used a +/-15V source for his microscope as seen in the below image, but perhaps the range of movement for his microscope was significantly smaller.

As for Z-piezo oscillation, using a simple charge-discharge circuit to oscillate the probe is not an option as every probe has a different resonant frequency and hence the oscillation frequency must be variable. With an ARM Cortex-M7 running at 270MHz or even 600MHz, I would be surprised if it was unable to take measurements at least at the rate of 600kHz, if not 1MHz.

Well, context makes all the difference.

As I said, this clearly was the "XY problem" - with bells on! :astonished:

As I do not know what a STM32H7 is, I can only presume you have determined it has a true ADC with the appropriate resolution as you could not use PWM for such a project. You want an appropriate high voltage amplifier, though you need virtually no significant power output from it. It will require control feedback, you may not even need a push-pull output stage.

Yes, if you are generating AC. Not relevant to your situation.

Same point. A transformer is used for AC. You appear to want to position the stage, not shake it to pieces!

Sorry for the initial lack of context. So would a boost converter be suitable? It shouldn't be too hard to implement so long as it is effective for this purpose.

I think you'll end up with a boost converter to make 100V, which you'd then have to filter to get a clean DC, which in turn you could modulate as desired. I assume those piezos don't require a lot of drive power, so something similar to a HV nixie tube power supply (beefed up a little bit perhaps) might work for the 100V source. Then modulate it with something like a mosfet; if you cannot PWM this, you'd have to run it in its linear region and make sure ample cooling is implemented.

A boost converter will generate sufficient voltage, but you will need a proper driver (amplifier) circuit to control the voltage to what you want at any given time. You need to explain just how steady or how variable the voltage needs to be over time.

What inductor value am I looking at for this sort of gain output? Also, am I able to just regulate the boost converter's MOSFET with PWM from my microcontroller? Otherwise, would an opamp work?

I likely want the voltage to oscillate as a saw wave to the X and Z PZTs and just increase over time to the Y PZT. The X-transducer will be scanning the sample by moving back and forward at roughly 4Hz and the Y-transducer will move the sample down throughout the scan. However, the Z-piezo may need to oscillate much faster at roughly 300kHz. If this is not feasible then there are other methods I can follow, but my microcontroller can handle the PWM speed and I have seen high-speed piezo controllers around.

Why not boost the output of the amps directly using transformers? No need for anything else to be high voltage then. Or does this need to be DC-coupled?

If so a clean HV power supply and voltage gain stage is needed - this can all be driven from a low voltage opamp to provide the gain and feedback

Hey guys. I think I have finally figured out what I'll do. I found out I needed 2 isolated 5V lines, so after much turmoil I found a Fly-buck circuit using a coupled inductor to make two lines. Also, it accepts 24V, so I will - relatively easily - be able to boost that to 100V with a boost converter. Thank you all for your help in getting me to this final solution. If there are any issues with it though, please let me know.

Best regards