I2C_Drivers (ARM) 1.1
SMFSW collection of HAL I2C Drivers for ARM
Loading...
Searching...
No Matches
PCA9952.h File Reference

PCA9952 Driver. More...

#include "sarmfsw.h"
#include "I2C_component.h"
#include "I2C_peripheral.h"
#include "PCA9xxx.h"
#include "PCA9952_proc.h"
#include "PCA9952_ex.h"
Include dependency graph for PCA9952.h:
This graph shows which files directly or indirectly include this file:

Data Structures

union  uPCA9952_REG__MODE1
 Union for MODE1 register of PCA9952. More...
 
union  uPCA9952_REG__MODE2
 Union for MODE2 register of PCA9952. More...
 
union  uPCA9952_REG__LEDOUT
 Union for LEDOUT registers of PCA9952. More...
 
union  uPCA9952_REG__EFLAG
 Union for EFLAG registers of PCA9952. More...
 

Macros

#define I2C_PCA9952_NB   1U
 Number of PCA9952 peripherals.
 
#define PCA9952_BASE_ADDR   0x60U
 PCA9952 Base Address.
 

Enumerations

enum  PCA9952_reg {
  PCA9952__MODE1 = 0U , PCA9952__MODE2 , PCA9952__LEDOUT0 , PCA9952__LEDOUT1 ,
  PCA9952__LEDOUT2 , PCA9952__LEDOUT3 , PCA9952__GRPPWM = 0x08U , PCA9952__GRPFREQ ,
  PCA9952__PWM0 , PCA9952__PWM1 , PCA9952__PWM2 , PCA9952__PWM3 ,
  PCA9952__PWM4 , PCA9952__PWM5 , PCA9952__PWM6 , PCA9952__PWM7 ,
  PCA9952__PWM8 , PCA9952__PWM9 , PCA9952__PWM10 , PCA9952__PWM11 ,
  PCA9952__PWM12 , PCA9952__PWM13 , PCA9952__PWM14 , PCA9952__PWM15 ,
  PCA9952__IREF0 = 0x22U , PCA9952__IREF1 , PCA9952__IREF2 , PCA9952__IREF3 ,
  PCA9952__IREF4 , PCA9952__IREF5 , PCA9952__IREF6 , PCA9952__IREF7 ,
  PCA9952__IREF8 , PCA9952__IREF9 , PCA9952__IREF10 , PCA9952__IREF11 ,
  PCA9952__IREF12 , PCA9952__IREF13 , PCA9952__IREF14 , PCA9952__IREF15 ,
  PCA9952__OFFSET = 0x3AU , PCA9952__SUBADR1 , PCA9952__SUBADR2 , PCA9952__SUBADR3 ,
  PCA9952__ALLCALLADR , PCA9952__PWMALL = 0x42U , PCA9952__IREFALL , PCA9952__EFLAG0 ,
  PCA9952__EFLAG1
}
 Register map enum of PCA9952. More...
 
enum  PCA9952_offset {
  PCA9952__OFFSET_NONE = 0U , PCA9952__OFFSET_1_CLOCK_CYCLE , PCA9952__OFFSET_2_CLOCK_CYCLE , PCA9952__OFFSET_3_CLOCK_CYCLE ,
  PCA9952__OFFSET_4_CLOCK_CYCLE , PCA9952__OFFSET_5_CLOCK_CYCLE , PCA9952__OFFSET_6_CLOCK_CYCLE , PCA9952__OFFSET_7_CLOCK_CYCLE ,
  PCA9952__OFFSET_8_CLOCK_CYCLE , PCA9952__OFFSET_9_CLOCK_CYCLE , PCA9952__OFFSET_10_CLOCK_CYCLE , PCA9952__OFFSET_11_CLOCK_CYCLE
}
 Offset enum for PCA9952 peripheral. More...
 

Functions

FctERR PCA9952_Init (const uint8_t idx, I2C_HandleTypeDef *const hi2c, const uint16_t devAddress)
 Initialization for PCA9952 peripheral.
 
FctERR PCA9952_Init_Single (void)
 Initialization for PCA9952 peripheral.
 
FctERR PCA9952_Write (I2C_slave_t *const pSlave, const uint8_t *data, const uint16_t addr, const uint16_t nb)
 I2C Write function for PCA9952.
 
FctERR PCA9952_Read (I2C_slave_t *const pSlave, uint8_t *data, const uint16_t addr, const uint16_t nb)
 I2C Read function for PCA9952.
 

Detailed Description

PCA9952 Driver.

Author
SMFSW

PCA9952: 16-channel Fm+ I2C-bus 57 mA constant current LED driver

Macro Definition Documentation

◆ I2C_PCA9952_NB

#define I2C_PCA9952_NB   1U

Number of PCA9952 peripherals.

Note
Define I2C_PCA9952_NB to enable multiple peripherals of this type

◆ PCA9952_BASE_ADDR

#define PCA9952_BASE_ADDR   0x60U

PCA9952 Base Address.

Note
Define PCA9952_BASE_ADDR to change default device base address

Enumeration Type Documentation

◆ PCA9952_offset

Offset enum for PCA9952 peripheral.

Enumerator
PCA9952__OFFSET_NONE 

no delay between outputs (all on, all off at the same time)

PCA9952__OFFSET_1_CLOCK_CYCLE 

delay of 1 clock cycle (125 ns) between successive outputs

PCA9952__OFFSET_2_CLOCK_CYCLE 

delay of 2 clock cycle (250 ns) between successive outputs

