LED Current control and Modulation Dimming
3 mins read
With LED lighting becoming increasingly popular due to their high luminance, long life, high efficiency and decreasing costs, the subject of controlling and driving the LED's is now a very interesting topic. If the application requires dimming of the LED's especially when flicker must be avoided then there are a number of challenges that must be overcome in order to do this efficiently.
The XMC1000 family is the latest addition to the Infineon Micro Controller portfolio. These are ARM Cortex M0 devices with peripherals particularly suited for many real time applications including motor control and LED lighting. The Brightness and Colour Control Unit (BCCU) can provide flicker free control of 9 channels. In addition other internal peripherals can provide part of a high efficiency, high speed LED driver. The free of charge DAVE development environment supports the whole XMC family (the XMC1000 and the XMC4000 Cortex M4 devices) and can generate C code from DAVE Apps for all XMC peripherals including the BCCU.
Because the dimming level of the LED's is essentially related to the average on time of the modulation then by definition as the dimming level is reduced the off time will increase along with the potential of banding. A further consideration is that the LED drivers used might require a minimum on time which is defined in their datasheet. So, on one hand you have to consider the minimum on time to meet the spec of the LED driver and on the other the minimum off time due to flicker. Alongside this, efficiency and possibly communication interfaces have to be considered and suddenly, the whole topic becomes not-trivial!
An LED luminaire differs from its conventional incandescent equivalent because there is a requirement for some form of electronic control gear (ECG) – the function of the ECG and its physical location in relation to the luminaire will differ slightly depending on the application. Firstly, the ECG might be integrated into the 'light engine' as found with LED replacements for conventional bulbs, or it might be separate. The ECG might include an AC-DC stage, but it will have a DC-DC stage which will actually drive the LED. In addition, there may be a communication interface such as DALI to facilitate 'smart lighting'. Finally the light engine itself might contain more than one LED string (for example RGB) which may need to be controlled independently.
It is the DC-DC stage of the ECG which is of particular interest. There are derivatives of the Infineon XMC1000 Cortex M0 microcontrollers that include a peripheral dedicated for the control of LED's – this is the Brightness and Colour Control Unit (BCCU). The BCCU uses pulse density modulation (PDM) to control the intensities of up to 9 independent LED strings, in addition there are 3 dimming engines which can be flexibly assigned to the 9 channels to provide exponential dimming. Because of the characteristics of the human eye, exponential control is required so that the transitions appear natural. PDM control of the outputs allows for higher frequencies which means that flicker can be avoided even if the LED's are viewed under HD cameras. The BCCU outputs can be routed to the microcontrollers output pins and in turn connected to external LED drivers but alternatively the outputs can be internally connected to the timer units within the XMC1000 (CCU4 or CCU8) as part of an efficient high speed, low cost LED driver. In this configuration the only external components required is an inverted buck circuit. In this circuit a sense resistor is used to sample the LED current and compare it with a reference to detect the peak current. The microcontrollers internal analogue comparators connect to the timer unit to trigger a fixed off time for the MOSFET in the buck circuit.
To improve the efficiency of the circuit, the ripple of the LED current can be reduced by adjusting the MOSFET off time (by changing the CCU compare value) as well as the inductor size.
Because of the flexible configurations and interoperability of the microcontroller peripherals, the interconnections result in very little propagation delay and require very little user code once initialised. This results in a system switching at up to 3MHz and providing an average constant current. The reference circuit used on the evaluation board is configured for 700mA, but if the external components are changed then several Amps is achievable. The important point is that with this solution, the LED's can be dimmed to a low level with no flicker even when viewed with HD cameras as can be seen as 'banding'.
The XMC1300 has sufficient resources to control 3 channels (more if external comparators are added). Spare BCCU channels can be used, with an external RC filter to generate the peak current reference and spare timer slices and serial interfaces mean that, for example, a DALI interface could also be included.
To summarise, providing a solution for high efficiency, highly controllable LED's raises a number of challenges but these are all addressed by the powerful and flexible peripherals of the XMC1000 family of microcontrollers.