Author Topic: Piezo transducer driver  (Read 16112 times)

0 Members and 1 Guest are viewing this topic.

Offline DominiqueTopic starter

  • Newbie
  • Posts: 4
  • Country: fr
Piezo transducer driver
« on: October 17, 2012, 02:36:23 pm »
Hi all!

I am working on a project including an acoustic piezo transducer, controlled from a 3.3V PIC32 microcontroller. In order to meet the sound pressure level requirements, the piezo must be driven by a 20V peak-to-peak square wave.

I am planning to generate complementary 0-3.3V square waves from the PIC, but still looking for a solution to perform the level shifting from 3.3V to 10V. It seems that the standard logic ICs with a supply voltage of 10V or more would not take 3.3V as a logic high input. Or have I missed something?
I could use a dual power MOSFET driver, such as the Microchip TC4427A, but it sounds overkill for this application.

Does anyone have an idea on how to do this, keeping cost and board space use as low as possible?

Thanks in advance for your suggestions,
Dom



 

Offline AndyC_772

  • Super Contributor
  • ***
  • Posts: 4569
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: Piezo transducer driver
« Reply #1 on: October 17, 2012, 03:32:47 pm »
A circuit something like this might work OK (the 10K resistor represents your transducer):



Obviously you'll need to choose component types & values depending on the needs of your application, but the basic topology should be suitable. You might want to drive the gates of the two FETs separately so you can adjust the timing to avoid having both switched on simultaneously.

[edit]: if you need 20v pk-pk you'll need two circuits, one to drive each terminal of the transducer.
« Last Edit: October 17, 2012, 03:34:21 pm by AndyC_772 »
 

Offline hlavac

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: cz
Re: Piezo transducer driver
« Reply #2 on: October 17, 2012, 03:47:03 pm »
Drive a small NPN BJT thru 10k resistor to base, emitor to gnd, with 1k pullup to the 10V in the collector to make a simple inverting level shifter.
Good enough is the enemy of the best.
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16394
  • Country: za
Re: Piezo transducer driver
« Reply #3 on: October 17, 2012, 04:15:14 pm »
Most common method is to use a small transformer, driven from a buffer and with a high turns ratio. Cheap and simple, you make a turns ration of 1:30 and use a H bridge ( 4 discrete transistors or a bridge driver IC) to power it from the 3V3 rail. You need a primary resistance of around 10R at DC to keep it low power, but this will drive most piezo to a very loud level. Transformer might be off the shelf or you will have to DIY with a RM10 core and bobbin ( or similar pot core you can find cheap) and some 40SWG enamelled copper wire. Probably 500 turns on the secondary and 50 as a primary.
 

Offline AndyC_772

  • Super Contributor
  • ***
  • Posts: 4569
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: Piezo transducer driver
« Reply #4 on: October 17, 2012, 04:21:42 pm »
Drive a small NPN BJT thru 10k resistor to base, emitor to gnd, with 1k pullup to the 10V in the collector to make a simple inverting level shifter.
I think you might struggle with this; piezo transducers are capacitive, so they need to be actively charged and discharged. The resistor would have to be quite small and power hungry in order to make it work.

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16394
  • Country: za
Re: Piezo transducer driver
« Reply #5 on: October 17, 2012, 05:50:55 pm »
Another method is to use an inductor in the collector of the transistor instead of the resistor, and make the value such that it resonates with the piezo capacitance to make a LC circuit. Needs you to use a high voltage transistor like a MPSA42, as the collector voltage will be incredibly high. Not a wide frequency range, but is incredibly loud. Used in Sonalerts to make them 110dB plus from a 12V rail.
 

Offline hlavac

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: cz
Re: Piezo transducer driver
« Reply #6 on: October 17, 2012, 09:00:36 pm »
Drive a small NPN BJT thru 10k resistor to base, emitor to gnd, with 1k pullup to the 10V in the collector to make a simple inverting level shifter.
I think you might struggle with this; piezo transducers are capacitive, so they need to be actively charged and discharged. The resistor would have to be quite small and power hungry in order to make it work.

I meant it to be a logic level shifter to feed to a 10V CMOS logic inverter. He was complaining about 3.3V logic not being able to drive 10V logic. Feed it to two inverter chain, so that you have two outputs with opposing polarity, and conenct the piezo in between them. You can even connect multiple inverters in parallel to make it stronger.



You could also make a little charge pump to power the 10V rail from 3.3V.
Good enough is the enemy of the best.
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 14835
  • Country: gb
    • Mike's Electric Stuff
Re: Piezo transducer driver
« Reply #7 on: October 17, 2012, 09:21:07 pm »
Another method is to use an inductor in the collector of the transistor instead of the resistor, and make the value such that it resonates with the piezo capacitance to make a LC circuit. Needs you to use a high voltage transistor like a MPSA42, as the collector voltage will be incredibly high. Not a wide frequency range, but is incredibly loud. Used in Sonalerts to make them 110dB plus from a 12V rail.

