LED lighting system equipped with PFC control
INDUSTRIAL LCD DISPLAYS / IGBT MODULES DISTRIBUTOR

Infineon / Mitsubishi / Fuji / Semikron / Eupec / IXYS

LED lighting system equipped with PFC control

Posted Date: 2024-02-02

This application note describes an example program for controlling LED lighting using the RL78/I1A microcontroller. This example program controls three LEDs independently using constant current control technology, individual dimming using switches, and PFC output voltage. Feedback processing during LED constant current control or PFC output voltage control is based on the proportional integral (PI) method.

This program can be evaluated using the RL78/I1A AC/DC LED Control Evaluation Board. See the circuit diagram for the pin configuration of the RL78/I1A AC/DC LED control board.

Overview of controlling LEDs using RL78/I1A

The RL78/I1A microcontroller integrates comprehensive functions for efficient LED lighting system control:

The RL78/I1A MCU allows the control of LED constant current and PWM dimming of up to 6 channels by using the outputs of 16-bit timers KB0, KB1, KB2 and 16-bit timer KC0. This eliminates the need for an external IC dedicated to LED constant current control, thereby reducing design costs. These 16-bit timers KBn contain several powerful features; one of them used in the example program is the dithering feature, which helps increase the average PWM resolution to 0.98 ns.

The RL78/I1A allows power factor correction (PFC) control in critical conduction mode (CRM) using the timer restart function, which is based on a comparator running with a 16-bit timer KBn and an external interrupt. This also eliminates the need for a dedicated PFC control IC, further reducing design costs.

The RL78/I1A has embedded protection functions that can stop the PWM output when overcurrent or overvoltage is detected in the LED or PFC control circuit (without the need for control by the CPU). This is achieved using a forced output stop function triggered by a comparator and an external interrupt running in conjunction with the 16-bit timer KBn.

In addition, re-operation after an emergency stop can be controlled by software, enabling flexible protection functions according to system requirements.

R78/I1A MCU integrates a serial array unit (UART4/DALI) that supports DALI communication function, which can realize the sending and receiving of Manchester code (8, 16, 17 or 24 bits), which is the communication method standard specified by DALI communication. This reduces CPU load during data transmission and reception.

The RL78/I1A also supports DMX512 communication through its UART0 serial interface. The input signal pulse width measurement function of the timer array unit channel 7 can be used to detect the falling edge of the interrupt cycle on the RxD0 receive pin and measure its length (low level at least 88?s), as well as the interval timer function 16-bit timer array The MARK AFTER BREAK signal width of the unit can be used to calculate and confirm the MARK AFTER BREAK signal width (high level lasts from 8 μs to 1 s), and can also be used to measure the MARK TIME between SLOTS.

The pulse interval measurement function of the 16-bit timer array unit can also be used to receive infrared (IR) remote control signals. This reduces CPU load during data reception.

System Block Diagram

Figure 1 shows the system block diagram of the RL78/I1A AC/DC LED Control Evaluation Board. The LED lighting system responds to a switch input to control the PFC and three LEDs. The system does not require additional external ICs to control the PFC and LEDs as they can be controlled using the RL78/I1A microcontroller.

controlling software

This chapter describes the sample program files, the internal peripheral functions of the RL78/I1A to be used, and their initial settings. This chapter also outlines the overall operation of the example program (constant current and dimming control) and explains the PI method for feedback control, including flowcharts of the different processes.


#LED #lighting #system #equipped #PFC #control