1
\$\begingroup\$

How can I drive a 30ohm speaker from a 5V microprocessor in a simple, very low quiescent-current (<2mA) manner?

The "speaker" is actually a coil, not a speaker - and I'm trying to induce a magnetic field, like in an audio hearing loop.
It's driven from a PIC microprocessor, primarily with brief, digital (rail-to-rail) pulses, but occasional DAC/analogue signals.
It also needs to have separate gain control (that I can control from the PIC - there are plenty of spare legs) and (ideally) disable the whole thing entirely.
I have a 5V, 200mA single rail supply. The coil is 30ohms. Ideally I'd like to be able drop up to 150mA through the coil in short bursts.

Most important thing: low quiescent current, even when it's enabled. Preferably <2mA.
Important things: simplicity, compactness, and low-cost
Unimportant things: fidelity/distortion, temperature stability

I've looked at audio amps (which seem over-complicated, and Quiescent too high), standard op-amps (but they seem to have low current source/supply) and various BJT options (some kind of emitter follower?) but this analogue stuff is a little beyond me.

\$\endgroup\$
3
  • \$\begingroup\$ I'm not clear on the signal. 60mA x 8 ohms is about 0.5V, less than a tenth of 'rail-to-rail' on a 5V supply, and what is the nature of the analog signals? Bipolar, unipolar, what? \$\endgroup\$ Commented Jul 29, 2014 at 13:37
  • \$\begingroup\$ Spehro, I was mistaken, coil is 30ohms, current is ideally 150mA. Will update post. \$\endgroup\$
    – Slowbs
    Commented Jul 29, 2014 at 13:54
  • \$\begingroup\$ To clarify the output requirements: I need the coil to be capable of producing both short digital pulses (typically 4ms long, a few hundred ms apart) with fairly sharp edges. I also need it to be able to produce analogue signals up to a 1kHz cleanly. I'm not concerned about linearity or distortion, but it needs to be clean, so a switched/PWM approximation will not suffice. \$\endgroup\$
    – Slowbs
    Commented Jul 29, 2014 at 14:38

4 Answers 4

1
\$\begingroup\$

If you want to get 150mA with a 30 ohm coil (the resistance will increase with temperature) you'll need no more than a couple ohms switch resistance.

One way to get that would be to use two complimentary pairs of MOSFETs in an H-bridge configuration. For example, the DMHC3025LSD contains all four transistors and is less than 0.2 ohm for the total high+low switch resistance. To get a fairly clean 1kHz you'd need something like 25kHz-50kHz minimum PWM frequency, so you'd probably need a gate driver for the MOSFETs rather than being able to drive them directly from a microcontroller PWM.

If you drive them both high or both low, the current consumption will be minimal (microamperes). For an analog type output you would drive them with complimentary PWM waveforms to get bipolar output. It might be difficult to get much fidelity unless you're using close to full amplitude. If the inductance of the coil isn't enough to smooth the waveform at the PWM frequency you could add an LC filter, but that will affect the 'digital' waveforms too.

\$\endgroup\$
2
  • \$\begingroup\$ I've looked into this with some depth now (thanks for the suggestion) but I'm not confident that I can get both the clean, analogue outputs as well as fast digital switching. \$\endgroup\$
    – Slowbs
    Commented Jul 31, 2014 at 13:16
  • \$\begingroup\$ Possibly you could switch between the two mutually incompatible output stages or modulate one with the other (PWM + LPF supplies voltage to H-bridge). \$\endgroup\$ Commented Jul 31, 2014 at 13:35
0
\$\begingroup\$

What frequency, turn on/off time? If it's slow (~1ms) you could use a SSR (solid state relay) For higher switching speeds you could look into analog switches. Here's an early hit on a digikey search. http://www.ti.com/lit/ds/symlink/ts5a4624.pdf
But there are thousands to choose from.

Gain control could be PWM, or if not take the dive into analog electronics, it's fun.

\$\endgroup\$
1
  • \$\begingroup\$ Surely a relay would only work for the digital pulses? I need a true analogue output to put sine waves/etc through it, so I can't use PWM. \$\endgroup\$
    – Slowbs
    Commented Jul 29, 2014 at 14:02
0
\$\begingroup\$

I would think that any of the smaller H-bridge drivers for small motors would be pretty much ideal for the application as you describe it. You can drive the coil with pulses of either polarity, and you can use "class-D" or delta-sigma techniques to create analog waveforms — the inductance of the coil itself will provide much of the required filtering.

\$\endgroup\$
2
  • \$\begingroup\$ When you say "class-D techniques", do you mean class-D amplifiers? from what I understand, they rely on a low-pass filter to smooth things out at the end, but surely that would strongly interfere with the digital signal outputs? I wasn't that clear on the output requirements - I'll clarify the original post \$\endgroup\$
    – Slowbs
    Commented Jul 29, 2014 at 14:34
  • \$\begingroup\$ No, I mean use the H-bridge driver to create the same sort of output that a class-D amplifier would, by synthesizing the control signals in real time on the PIC. If that's more DSP than you're prepared to do, then maybe this isn't the best solution. \$\endgroup\$
    – Dave Tweed
    Commented Jul 29, 2014 at 16:40
0
\$\begingroup\$

After some further experimentation, I've decided to use a single BJT emitter follower, biased into forward-active to allow analogue input. However, I've added an extra line to a standard IO on the PIC. When set as an output, this will serve to drive digital signals, and when set as an input, it will revert to analogue. Gain will be controlled by a digital pot in place of (Re)

As far as I can tell this serves all my requirements - output fast sharp digital as well as clean analogue, low quiescent, and very simple/low-cost.

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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