PCA9622, PCA9624, PCA9626 : 8, 16 & 24ch LED driver (Voltage switch type)
8, 16 & 24-channel Fm+ I2C-bus 100mA/40 V LED driver
Hello World
Import programPCA9626_Hello
Hello world code for PCA9626 class library. The PCA9626 is a 24-channel Fm+ I2C-bus 100mA/40 V LED driver. This program shows its basic operation of PWM output.
Library
Import libraryPCA962x
PCA9624, PCA9622 and PCA9626 class library. The PCA9624 is a 8-channel, the PCA9622 is a 16-channel and the PCA9956A is a 24-channel Fm+ I2C-bus 100mA/40V LED driver.
Pinout

Notes
High-level API is available
A high-level API that can be used as the "PwmOut" of bed-SDK is available.
This API enables to make instances of each LED output pins and control PWM duty cycle by assignment.
For detail information, refer API document of LedPwmOut Class
class which is included in PCA962xA class library.
#include "mbed.h" #include "PCA9626.h" PCA9626 led_cntlr( p28, p27, 0xC4 ); // SDA, SCL, Slave_address(option) LedPwmOut led( led_cntlr, L0 ); int main() { while( 1 ) { for( float p = 0.0f; p < 1.0f; p += 0.1f ) { led = p; wait( 0.1 ); } } }
About the chips
PCA9626
The PCA9626 is an I2C-bus controlled 24-bit LED driver optimized for voltage switch dimming and blinking 100 mA LEDs. Each LED output has its own 8-bit resolution (256 steps) fixed frequency individual PWM controller that operates at 97 kHz with a duty cycle that is adjustable from 0 % to 99.6 % to allow the LED to be set to a specific brightness value.
Datasheet: http://www.nxp.com/documents/data_sheet/PCA9626.pdf
PCA9622
The PCA9622 is an I2C-bus controlled 16-bit LED driver optimized for voltage switch dimming and blinking 100 mA LEDs. Each LED output has its own 8-bit resolution (256 steps) fixed frequency individual PWM controller that operates at 97 kHz with a duty cycle that is adjustable from 0 % to 99.6 % to allow the LED to be set to a specific brightness value.
Datasheet: http://www.nxp.com/documents/data_sheet/PCA9622.pdf
PCA9624
The PCA9624 is an I2C-bus controlled 8-bit LED driver optimized for voltage switch dimming and blinking 100 mA Red/Green/Blue/Amber (RGBA) LEDs. Each LED output has its own 8-bit resolution (256 steps) fixed frequency individual PWM controller that operates at 97 kHz with a duty cycle that is adjustable from 0 % to 99.6 % to allow the LED to be set to a specific brightness value.
Datasheet: http://www.nxp.com/documents/data_sheet/PCA9624.pdf
How the API works?
When the instance is made, all set up for PWM operation are done automatically.
PCA9626, PCA9624 and PCA9622 have internal 97kHz oscillator to generate internal PWM waveform. This signal switchs the output current ON and OFF. The class' function pwm()
controls duty-cycle of this output.
Tips for the chips
PCA962x family
This PCA962x components library can be used for all PCA9926(24-channel), PCA9922(16-channel) and PCA9624(8-channel).
If you are using both chips on the I2C bus, those can be operated like..
#include "mbed.h" #include "PCA9622.h" #include "PCA9626.h" PCA9622 led0( p28, p27, 0xC0 ); // SDA, SCL, Slave_address=0xC0 (16-channel chip) PCA9626 led1( p28, p27, 0xC2 ); // SDA, SCL, Slave_address=0xC2 (24-channel chip) int main() { led0.pwm( .... // PWM control for PCA9955A(16-channel chip) led1.pwm( .... // PWM control for PCA9956A(24-channel chip) ...
Sample code for each types
For PCA9624 (8 channel) : http://developer.mbed.org/users/nxp_ip/code/PCA9624_Hello/
For PCA9622 (16 channel) : http://developer.mbed.org/users/nxp_ip/code/PCA9622_Hello/
For PCA9626 (24 channel) : http://developer.mbed.org/users/nxp_ip/code/PCA9626_Hello/
You need to log in to post a discussion