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
PCA9957 Class Reference
Inheritance diagram for PCA9957:
PCA995x_SPI PCA995x LEDDriver

Public Types

enum  reg_num {
  MODE1 , MODE2 , EFLAG0 , EFLAG1 ,
  EFLAG2 , EFLAG3 , EFLAG4 , EFLAG5 ,
  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 ,
  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 ,
  RAMP_RATE_GRP4 , STEP_TIME_GRP4 , HOLD_CNTL_GRP4 , IREF_GRP4 ,
  RAMP_RATE_GRP5 , STEP_TIME_GRP5 , HOLD_CNTL_GRP5 , IREF_GRP5 ,
  GRAD_MODE_SEL0 , GRAD_MODE_SEL1 , GRAD_MODE_SEL2 , GRAD_GRP_SEL0 ,
  GRAD_GRP_SEL1 , GRAD_GRP_SEL2 , GRAD_GRP_SEL3 , GRAD_GRP_SEL4 ,
  GRAD_GRP_SEL5 , GRAD_GRP_SEL6 , GRAD_GRP_SEL7 , GRAD_GRP_SEL8 ,
  GRAD_GRP_SEL9 , GRAD_GRP_SEL10 , GRAD_GRP_SEL11 , GRAD_CNTL0 ,
  GRAD_CNTL1 , OFFSET , PWMALL , IREFALL
}
 
enum  board { NONE , ARDUINO_SHIELD }
 
- Public Types inherited from LEDDriver
enum  board { NONE , ARDUINO_SHIELD }
 

Public Member Functions

 PCA9957 ()
 
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_SPI
 PCA995x_SPI (uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, const uint8_t *ar, uint8_t oe=9)
 
void txrx (uint8_t *data, int size)
 
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)
 
void reg_w (uint8_t reg, uint8_t val)
 
void reg_w (uint8_t reg, uint8_t *vp, int len)
 
uint8_t reg_r (uint8_t reg)
 
void reg_r (uint8_t reg, uint8_t *vp, int len)
 
void write_r8 (uint8_t reg, uint8_t val)
 
uint8_t read_r8 (uint8_t reg)
 
void irefall (uint8_t iref)
 
void pwm (uint8_t ch, float value)
 
void pwm (float *values)
 
- 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 495 of file LEDDriver.h.

Member Enumeration Documentation

◆ board

Constants for begin() method

Definition at line 552 of file LEDDriver.h.

◆ reg_num

Name of the PCA9957 registers

Definition at line 502 of file LEDDriver.h.

Constructor & Destructor Documentation

◆ PCA9957()

PCA9957::PCA9957 ( )

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

Definition at line 4 of file PCA9957.cpp.

◆ ~PCA9957()

PCA9957::~PCA9957 ( )
virtual

Definition at line 9 of file PCA9957.cpp.

Member Function Documentation

◆ begin()

void PCA9957::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 "PCA9957::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 PCA9957::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 PCA9957::buffer_enable ( bool flag)

Buffer mode enable/Disble

Parameters
flag'true' for enabling

◆ flush()

void PCA9957::flush ( void )

Flushing data

Send buffered PWM data to the LED driver

◆ init()

void PCA9957::init ( float current)
virtual

Initializing device

Parameters
valuecurrent value in float (0.0 ~ 1.0)

Implements PCA995x.

Definition at line 13 of file PCA9957.cpp.

Referenced by init().

◆ pwm() [1/2]

void PCA9957::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 PCA9957::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 PCA9957::read_r8 ( uint8_t reg)

Register read, 8 bit

Parameters
regregister index/address/pointer
Returns
data value

◆ reg_r() [1/2]

uint8_t PCA9957::reg_r ( uint8_t reg_adr)

Single register read

Parameters
regregister index/address/pointer
Returns
read data

◆ reg_r() [2/2]

int PCA9957::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 PCA9957::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 PCA9957::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 PCA9957::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 PCA9957::access_ref
staticconstexpr
Initial value:
= {
RAMP_RATE_GRP0,
GRAD_MODE_SEL0,
GRAD_GRP_SEL0,
GRAD_CNTL0,
6,
}

Definition at line 542 of file LEDDriver.h.

◆ n_channel

constexpr uint8_t PCA9957::n_channel = 24
staticconstexpr

Number of channels

Definition at line 499 of file LEDDriver.h.


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