LEDDriver_NXP_Arduino 1.0.2
LED driver device operation sample code for Arduino
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
PCA9956B Class Reference
Inheritance diagram for PCA9956B:
PCA995x_I2C PCA995x LEDDriver

Public Types

enum  reg_num {
  MODE1 , MODE2 , LEDOUT0 , LEDOUT1 ,
  LEDOUT2 , LEDOUT3 , LEDOUT4 , LEDOUT5 ,
  GRPPWM , GRPFREQ , PWM0 , PWM1 ,
  PWM2 , PWM3 , PWM4 , PWM5 ,
  PWM6 , PWM7 , PWM8 , PWM9 ,
  PWM10 , PWM11 , PWM12 , PWM13 ,
  PWM14 , PWM15 , PWM16 , PWM17 ,
  PWM18 , PWM19 , PWM20 , PWM21 ,
  PWM22 , PWM23 , IREF0 , IREF1 ,
  IREF2 , IREF3 , IREF4 , IREF5 ,
  IREF6 , IREF7 , IREF8 , IREF9 ,
  IREF10 , IREF11 , IREF12 , IREF13 ,
  IREF14 , IREF15 , IREF16 , IREF17 ,
  IREF18 , IREF19 , IREF20 , IREF21 ,
  IREF22 , IREF23 , OFFSET , SUBADR1 ,
  SUBADR2 , SUBADR3 , ALLCALLADR , PWMALL ,
  IREFALL , EFLAG0 , EFLAG1 , EFLAG2 ,
  EFLAG3 , EFLAG4 , EFLAG5
}
 
enum  board { NONE , ARDUINO_SHIELD }
 
- Public Types inherited from LEDDriver
enum  board { NONE , ARDUINO_SHIELD }
 

Public Member Functions

 PCA9956B (uint8_t i2c_address=(0x02 > > 1))
 
 PCA9956B (TwoWire &wire, uint8_t i2c_address=(0x02 > > 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)
 
- Public Member Functions inherited from PCA995x_I2C
 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)
 
- Public Member Functions inherited from PCA995x
 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)
 
- Public Member Functions inherited from LEDDriver
 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 = 24
 
static constexpr uint8_t access_ref [NUM_access_word]
 

Additional Inherited Members

- Public Attributes inherited from PCA995x
const uint8_t * arp
 
- Public Attributes inherited from LEDDriver
const uint8_t n_channel
 
- Protected Attributes inherited from PCA995x
const uint8_t reg_IREF
 
const uint8_t reg_IREFALL
 
- Protected Attributes inherited from LEDDriver
const uint8_t reg_PWM
 
const uint8_t oe_pin
 

Detailed Description

Definition at line 338 of file LEDDriver.h.

Member Enumeration Documentation

◆ board

Constants for begin() method

Definition at line 392 of file LEDDriver.h.

◆ reg_num

Name of the PCA9956B registers

Definition at line 345 of file LEDDriver.h.

Constructor & Destructor Documentation

◆ PCA9956B() [1/2]

PCA9956B::PCA9956B ( uint8_t i2c_address = (0x02 >> 1))

Create a PCA9956B instance connected to specified I2C pins with specified address

Parameters
i2c_addressI2C-bus address (default: (0x02>>1))

Definition at line 4 of file PCA9956B.cpp.

◆ PCA9956B() [2/2]

PCA9956B::PCA9956B ( TwoWire & wire,
uint8_t i2c_address = (0x02 >> 1) )

Create a PCA9956B instance connected to specified I2C pins with specified address

Parameters
wireTwoWire instance
i2c_addressI2C-bus address (default: (0xBC>>1))

Definition at line 9 of file PCA9956B.cpp.

◆ ~PCA9956B()

PCA9956B::~PCA9956B ( )
virtual

Definition at line 14 of file PCA9956B.cpp.

Member Function Documentation

◆ begin()

void PCA9956B::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.

Parameters
currentOutput current setting. Max is 1.0 for 100% output. Default is 0.1 (10%)
envThis method takes one argument of "PCA9956B::ARDUINO_SHIELD" to set RESET and OE pins. This is required for Arduino-shield type evaluation boards from NXP.
bufferedBuffered mode switch true or false. Default is false

◆ bit_op8()

void PCA9956B::bit_op8 ( uint8_t reg,
uint8_t mask,
uint8_t value )

Register overwriting with bit-mask

Register can be updated by bit level

Parameters
regregister index/address/pointer
maskbit-mask to protect overwriting
valuevalue to overwrite

◆ buffer_enable()

void PCA9956B::buffer_enable ( bool flag)

Buffer mode enable/Disble

Parameters
flag'true' for enabling

◆ flush()

void PCA9956B::flush ( void )

Flushing data

Send buffered PWM data to the LED driver

◆ init()

void PCA9956B::init ( float current)
virtual

Initializing device

Parameters
valuecurrent value in float (0.0 ~ 1.0)

Implements PCA995x.

Definition at line 18 of file PCA9956B.cpp.

Referenced by init().

◆ pwm() [1/2]

void PCA9956B::pwm ( float * values)

Set PWM value for all channels

Parameters
regregister number
*valuepointer to PWM value in float (0.0 ~ 1.0)

◆ pwm() [2/2]

void PCA9956B::pwm ( uint8_t ch,
float value )

Set PWM value for a channel

Parameters
regregister number
valuePWM value in float (0.0 ~ 1.0)

◆ read_r8()

uint8_t PCA9956B::read_r8 ( uint8_t reg)

Register read, 8 bit

Parameters
regregister index/address/pointer
Returns
data value

◆ reg_r() [1/2]

uint8_t PCA9956B::reg_r ( uint8_t reg_adr)

Single register read

Parameters
regregister index/address/pointer
Returns
read data

◆ reg_r() [2/2]

int PCA9956B::reg_r ( uint8_t reg_adr,
uint8_t * data,
uint16_t size )

Multiple register read

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

◆ reg_w() [1/2]

int PCA9956B::reg_w ( uint8_t reg_adr,
uint8_t * data,
uint16_t size )

Multiple register write

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

Referenced by init().

◆ reg_w() [2/2]

int PCA9956B::reg_w ( uint8_t reg_adr,
uint8_t data )

Single register write

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

◆ write_r8()

void PCA9956B::write_r8 ( uint8_t reg,
uint8_t val )

Register write, 8 bit

Parameters
regregister index/address/pointer
valdata value

Referenced by init().

Member Data Documentation

◆ access_ref

constexpr uint8_t PCA9956B::access_ref
staticconstexpr
Initial value:
= {
0,
0,
0,
0,
0,
}

Definition at line 382 of file LEDDriver.h.

◆ n_channel

constexpr uint8_t PCA9956B::n_channel = 24
staticconstexpr

Number of channels

Definition at line 342 of file LEDDriver.h.


The documentation for this class was generated from the following files: