White-LED driver provides 64-step logarithmic dimming
The circuit of Figure 1 is designed for portable-power applications that require white LEDs with adjustable, logarithmic dimming levels. The circuit drives as many as four white LEDs from a 3.3V source and adjusts the total LED current from 1 to 106 mA in 64 steps of 1 dB each. The driver is a charge pump that mirrors the current ISET (sourced from IC3's SET terminal) to produce a current of (215·ISET±3%) through each LED. Internal circuitry maintains the SET terminal at 0.6V. To control the LED brightness, op amp IC2 monitors the difference between the high-side voltage and the wiper voltage of digital potentiometer IC1. The op amp then multiplies that voltage by a gain to set the maximum output current. Zero resistance at the potentiometer's W1 terminal corresponds to minimum LED current and, therefore, minimum brightness. Because the SET voltage is fixed at 0.6V, any voltage change at the left side of R5 changes ISET, and the resulting change in LED currents alters their brightness level. R5 sets the maximum LED current: R5=215×0.6/ILED(DESIRED), where ILED is the current through one LED.
IC1 is a digital potentiometer with a logarithmic taper and an analog-voltage wiper. Each wiper tap corresponds to 1 dB of attenuation between H1 and W1 (pins 11 and 9). The IC contains two potentiometers controlled by a 16-bit code via a three-wire serial interface. To set the LED current, drive high and clock 16 bits into the D terminal of IC1, starting with the LSB. Each pulse at CLK enters a bit into the register. The circuit uses only one potentiometer, so bits 0 through 7 are "don't-care" bits. Bits 8 through 14 determine the wiper position: Bits 8 through 13 set the code, and bit 14 is "mute." (Logic one at bit 14 produces the lowest possible output current by setting the left side of R5 at approximately 0.599V.) After entering all 16 bits, enter the code and change the brightness level by driving high. Figure 2 shows the logarithmic relationship between an LED current and the potentiometer's input code.
Check out our Best of Design Ideas section!