# Trying to do the pwm math with TLC59711

#1

I recently acquired a TLC59711 pwm signal generator which I’ll control using a Raspberry (another story) to drive A high power RGB LED. since the LED is running on a high current circuit, they will be on an isolated circuit which will be switched on-off by SSRs (solid state relays) that are controlled by the TLC59711 pwm signal. I need to figure out if the SSR switching times are fast enough for this 16bit 10Mhz pwm generator.

The question - does the generator send the pulse at 10Mhz, or at 10/65000(16bit) MHz? If the whole pulse cycle is sent 10 million times a second, there’s no SSR fast enough to cope with that, perhaps MOSFET transistors, but I would rather keep the LED circuit separate so no mosfets.

#2

The pulse isn’t 10Mhz- that’s the internal clock frequency (typical) of the IC. It’s a weird IC and datasheet, actually, and proved pretty opaque to my understanding. Fortunately we’re not alone since someone has already asked on the manufacturer forums for clarification of the output frequency; https://e2e.ti.com/support/power_management/led_driver/f/192/t/335798

Once you know what you’re looking for, the datasheet (http://www.ti.com/lit/ds/sbvs181/sbvs181.pdf) is a little less opaque:

The PWM operation for all color groups is controlled by a 16-bit grayscale (GS) counter. The GS counter
increments on each rising or falling edge of the external or internal GS reference clock that is selected by
OUTTMG (bit 217) and EXTGCK (bit 216) in the data latch. When the external GS clock is selected, the GS
counter uses the SCKI clock as the grayscale clock.

As the manufacturer states, the frequency is the length of time it takes the clock (which varies) to run the internal counter from 0 to 65535. AKA: Clock Frequency / 65536:

``````10000000 / 65536 = 152.58
``````

Which is 152Hz… okay…

But then it goes a bit off the rails again with the Enhanced Spectrum stuff:

Enhanced spectrum (ES) PWM has the total display period divided into 128 display segments. The total display period refers the period between the first grayscale clock input to the 65536th grayscale clock input after BLANK (bit 213) is set to ‘0’. Each display period has 512 grayscale values, maximum. Each output on-time changes depending on the grayscale data.

At this point, I’m not really sure what the implications are, but it suggests an output frequency of ~20Khz (152Hz * 128).

Bear in mind the tlc59711 is open-drain, designed to sit between your load, and Ground such that it cannot supply power (a.k.a. source current). Keep this in mind when wiring it to a SSR.

So uh… yeah TLDR: it’s either 152Hz or 20Khz.

#3

Thanks for the detailed reply and the sources you pointed out!
I’ve crawled through the datasheet especially with the enhanced spectrum pwm page, the latter which suggests that the total display period consists of 65536 clock inputs (on or off) which is actually not multiplied by 128 but just divided, which results in these 128 display segments. So that 65k clock inputs will run at 152 Hz and not 20 kHz. Each individual clock inputs of the 65k run at 20 kHz and I think that’s what the op managed to measure on TI’s forum.

This is what I managed to understand. If I’m right, it means that ideally it needs a mosfet or a ssr that can cope with 20 kHz on/off signals, because there’s not only one on and one off signal within a display period with the timing precision of 16bit, but the signal will look like a haircomb with evenly spaced on and off signals.
I’m in doubt there’s a ssr fast enough to cope with 20 kHz but I’ll write again if I find one.

#4

Oh… I think I’ve been completely wrong.

It seems that one signal, or one pulse of the 65536 is repeated at 10MHz, so it takes about 100 ns (10⁻⁹ * 100 s) for one on or off pulse. This lines up with “Shift clock output one pulse width” in the datasheet which states a pulse width of 29-70 ns (typical 41 ns). I suppose its not 100 because there is some ‘pause’ between the pulses.

This means that I need to find a switching component that has a turn on time + turn on delay smaller than 41/2 ns which is about 0.00002 ms.