This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLC5940: Using a PWM-capable LED Driver to control a Motor Driver

Part Number: TLC5940
Other Parts Discussed in Thread: TLC5951, TLC5957

Hi all - I need to control 4 TI DRV8881P ICs in order to drive 8 bi-directional brushed DC motors.  To do this, I need 16 PWM channels with individually controllable duty cycles.  I have been thinking of using the TI TLC5940, or one of the many closely-related 16 (or more) channel, PWM-capable LED Drivers listed at the TLC5940 compare matrix:  http://www.ti.com/product/TLC5940/compare  I imagine I'm not the first person to think of using your PWM-capable "LED Drivers" for application to drivers for brushed DC motor drivers, but I can't find much literature on how to do it.

For brushed DC motors, using PWM frequencies of around 30kHz to 40kHz is somewhat common, and control of the duty cycle on each individual channel is required.  12 bit (4096 step) resolution on the duty cycle is more than adequate.  I have a few questions though:

1) I think most/all of these devices are constant-current open drain outputs.  If that's correct, I think this means that (a) I'll need to use a pull-up resistor on each channel, and (b) the logic would be reversed (so 100% low means an LED would be full on, but the motor driver would be full off, and 0% low means the opposite.  I may be wrong on (b), but that's a simple mapping of logic (so, no problem).  (a) is a bit painful, but doable I suppose, unless you have suggestions to the contrary.

2) Perhaps more importantly, though, I don’t see much mention of the output PWM frequency in the datasheets, so I’m not sure if I can exercise any control at all over the output frequency.  Like I said, something in the neighborhood of 40kHz is fairly common (beyond audible, so you can't here it buzz...), so if one of these LED Drivers operates somewhere in that vicinity of that I might be in luck.  But certain applications of my new board (applied to motors with significant stiction, operating sometimes at near-zero speed) would benefit significantly from being able to operate at times at significantly lower duty cycles (e.g., down to 100 Hz), in order to break the stiction with each pulse.

So my question here is, does the TLC5940 (or one of its related LED Driver ICs) provide control of the PWM frequency?  If so, how, and over what range?  Thanks heaps in advance!  - Tom

  • Hi,
    The output frequency depends on input GCLK frequency.
    PWM output frequency = GCLK frequency/PWM steps.
    If you need a 30Khz PWM and total 4096 steps PWM, you have to input 122MHz. It seems to be impossible.
    Thanks,
    BRs,
    Rosley
  • So the highest PWM frequency possible with the TLC5940 is GSCLK/4096=30MHz/4096=7.32KHz, correct?
    And, any lower PWM frequencies are possible with the TLC5940 by reducing the GSCLK frequency as much as you want, correct?
    4096 steps is actually much more than I need, what is important for DC motors is the to be able to get the PWM frequency buzz ultrasonic (above 20KHz).
    Are there any TI LED Drivers that have 10bit (or even 8bit) resolution on the PWM, with around 30MHz max GSCLK?
  • I just found the TLC5951. It is a 24-channel PWM-capable LED Driver with "Selectable Grayscale (GS) Control With PWM: 12-Bit (4096 Step), 10-Bit (1024 Step), 8-Bit (256 Step)". It has three gray-scale clocks, each of which can be driven up to 33MHz. If I'm understanding the math right, then driving this with 10-Bit resolution puts me right where I need to be at the upper end, and I can slow it down as much as I want (for those brushed DC motor control applications where slower PWM frequencies are beneficial), allowing increased (12-Bit) resolution at lower PWM frequencies.
    Am I reading this right? Any other concerns? Are there any other chips in the TI portfolio that have Selectable Grayscale Control, besides the TLC5951, that I should also consider?
  • Hi, Thomas,

    TLC5957 can also select the PWM bit from 9 to 16.

    Thanks.
    Regards,
    Kenneth