PCA9952__OFFSET_3_CLOCK_CYCLE 

delay of 3 clock cycle (375 ns) between successive outputs

PCA9952__OFFSET_4_CLOCK_CYCLE 

delay of 4 clock cycle (500 ns) between successive outputs

PCA9952__OFFSET_5_CLOCK_CYCLE 

delay of 5 clock cycle (625 ns) between successive outputs

PCA9952__OFFSET_6_CLOCK_CYCLE 

delay of 6 clock cycle (750 ns) between successive outputs

PCA9952__OFFSET_7_CLOCK_CYCLE 

delay of 7 clock cycle (875 ns) between successive outputs

PCA9952__OFFSET_8_CLOCK_CYCLE 

delay of 8 clock cycle (1 us) between successive outputs

PCA9952__OFFSET_9_CLOCK_CYCLE 

delay of 9 clock cycle (1.125 us) between successive outputs

PCA9952__OFFSET_10_CLOCK_CYCLE 

delay of 10 clock cycle (1.25 us) between successive outputs

PCA9952__OFFSET_11_CLOCK_CYCLE 

delay of 11 clock cycle (1.375 us) between successive outputs

◆ PCA9952_reg

Register map enum of PCA9952.

Enumerator
PCA9952__MODE1 

register MODE1

PCA9952__MODE2 

register MODE2

PCA9952__LEDOUT0 

register LED output state 0

PCA9952__LEDOUT1 

register LED output state 1

PCA9952__LEDOUT2 

register LED output state 2

PCA9952__LEDOUT3 

register LED output state 3

PCA9952__GRPPWM 

register group duty cycle control

PCA9952__GRPFREQ 

register group frequency

PCA9952__PWM0 

register brightness control LED0

PCA9952__PWM1 

register brightness control LED1

PCA9952__PWM2 

register brightness control LED2

PCA9952__PWM3 

register brightness control LED3

PCA9952__PWM4 

register brightness control LED4

PCA9952__PWM5 

register brightness control LED5

PCA9952__PWM6 

register brightness control LED6

PCA9952__PWM7 

register brightness control LED7

PCA9952__PWM8 

register brightness control LED8

PCA9952__PWM9 

register brightness control LED9

PCA9952__PWM10 

register brightness control LED10

PCA9952__PWM11 

register brightness control LED11

PCA9952__PWM12 

register brightness control LED12

PCA9952__PWM13 

register brightness control LED13

PCA9952__PWM14 

register brightness control LED14

PCA9952__PWM15 

register brightness control LED15

PCA9952__IREF0 

register output gain control 0

PCA9952__IREF1 

register output gain control 1

PCA9952__IREF2 

register output gain control 2

PCA9952__IREF3 

register output gain control 3

PCA9952__IREF4 

register output gain control 4

PCA9952__IREF5 

register output gain control 5

PCA9952__IREF6 

register output gain control 6

PCA9952__IREF7 

register output gain control 7

PCA9952__IREF8 

register output gain control 8

PCA9952__IREF9 

register output gain control 9

PCA9952__IREF10 

register output gain control 10

PCA9952__IREF11 

register output gain control 11

PCA9952__IREF12 

register output gain control 12

PCA9952__IREF13 

register output gain control 13

PCA9952__IREF14 

register output gain control 14

PCA9952__IREF15 

register output gain control 15

PCA9952__OFFSET 

register offset / delay on LEDn outputs

PCA9952__SUBADR1 

register SUBADR1

PCA9952__SUBADR2 

register SUBADR2

PCA9952__SUBADR3 

register SUBADR3

PCA9952__ALLCALLADR 

register ALLCALLADR

PCA9952__PWMALL 

register brightness control for all LEDn

PCA9952__IREFALL 

register output gain control for all IREF0 to IREF23

PCA9952__EFLAG0 

register output error flag 0

PCA9952__EFLAG1 

register output error flag 1

Function Documentation

◆ PCA9952_Init()

FctERR PCA9952_Init ( const uint8_t idx,
I2C_HandleTypeDef *const hi2c,
const uint16_t devAddress )

Initialization for PCA9952 peripheral.

Parameters
[in]idx- PCA9952 index
[in]hi2c- pointer to PCA9952 I2C instance
[in]devAddress- PCA9952 device address
Returns
FctERR - error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ PCA9952_Init_Single()

FctERR PCA9952_Init_Single ( void )

Initialization for PCA9952 peripheral.

Warning
In case multiple devices (defined by I2C_PCA9952_NB > 1), you shall use PCA9952_Init instead
Returns
FctERR - error code
Here is the call graph for this function:

◆ PCA9952_Read()

FctERR PCA9952_Read ( I2C_slave_t *const pSlave,
uint8_t * data,
const uint16_t addr,
const uint16_t nb )

I2C Read function for PCA9952.

Parameters
[in,out]pSlave- Pointer to I2C slave instance
[in,out]data- pointer to read to
[in]addr- Address to read from
[in]nb- Number of bytes to read
Returns
FctERR - error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ PCA9952_Write()

FctERR PCA9952_Write ( I2C_slave_t *const pSlave,
const uint8_t * data,
const uint16_t addr,
const uint16_t nb )

I2C Write function for PCA9952.

Parameters
[in,out]pSlave- Pointer to I2C slave instance
[in]data- pointer to write from
[in]addr- Address to write to
[in]nb- Number of bytes to write
Returns
FctERR - error code
Here is the call graph for this function:
Here is the caller graph for this function: