2025-06-19 2:27 AM - last edited on 2025-06-19 4:04 AM by Peter BENSCH
Dears, I'm working on an audio project, and I'm searching for LED drivers with no PWM, to avoid noise. I need one sink (common anode LEDs) and one 'voltage' (common cathode LEDs) driver.
Could you please suggest two drivers, which could comply with the following requirements please ?
- I2C interface to microcontroller
- no PWM, this is important
- SSOP or DIP form factor, if possible
- Sink driver: 8 channels, 50mA (for the RGB LEDs and two backlight leds as well)
- 'Voltage' driver: 4 channels, 50mA
- Power supply of the MPU will be 3.15V, hence logic levels will be accordingly
Thank you very much in advance !
Cheers
Matteo
2025-06-19 2:47 AM
@Matbonny wrote:one 'voltage' (common cathode LEDs) driver.
More commonly known as a 'Source' driver
(LEDs want current, rather than voltage)
@Matbonny wrote:- I2C interface to microcontroller
Is it essential that it's I2C?
There are shift-register based drivers ...
eg, https://www.ti.com/lit/ds/symlink/tlc6c598.pdf
2025-06-19 5:08 AM
In addition to @Andrew Neil's suggestion , which still requires the limiting resistor for each LED, I can suggest the STP08CP05, STP08DP05 or LED8102S, which are controlled via a simple serial protocol and have adjustable constant current sources at the outputs. The serial interface can also be controlled via SPI, as described in AN3981.
There is also an LED driver with I2C, but for 12 LEDs: LED1202.
However, I am not aware of any LED driver with high-side outputs (source driven), but you can use normal p-channel MOSFETs or pnp bipolar transistors for this, which of course still require the current limiting resistors.
Hope that helps?
Regards
/Peter
2025-06-19 6:13 AM
Thank you very much for your prompt response ! Serial interface would be ok as well. But, I maybe forgot, I'd like to adjust intensity of each LED separately through the digital input interface.
The shift register is a very good solution, I did not think about, but I guess it's not possible to selectively adjust intensiti on a per-LED basis.
That's why I was initially thinking to implement a DAC, driven by the MCU through a shift register. The DAC generates a variable voltage output which I was thinking to utilize to drive a BJT stage, which would drive each LED. For example, I was thinking to utilize a ULN2003 integrated circuit.
I know there are I2C integrated LED drivers which comply with my requirements (TLC59108IPW or ALED1262Z), but they are based on PWM generators, which I don't want. My question is: is there anything similar to TLC59108, which works without PWM ?
Thank you very much !
Cheers
2025-06-19 6:14 AM
@Matbonny wrote:- Sink driver: 8 channels, 50mA (for the RGB LEDs and two backlight leds as well)
- 'Voltage' driver: 4 channels, 50mA
Are those currents totals, or per-channel ?
2025-06-19 6:16 AM
Thank you very much for your response !
I'm sorry, I realize my question was not clearly written; I'd need to selectively adjust intensity on a per-LED basis. While I guess the intensity can be adjusted once for all LEDs in the provided examples.
That's why I was initially thinking to implement a DAC, driven by the MCU through a shift register. The DAC would generate a variable voltage output which I was thinking to utilize to drive a BJT stage, which would drive each LED. For example, I was thinking to utilize a ULN2003 integrated circuit.
I know there are I2C integrated LED drivers which comply with my requirements (TLC59108IPW or ALED1262Z), but they are based on PWM generators, which I don't want. My question is: is there anything similar to TLC59108, which works without PWM ?
Thank you very much !
Cheers
2025-06-19 6:17 AM
Current draw per channel is about 20 to 30mA. thanks !
Hence, I just wrote 50mA, to allow some margin
Cheers
2025-06-19 7:02 AM
So you want to set the brightness linearly, which only works unsatisfactorily depending on the LED colour. The problems with this are the strong non-linearity of the brightness as a function of the current and, in the case of white LEDs, the shift in the chromaticity as a function of the current and for both of them the device-dependent curve of this dependency. For these reasons, the brightness is always set industrially using PWM.
However, the ripple of the LED current that interferes with audio devices can be greatly reduced with PWM control by not switching the LED in series via open-drain or open-collector, but by short-circuiting the LED with the switching output in parallel to the LED and supplying both with constant current. This achieves two positive effects:
You can largely eliminate the disruptive PWM ripple by keeping the LED supply lines to the parallel PWM switch as short as possible.
2025-06-19 7:50 AM
Thank you very much ! Lots of valuable inputs for me. Cheers