This works well, and the inductor value isn't actually that critical - the acoustic resonance of the transducer has the most effect. 10-100 millihenries is the sort of range. You only need the HV transistor if there is a chance the transducer may become disconnected, at which point the voltage can exceed 200V, but with a transistor it is typically 30-40V max.
DCR of the inductor isn't too critical, but can be hard to find small ones with high enough inductance.

Another cheap and small solution is a simple open-loop boost converter and an H-bridge. A PWM peripheral helps but it can be done in software - higher frequency allows a smaller inductor. No cap needed as the sounder acts as a capacitive load. PWM ratio determines volume.



Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline hlavac

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: cz
Re: Piezo transducer driver
« Reply #8 on: October 17, 2012, 11:41:43 pm »
Here is a little circuit that kinda sorta works.
It uses two 3.3V logic pins with opposite phased clocks for charge pump and tone generation, and third for beep enable.
(ignore the resistors they emaulate weak pins)

Wait for the voltage to reach ~10.5V, then enable beeping. The charge pump sucks, as long as it gets loaded it drops voltage fast, i have no idea how to make this ladder design work better ;) Well for a short beep it could be good enough...

I'm starting to think that a little 3:1 transformer driven by two pins would be the simplest solution...
Good enough is the enemy of the best.
 

Offline poptones

  • Frequent Contributor
  • **
  • Posts: 709
  • Country: 00
Re: Piezo transducer driver
« Reply #9 on: October 18, 2012, 12:28:14 am »
Good gravy. Use a 555 powered from 12V. Connect pin 2 to 6, bypass pin 5 with a 10nf cap, drive pin 2,6 with your logic transducer signal and capacitively couple the buffered output from pin 3 to your transducer. You may need a resistor from 5 to ground as well to make sure the window is correct. That's one R (a penny) one 10nf cap (a penny) and a 555 (one nickel).
 

Offline DominiqueTopic starter

  • Newbie
  • Posts: 4
  • Country: fr
Re: Piezo transducer driver
« Reply #10 on: October 18, 2012, 12:01:30 pm »
Well, that's a lot of solutions, thanks guys! I just started to consider the various options and already learned a lot...

In the meantime, trying to find a single chip solution, I came across the CD40109 level shifter:
http://www.digikey.com/product-detail/en/CD40109BPWR/296-12163-1-ND/412005
It's a quad low-to-high level shifter, that in my opinion could do the job if I can connect the stages 2-by-2 in parallel (the output current of a single stage is a bit low). Any problem in doing that?

Here is a little circuit that kinda sorta works.
It uses two 3.3V logic pins with opposite phased clocks for charge pump and tone generation, and third for beep enable.
(ignore the resistors they emaulate weak pins)

Wait for the voltage to reach ~10.5V, then enable beeping. The charge pump sucks, as long as it gets loaded it drops voltage fast, i have no idea how to make this ladder design work better ;) Well for a short beep it could be good enough...

I'm starting to think that a little 3:1 transformer driven by two pins would be the simplest solution...

Haven't been able to look at this circuit yet, the java applet doesn't work on my phone, but it may be really interesting (my power source being a single-cell LiPo battery, and the piezo being the only device requiring more than 3.3V). Otherwise, do you have a reference or a link to the kind of transformer you're thinking about?

Thanks,
Dom
 

Offline hlavac

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: cz
Re: Piezo transducer driver
« Reply #11 on: October 18, 2012, 03:40:08 pm »
Hey, how about one of these RS-232 level shifters? Like MAX232? These can do something like +-15V output, and have built in charge pump for that...

Here is one that runs from 3.3V and is relatively cheap: SP3232EBEY-L

Or this one, it has low power shutdown: SP3224ECA-L.
« Last Edit: October 18, 2012, 04:01:59 pm by hlavac »
Good enough is the enemy of the best.
 

Offline DominiqueTopic starter

  • Newbie
  • Posts: 4
  • Country: fr
Re: Piezo transducer driver
« Reply #12 on: October 18, 2012, 05:01:25 pm »
Hey, how about one of these RS-232 level shifters? Like MAX232? These can do something like +-15V output, and have built in charge pump for that...

Here is one that runs from 3.3V and is relatively cheap: SP3232EBEY-L

Or this one, it has low power shutdown: SP3224ECA-L.
I had a look at these RS-232 level shifters a few days ago, unfortunately I couldn't find 3.3V-compatible ones that output more than +/-5.5V. I guess it's enough to comply with the standard and easier to obtain from the 3V supply. Too bad, the 5V-powered MAX232 would have been perfect: +/-10V output voltage...
 

Offline Zero999

  • Super Contributor
  • ***
  • Posts: 22479
  • Country: gb
  • 0999
Re: Piezo transducer driver
« Reply #13 on: October 18, 2012, 09:49:11 pm »
I think the simplest solution is to use an H-bridge driver IC such as the SN754410. The logic is designed for 5V but it should be fine if driven by 3V.
http://www.ti.com/lit/ds/symlink/sn754410.pdf
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

- - -
-->