Dimming LEDs is an important feature in many of today’s solid state lighting applications. While many implementations for dimming LEDs in the market today rely on PWM modulation of the LED driving current (to allow for digital control, achieve specific color temperature characteristics, etc.), direct modulation of the LED current (aka “analog” dimming) has recently grown considerably in popularity.
One issue designers face when looking to implement analog dimming control is that many of the existing LED drivers currently in the marketplace, while including an option for PWM dimming, they do not offer a native option for analog dimming. We will look at alternatives to implement analog dimming on conventional LED driver circuits, and a complete solution based on a simple, minimal-external-components architecture will be presented and analyzed.
The architecture of a common constant-current, closed-loop-control LED driver circuit is shown in Fig. 1. In this and most other LED driver architectures, either switching or linear, the LED current is sensed through a resistor in series with the LED. The voltage across the resistor, proportional to the LED current, is then used by the feedback (FB) input pin of the regulator (also called CS or Current Sense by some manufacturers) to adjust the control mechanisms and modify the voltage applied to the LED in order to maintain the current through it constant.
From that simple closed-loop operation, it can be clearly seen that by artificially manipulating the signal going into the regulator’s FB pin, it may be possible to alter the LED driver’s constant-current value, and thus implement an adjustable constant-current version of it, or in other words, analog dimming.
One goal of analog dimming is to be able to adjust the LED current (and hence the LED brightness) through a DC control voltage. In some instances, the goal is to use a simple potentiometer to adjust LED brightness.
The circuits that may be used to achieve such functionality may be diverse in their actual implementation, but their functionality will basically always need to be the same:
The circuit will need to still monitor the LED current and use that information to keep the LED current regulated; e.g. “constant” through closed-loop control.
The circuit will need to take an external control signal (DC voltage or potentiometer signal) to modify the value of the current through the LED and thus control its brightness.
One architecture that easily comes to mind that can satisfy both of the conditions above is one using an operational amplifier. Through such a circuit, an external control voltage (analog dimming signal) and the actual LED current info may be combined and used together by the FB pin of the driver IC. While such a circuit should work very well to satisfy the analog dimming needs, one of the advantages of the analog dimming technique, as mentioned before, is simplicity. Not needing an additional IC to generate a PWM signal is certainly an advantage, however, such an advantage goes away if a proposed analog dimming circuit does need an additional IC to run, like in the case of an op-amp. To overcome such disadvantage, a method in which no additional IC is needed to combine an external control signal and the original feedback voltage is needed.
Current Injection Architecture
In regular voltage-output regulator circuits, a common technique used to adjust output voltage through an external control signal, is current injection . Fig. 2 shows a simplified version of such architecture. Basically, in a current-injection approach, a DC control voltage is applied to FB node through a resistor (R3). Since there is a voltage differential between the FB node and the applied control voltage (VCTRL), a small current is developed in resistor R3. An IC FB pin is a high impedance input, and thus the current the FB pin may sink or source is negligible. Assuming the FB pin current is basically zero, the only path the current through R3 may use is through the bottom feedback resistor, Rfb2. As this current flows through Rfb2, the voltage across this resistor changes, effectively modifying the voltage applied to the FB pin input and eventually manipulating the output voltage of the regulator through the applied control voltage.
This current injection concept, in principle, could be used in LED driver circuits, however, as can be quickly realized, the bottom resistor sensing current through the LED is usually a very small value resistor (sub-ohm) and in order to develop a significant voltage across it, a larger current will need to be injected, one basically in the same order as the LED current. With today’s high brightness LEDs (HBLEDs) being biased in the order of hundreds to thousands of milliamperes, the current injection approach, as traditionally implemented, is impractical.
Floating Voltage Divider Architecture
Fig. 3 shows an alternate architecture in which voltages from an external source and from the LED current sense resistor are being combined. In such an architecture, an arbitrary control voltage is able to control the LED current in its complete range. In its general case, this voltage can come from an external source, a potentiometer wiper, a DAC, etc.
Through the proper selection of the R1 to R2 ratio as well as the RSNS value, basically any LED current can be programmed and controlled in its full range by an arbitrary DC voltage. The minimum range of VCTRL goes from 0V to 2x VREF (e.g. 0V to 400mV for a driver IC with a VREF voltage of 200mV), but its upper limit may extend as high as needed, being able to use common control voltage ranges such as 0V to 5V, 0V to 10V, etc.
In a “floating” voltage divider similar to the one formed by R1 and R2 in Fig. 3, the first parameter to analyze would usually be to find the value of the midpoint between the resistors (VFB) given the values of the voltages at each end (VCTRL and VLED) and the resistor values (R1 and R2). Equation 1 shows this relationship. Its important to note, however, that in the particular case of this application, by the action of closed-loop regulation on the LED driver, the feedback voltage (VFB) will track VREF, and will be, for practical purposes, a fixed value. Given R1, R2, RSNS and VREF are all constants, it makes then sense to solve for VLED instead, in order to ultimately calculate the LED’s forward current (IF) in our circuit as a function of the other variables. Equation 2 shows Equation 1 solved for VLED.
Equation 3 shows the relationship between VLED and IF. Using that relationship in Equation 2, gives in Equation 4 the general expression to calculate IF as a function of VCTRL.
Fig. 4 shows Equation 4 in action, and plots the control transfer function realized by the circuit in Fig. 3 with R1, R2 and RSNS selected, in this example, to provide a 0 to 1A LED current range controlled by a DC voltage in the 0V to 5V window.
The maximum nominal current for the LED (IFMAX), the maximum control voltage to be used (VCTRLMAX) as well as the driver IC voltage reference (VREF) are all known for a given design. That leaves only R1, R2 and RSNS in Equation 4 as variables, and as components needed to select proper values for in the application. It’s advisable to start with R2, and select a standard value in the 10k to 25k ohm range. Unless the current at the FB pin is somewhat significant, such values should work well in most cases. When the current at the FB pin is more than negligible, it’s recommended to utilize a lower value for R2, so that the current through the FB pin is significantly lower compared to the biasing currents for R1 and R2 and thus won’t affect accuracy.
As can be seen from Fig. 4, LED forward current (IF) is zero when VCTRL is at its maximum. This condition can help simplify Equation 4 in order to find an expression to calculate R1, as shown in Equations 7 and 9:
Since VFB will track VREF
R1 may be expressed as:
Maximum forward current for the LED (IFMAX) is reached when VCTRL is zero, and similarly to the case above, Equation 4 can be reduced to Equation 10 under this other condition in order to find an expression to calculate RSNS:
Fig. 5 shows a practical circuit implemented using the principle and equations described above. It uses the LM3404 monolithic LED driver  to provide a constant analog-programmable LED current up to 1A. In this circuit, the driver’s internal Vcc (7V nominal) available externally through pin 7 for bypassing, is being leveraged, and utilized as the auxiliary voltage (VAUX) in Fig. 3. R1 and R2 have been chosen as 681kΩ and 20.5kΩ respectively, in order to dim the LED from zero to one ampere using this 0V to 7V control range from R3 potentiometer. RSNS value was selected at 0.2Ω to allow the LED forward current to go up to 1A. If LEDs with lower maximum forward current are used, RSNS may be scaled down accordingly. For example, 0.3Ω, 0.39Ω and 0.56Ω will approximately provide maximum forward currents close to 700 mA, 500 mA and 350 mA, respectively.
In the circuit, R4 controls U1’s programmable on-time (and thus switching frequency at a given input voltage); C4 helps couple voltage ripple to the LM3404 CS pin (necessary for the proper operation of its COT architecture) and C5 filters wiper noise from R3.
The inductor value was selected at 150uH. Combined with high switching frequency, this provides minimum ripple current, helpful, among other things, to provide a solution without an output cap in parallel with the high brightness LED, yet allowing it to have negligible current excursions (e.g. current ripple) from its programmed nominal value.
When selecting R1, consider choosing a value slightly below the calculated ideal one. This will allow D1 to turn completely off slightly before the maximum VCTRL is reached. This is helpful to ensure the LED will always turn off completely, regardless of component tolerances. Also, analyze how VAUX may vary in the system, and if it does, select components according to its lower value, again to ensure the LED will turn off under all possible operating conditions for the design.
 “An easy way to roll your own programmable power supply”, Electronic Design Magazine, January 2009
 LM3404 Datasheet