Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: PCA9626_Hello PCA9624_Hello PCA9622_Hello
PCA9626 Class Reference
#include <PCA9626.h>
Inherits PCA962x.
Public Types | |
| enum | LedPinName { L0, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L20, L21, L22, L23, L_NC = ~0x0L } |
PCA9626 pin names high-level API i.e. More... | |
| enum | command_reg { MODE1, MODE2, PWM0, PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, PWM8, PWM9, PWM10, PWM11, PWM12, PWM13, PWM14, PWM15, PWM16, PWM17, PWM18, PWM19, PWM20, PWM21, PWM22, PWM23, GRPPWM, GRPFREQ, CHASE, LEDOUT0, LEDOUT1, LEDOUT2, LEDOUT3, LEDOUT4, LEDOUT5, SUBADR1, SUBADR2, SUBADR3, ALLCALLADR } |
Name of the PCA9626 registers (for direct register access) More... | |
Public Member Functions | |
| PCA9626 (PinName i2c_sda, PinName i2c_scl, char i2c_address=PCA962x::DEFAULT_I2C_ADDR) | |
| Create a PCA9626 instance connected to specified I2C pins with specified address. | |
| PCA9626 (I2C &i2c_obj, char i2c_address=PCA962x::DEFAULT_I2C_ADDR) | |
| Create a PCA9626 instance connected to specified I2C pins with specified address. | |
| virtual | ~PCA9626 () |
| Destractor. | |
| virtual int | number_of_ports (void) |
| Returns the number of output ports. | |
| void | pwm (int port, float v) |
| Set the output duty-cycle, specified as a percentage (float) | |
| void | pwm (float *vp) |
| Set all output port duty-cycle, specified as a percentage (array of float) | |
| void | write (char reg_addr, char data) |
| Register write (single byte) : Low level access to device register. | |
| void | write (char *data, int length) |
| Register write (multiple bytes) : Low level access to device register. | |
| char | read (char reg_addr) |
| Register read (single byte) : Low level access to device register. | |
| void | read (char reg_addr, char *data, int length) |
| Register write (multiple bytes) : Low level access to device register. | |
Detailed Description
PCA9626 class.
PCA9626 PWM control LED driver.
This is a driver code for the PCA9626 24-channel Fm+ I2C-bus 100mA/40V PWM control LED driver. This class provides interface for PCA9626 operation and accessing its registers. Detail information is available on next URL. http://www.nxp.com/products/lighting_driver_and_controller_ics/i2c_led_display_control/series/PCA9626.html
Next sample code shows operation based on low-level-API (operated by just device instane)
Example:
// PCA9626 operation sample using its device instance #include "mbed.h" #include "PCA9626.h" PCA9626 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option) int main() { while(1) { for ( int port = 0; port < led_cntlr.number_of_ports(); port++ ) { for ( int i = 1; i <= 100; i++ ) { led_cntlr.pwm( port, (float)i / 100.0 ); wait( 0.01 ); } } led_cntlr.pwm( ALLPORTS, 0.0 ); } }
The high-level-API:LedPwmOutCC is also available. It can be used like next sample code.
// PCA9626 operation sample using high-level-API #include "mbed.h" #include "PCA9626.h" PCA9626 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option) LedPwmOut led0( led_cntlr, L0 ); // Instance for LED0 pin LedPwmOut led1( led_cntlr, L1 ); // Instance for LED1 pin LedPwmOut led2( led_cntlr, L2 ); // Instance for LED2 pin int main() { while(1) { for ( float p = 1.0; p >= 0.0; p -= 0.01 ) { led0 = p; // Set LED0 output PWM dutycycle as 'p' wait( 0.01 ); } for ( float p = 1.0; p >= 0.0; p -= 0.01 ) { led1 = p; // Set LED1 output PWM dutycycle as 'p' wait( 0.01 ); } for ( float p = 1.0; p >= 0.0; p -= 0.01 ) { led2 = p; // Set LED2 output PWM dutycycle as 'p' wait( 0.01 ); } } }
An operation sample of PCA9626 24-channel Fm+ I2C-bus 100mA/40 V LED driver. mbed accesses the PCA9626 registers through I2C.
- Version:
- 0.6
- Date:
- 04-Mar-2015
Released under the Apache 2 license License
About PCA9626: http://www.nxp.com/products/lighting_driver_and_controller_ics/i2c_led_display_control/series/PCA9626.html
Definition at line 93 of file PCA9626.h.
Member Enumeration Documentation
| enum command_reg |
Name of the PCA9626 registers (for direct register access)
- Enumerator:
| enum LedPinName |
PCA9626 pin names high-level API i.e.
LedPwmOut
- Enumerator:
Constructor & Destructor Documentation
| PCA9626 | ( | PinName | i2c_sda, |
| PinName | i2c_scl, | ||
| char | i2c_address = PCA962x::DEFAULT_I2C_ADDR |
||
| ) |
Create a PCA9626 instance connected to specified I2C pins with specified address.
- Parameters:
-
i2c_sda I2C-bus SDA pin i2c_sda I2C-bus SCL pin i2c_address I2C-bus address (default: 0xC0)
Definition at line 4 of file PCA9626.cpp.
| PCA9626 | ( | I2C & | i2c_obj, |
| char | i2c_address = PCA962x::DEFAULT_I2C_ADDR |
||
| ) |
Create a PCA9626 instance connected to specified I2C pins with specified address.
- Parameters:
-
i2c_obj I2C object (instance) i2c_address I2C-bus address (default: 0xC0)
Definition at line 10 of file PCA9626.cpp.
| ~PCA9626 | ( | ) | [virtual] |
Destractor.
Definition at line 16 of file PCA9626.cpp.
Member Function Documentation
| int number_of_ports | ( | void | ) | [virtual] |
Returns the number of output ports.
- Returns:
- The number of output ports
Implements PCA962x.
Definition at line 43 of file PCA9626.cpp.
| void pwm | ( | int | port, |
| float | v | ||
| ) | [virtual] |
Set the output duty-cycle, specified as a percentage (float)
- Parameters:
-
port Selecting output port 'ALLPORTS' can be used to set all port duty-cycle same value. v A floating-point value representing the output duty-cycle, specified as a percentage. The value should lie between 0.0f (representing on 0%) and 1.0f (representing on 100%). Values outside this range will have undefined behavior.
Reimplemented from PCA962x.
| void pwm | ( | float * | vp ) |
Set all output port duty-cycle, specified as a percentage (array of float)
- Parameters:
-
vp Aray to floating-point values representing the output duty-cycle, specified as a percentage. The value should lie between 0.0f (representing on 0%) and 1.0f (representing on 100%).
- Note:
- The aray should have length of 24
Reimplemented from PCA962x.
| char read | ( | char | reg_addr ) |
Register read (single byte) : Low level access to device register.
- Parameters:
-
reg_addr Register address
- Returns:
- Read value from register
Reimplemented from PCA962x.
| void read | ( | char | reg_addr, |
| char * | data, | ||
| int | length | ||
| ) |
Register write (multiple bytes) : Low level access to device register.
- Parameters:
-
reg_addr Register address data Pointer to an array. The values are stored in this array. length Length of data
Reimplemented from PCA962x.
| void write | ( | char * | data, |
| int | length | ||
| ) |
Register write (multiple bytes) : Low level access to device register.
- Parameters:
-
data Pointer to an array. First 1 byte should be the writing start register address length Length of data
Reimplemented from PCA962x.
| void write | ( | char | reg_addr, |
| char | data | ||
| ) |
Register write (single byte) : Low level access to device register.
- Parameters:
-
reg_addr Register address data Value for setting into the register
Reimplemented from PCA962x.
Generated on Wed Jul 13 2022 09:11:28 by
1.7.2
PCA9622, PCA9624, PCA9626 : 8, 16 & 24ch LED driver (Voltage switch type)