Is there a current-source equivalent of a TLC5940 (current-sink) PWM LED driver?

I'm working with a large number of linear resonant actuators (LRAs), each of which only uses ~50mA, but must be driven by AC (frequency is constant, amplitude determines power). Each has an independent amplitude from the others.

Currently I'm using PWM output from my MCU to drive the AC voltage in both frequency and amplitude using a PWM to voltage circuit. The involved PWM generation takes up a lot of MCU resources, both computational and pins.

I considered using a number of DACs, but the number I'd need is outside my budget.

I had hoped to use a TLC5940 to move the PWM generation outside the MCU, but as mentioned, it does PWM via current-sink which afaik won't work with the PWM-voltage conversion circuit I'm using.

Are there any other IC options that might work? I've considered using a TLC5940 to switch the ground on a bunch of MOSFETs, but I don't think that would work right (at least I can't find any references to using a MOSFET that way).


1 Answer 1


I'm more of a hardware person rather than software, so I immediately look for hardware solutions.

My approach to this problem would be to have a single AC signal source followed by several digital pots. Each of those digital pots is followed by an appropriate buffer or power amplifier that then feeds one actuator.

You can generate the signal either using a single PWM output from the controller (appropriately filtered) or with any of the very many analog hardware techniques that are available.

You will need to decide how much amplitude resolution that you need. You should also find out how much amplitude variation you need - does it have to range all the way from zero to maximum amplitude or does it need to vary only a certain percentage of the range?

Both of those questions will determine how many steps your digital pot needs to have.

If it turns out that you need extremely fine resolution, you may be better off using a multiplying D/A converter instead of digital pots. Such converters can act as digital attenuators and they are available in bit sizes up to or exceeding 16 bits. You would feed your AC signal source into the D/A reference and the code word that you send into the converter determines the output amplitude.

Both of these techniques can be fairly inexpensive.

  • \$\begingroup\$ I had no idea there were digital pots. Sounds like a perfect solution to me! \$\endgroup\$ Jun 17, 2015 at 20:12

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.