Analysis of Internal Structure and Driving Principle of PCA9633 Series LED Driver
LED is undoubtedly the hottest application in the world. Whether it is handheld devices, game consoles, neon lights, billboards, etc., dazzling colors and high-quality light can always attract people's attention. In the face of many current LED controllers, how to choose a feature-rich and cost-effective product to cater to your own design is undoubtedly a problem facing every designer.
The simplest LED driver, we can use ordinary I / O to achieve. However, I/O control can only achieve ON and OFF LEDs. It can't be used for mixing, flickering, etc., and each LED needs to occupy a separate I/O resource, which is undoubtedly low cost. We can also design with a dedicated high-current LED controller, but the expensive cost will first become a problem, and the design is complicated, and the degree will be correspondingly increased with the occurrence of various interferences. Based on this, NXP has introduced a series of LED drivers using I2C interface, which can control ON/OFF, flicker and RGB mixed light from 4 to 24 LEDs simultaneously through two lines of I2C interface. . In a dimming scheme, each LED is driven by a separate 8-bit/256-order PWM. Currently, each LED current that can be driven by the chip itself ranges from 25 mA to 100 mA. Of course, for some high current applications, we only need to use an external FET.
This I2C-based LED control method increases the convenience and flexibility of the design, and also reduces the investment in hardware and software, making the LED in mysterious appearance seem simple and wonderful for us. Below, we will take the NXP LED driver PCA9633 as an example to explain the advantages of this LED driver through several simple applications.
The PCA9633 is a quad LED driver that can drive up to 25mA per channel and provides an optional fixed I2C address and a 4-bit or 7-bit hardware programmable hardware address depending on the package (Figure 1).
From Figure 1, we can see that each LED is controlled by a single 8-bit/256-order PWM, and because the PWM is fast enough, it can theoretically mix any color through the four LEDs it drives. Light. In addition to each individual PWM, the PCA9633 also provides a Group PWM, which allows us to control the brightness and frequency of the blended color, making up for functions that only a single PWM can't. So how exactly does the PCA9633 implement dimming? The secret is still on the PWM. If you do not use PWM, then it can only complete the opening and closing action; low-speed PWM can only achieve LED flashing, not enough to achieve the purpose of color mixing; high-speed PWM can achieve RGB color mixing; if PWM speed is controllable, then Dual functions of flickering and color mixing can be achieved. And through the controllable 8bit/256-order PWM, the color gradation is increased to enhance the layering of color (see Figure 2).
Knowing the principle of color mixing, how is a specific color produced? We know that the perception of color by the human eye is a superposition of the brightness averages of various colors. We can control the brightness of the driven LED by controlling the duty cycle of each PWM of the PCA9633. According to the principle of three primary colors, if we drive RGB (or RGBA) LEDs, then by adjusting the different brightness of these three LEDs, you can get the desired color. Figure 3 shows an example of the PCA9633 controlling three LEDs of RGB to adjust the pink light.
Through the above description, we basically know the internal structure and driving principle of PCA9633. Below we will use the PCA9633 fixed I2C address several applications to further understand the advantages of this LED controller.
For the first application, we will use the PCA9633 to control the brightness bar. We know that applications such as brightness bars often require a large number of LEDs in series. If a single interface is used to control each LED, the cost and software complexity will increase dramatically. With I2C, only two control lines are needed on the hardware, and only one byte command can be sent in the software, which makes it easy to control. In addition, due to the uniqueness of the I2C device address, several PCA9633 can be used to control the number of LEDs driven. If the actual driving current of the PCA9633 itself is not enough, it is easy to solve by adding a FET to the periphery. In addition, the PCA9633's unique Group PWM makes it easy to control the intensity and flicker of the entire brightness bar. The following is a schematic diagram (see Figure 4), where the I2C master is provided by the system, either an MCU or a logic circuit.
The left half of Figure 4 is the master of I2C and will not be described in detail. The top right side is the LED current limiting resistor. Usually, the forward voltage of the LED is about 3V. There are some differences depending on the color and manufacturing process. We can calculate the value of this current limiting resistor by the required LED current: R = (Vsupply - Vfsum) / If. If the required LED current is greater than 25 mA, the FET added in the figure can easily solve this problem. Once we have added the FET, simply set the OUTDRV of the corresponding register of the PCA9633 to high to distinguish it from its default value. Now we can see that using PCA9633 to control so many LEDs, the schematic is quite simple, and it is also convenient in the software setting register. The PCA9633 provides easy and complete internal registers such as LED output structure settings, power save mode settings, chip enable mode settings, LED output status settings, and control register settings for each PWM and Group PWM. In addition, PCA9633 also provides a register setting increment bit, which means that if we set this bit, we can complete the order configuration of all internal registers through a sequence of instructions, which is in some specific applications. Very useful to maximize software and system resources. Below, we will illustrate the setting of the internal registers by another example.
The second example is the use of the PCA9633 to complete the function of the breathing light. Although the PCA9633 does not have a breathing light module inside, we can do this with some simple register settings, which is a huge advantage over the dedicated breathing light chip. For the sake of explanation, we only use PCA9633 to control the breathing action of an LED. The schematic diagram is very simple. It is omitted here to control the lightening and dimming process of this LED to achieve the purpose of breathing. To achieve this, the PCA9633's independent PWM will be the most important factor. As we have mentioned before, each LED is controlled by an 8-bit/256-order PWM. That is to say, each lamp has 256 segments of bright and dark color gradation, which can perfectly realize the breathing function. Specifically, we do this by controlling the duty cycle of the PWM. If our LED is controlled by PWM0 of PCA9633, the duty cycle of PWM0 will determine the brightness of this LED: Bright(duty cycle)=PWM0[7:0]/256. With this principle in place, we can write something to the PCA9633 register via I2C:
0xC4 (write to PCA9633 I2C device address C4)
00h=0x00; 01h=0x00 (Set the output structure of the LED to open drain)
08h=0x02 (Set the LED to be controlled by PWM0)
Delay 1 second (delay for 1 second)
02h=bright; For bright=0; bright“255; bright++ (LED is gradually brighter from 0 to 255)
Delay 10 ms (complete fade delay 10ms continue)
02h=bright; For bright=255; bright》0;bright- - (LED fades from 255 to 0)
At this point, a complete breathing process is completed, with a few simple register settings, it seems to be done only with complex systems or dedicated chips. From the above two examples, we can see that NXP's I2C LED driver is very simple and easy to operate, both in hardware and software, and the functions that can be realized with such devices are no better than some systems and The proprietary chip is inferior.
In summary, NXP's I2C LED driver provides a cost-effective LED design that saves system resources compared to GPIO or dedicated LED drivers, while reducing the cost and complexity of the design and improving it. Design reliability and uniformity of driving light. In addition, the use of such LED drivers can effectively help us reduce design cycles and increase design flexibility. NXP is currently able to offer customers I2C LED drivers ranging from 4 to 24 channels, and has been used in automotive, home appliances, communications and other fields.