LEDDriver_NXP_Arduino 1.0.2
LED driver device operation sample code for Arduino
|
#include <LEDDriver.h>
Public Types | |
enum | reg_num { MODE1 , MODE2 , LEDOUT0 , LEDOUT1 , LEDOUT2 , LEDOUT3 , GRPPWM , GRPFREQ , PWM0 , PWM1 , PWM2 , PWM3 , PWM4 , PWM5 , PWM6 , PWM7 , PWM8 , PWM9 , PWM10 , PWM11 , PWM12 , PWM13 , PWM14 , PWM15 , IREF0 , IREF1 , IREF2 , IREF3 , IREF4 , IREF5 , IREF6 , IREF7 , IREF8 , IREF9 , IREF10 , IREF11 , IREF12 , IREF13 , IREF14 , IREF15 , RAMP_RATE_GRP0 , STEP_TIME_GRP0 , HOLD_CNTL_GRP0 , IREF_GRP0 , RAMP_RATE_GRP1 , STEP_TIME_GRP1 , HOLD_CNTL_GRP1 , IREF_GRP1 , RAMP_RATE_GRP2 , STEP_TIME_GRP2 , HOLD_CNTL_GRP2 , IREF_GRP2 , RAMP_RATE_GRP3 , STEP_TIME_GRP3 , HOLD_CNTL_GRP3 , IREF_GRP3 , GRAD_MODE_SEL0 , GRAD_MODE_SEL1 , GRAD_GRP_SEL0 , GRAD_GRP_SEL1 , GRAD_GRP_SEL2 , GRAD_GRP_SEL3 , GRAD_CNTL , OFFSET , SUBADR1 , SUBADR2 , SUBADR3 , ALLCALLADR , PWMALL , IREFALL , EFLAG0 , EFLAG1 , EFLAG2 , EFLAG3 } |
enum | board { NONE , ARDUINO_SHIELD } |
![]() | |
enum | board { NONE , ARDUINO_SHIELD } |
Public Member Functions | |
PCA9955B (uint8_t i2c_address=(0xBC > > 1)) | |
PCA9955B (TwoWire &wire, uint8_t i2c_address=(0xBC > > 1)) | |
void | init (float current) |
void | begin (float current=0.1, board env=NONE, bool buffered=false) |
void | pwm (uint8_t ch, float value) |
void | pwm (float *values) |
void | buffer_enable (bool flag) |
void | flush (void) |
int | reg_w (uint8_t reg_adr, uint8_t *data, uint16_t size) |
int | reg_w (uint8_t reg_adr, uint8_t data) |
int | reg_r (uint8_t reg_adr, uint8_t *data, uint16_t size) |
uint8_t | reg_r (uint8_t reg_adr) |
void | write_r8 (uint8_t reg, uint8_t val) |
uint8_t | read_r8 (uint8_t reg) |
void | bit_op8 (uint8_t reg, uint8_t mask, uint8_t value) |
void | bit_op16 (uint8_t reg, uint16_t mask, uint16_t value) |
![]() | |
PCA995x_I2C (uint8_t i2c_address, uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, const uint8_t *ar, uint8_t oe=8) | |
PCA995x_I2C (TwoWire &wire, uint8_t i2c_address, uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, const uint8_t *ar, uint8_t oe=8) | |
void | reg_access (uint8_t reg, uint8_t val) |
void | reg_access (uint8_t reg, uint8_t *vp, int len) |
uint8_t | reg_access (uint8_t reg) |
void | reg_access_r (uint8_t reg, uint8_t *vp, int len) |
![]() | |
PCA995x (uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, const uint8_t *ar, uint8_t oe=8) | |
virtual void | begin (float current=0.1, board env=NONE, bool buffered=false) |
void | irefall (uint8_t iref) |
![]() | |
LEDDriver (uint8_t n_ch, uint8_t PWM_r, uint8_t oe) | |
void | pwm (uint8_t ch, float value) |
void | pwm (float *values) |
void | buffer_enable (bool flag) |
void | flush (void) |
Static Public Attributes | |
static constexpr uint8_t | n_channel = 16 |
static constexpr uint8_t | access_ref [NUM_access_word] |
Static Protected Attributes | |
static const int | n_group |
Additional Inherited Members | |
![]() | |
const uint8_t * | arp |
![]() | |
const uint8_t | n_channel |
![]() | |
const uint8_t | reg_IREF |
const uint8_t | reg_IREFALL |
![]() | |
const uint8_t | reg_PWM |
const uint8_t | oe_pin |
PCA9955B class
About PCA9955B: https://www.nxp.com/products/power-management/lighting-driver-and-controller-ics/led-drivers/16-channel-fm-plus-ic-bus-57-ma-20-v-constant-current-led-driver:PCA9955BTW
Definition at line 175 of file LEDDriver.h.
enum PCA9955B::board |
Constants for begin() method
Definition at line 233 of file LEDDriver.h.
enum PCA9955B::reg_num |
Name of the PCA9955B registers
Definition at line 182 of file LEDDriver.h.
PCA9955B::PCA9955B | ( | uint8_t | i2c_address = (0xBC >> 1) | ) |
Create a PCA9955B instance connected to specified I2C pins with specified address
i2c_address | I2C-bus address (default: (0xBC>>1)) |
Definition at line 4 of file PCA9955B.cpp.
PCA9955B::PCA9955B | ( | TwoWire & | wire, |
uint8_t | i2c_address = (0xBC >> 1) ) |
Create a PCA9955B instance connected to specified I2C pins with specified address
wire | TwoWire instance |
i2c_address | I2C-bus address (default: (0xBC>>1)) |
Definition at line 9 of file PCA9955B.cpp.
|
virtual |
Definition at line 14 of file PCA9955B.cpp.
void PCA9955B::begin | ( | float | current = 0.1, |
board | env = NONE, | ||
bool | buffered = false ) |
Device/board initialization
This method is needed to initialize the LED driver itself and evaluation board.
current | Output current setting. Max is 1.0 for 100% output. Default is 0.1 (10%) |
env | This method takes one argument of "PCA9955B::ARDUINO_SHIELD" to set RESET and OE pins. This is required for Arduino-shield type evaluation boards from NXP. |
buffered | Buffered mode switch true or false. Default is false |
void PCA9955B::bit_op8 | ( | uint8_t | reg, |
uint8_t | mask, | ||
uint8_t | value ) |
Register overwriting with bit-mask
Register can be updated by bit level
reg | register index/address/pointer |
mask | bit-mask to protect overwriting |
value | value to overwrite |
void PCA9955B::buffer_enable | ( | bool | flag | ) |
Buffer mode enable/Disble
flag | 'true' for enabling |
void PCA9955B::flush | ( | void | ) |
Flushing data
Send buffered PWM data to the LED driver
|
virtual |
Initializing device
value | current value in float (0.0 ~ 1.0) |
Implements PCA995x.
Definition at line 18 of file PCA9955B.cpp.
Referenced by init().
void PCA9955B::pwm | ( | float * | values | ) |
Set PWM value for all channels
reg | register number |
*value | pointer to PWM value in float (0.0 ~ 1.0) |
void PCA9955B::pwm | ( | uint8_t | ch, |
float | value ) |
Set PWM value for a channel
reg | register number |
value | PWM value in float (0.0 ~ 1.0) |
uint8_t PCA9955B::read_r8 | ( | uint8_t | reg | ) |
Register read, 8 bit
reg | register index/address/pointer |
uint8_t PCA9955B::reg_r | ( | uint8_t | reg_adr | ) |
Single register read
reg | register index/address/pointer |
int PCA9955B::reg_r | ( | uint8_t | reg_adr, |
uint8_t * | data, | ||
uint16_t | size ) |
Multiple register read
reg | register index/address/pointer |
data | pointer to data buffer |
size | data size |
int PCA9955B::reg_w | ( | uint8_t | reg_adr, |
uint8_t * | data, | ||
uint16_t | size ) |
Multiple register write
reg | register index/address/pointer |
data | pointer to data buffer |
size | data size |
Referenced by init().
int PCA9955B::reg_w | ( | uint8_t | reg_adr, |
uint8_t | data ) |
Single register write
reg | register index/address/pointer |
data | pointer to data buffer |
size | data size |
void PCA9955B::write_r8 | ( | uint8_t | reg, |
uint8_t | val ) |
Register write, 8 bit
reg | register index/address/pointer |
val | data value |
Referenced by init().
|
staticconstexpr |
Definition at line 223 of file LEDDriver.h.
|
staticconstexpr |
Number of channels
Definition at line 179 of file LEDDriver.h.
|
staticprotected |
Definition at line 335 of file LEDDriver.h.