pca9632: Driver for PCA9632 4-channel PWM chip
Defines
- PCA9632_I2C_ADDR
I2C address for PCA9632.
Enums
- enum pca9632_autoincr_mode_t
Values:
- enumerator AI_DISABLED
no Auto-Increment
- enumerator AI_ALL
Auto-Increment for all registers.
- enumerator AI_INDIV
Auto-Increment for Individual brightness registers only.
- enumerator AI_GLOBAL
Auto-Increment for global control registers only.
- enumerator AI_INDIV_GLOBAL
Auto-Increment for individual and global control registers only.
- enum pca9632_gcm_t
Values:
- enumerator GROUP_CONTROL_MODE_BLINKING
group blink control
- enumerator GROUP_CONTROL_MODE_DIMMING
group dimming control
- enum pca9632_outdrv_t
Values:
- enumerator OUTDRV_OPEN_DRAIN
open-drain output
- enumerator OUTDRV_TOTEM_POLE
totem-pole output
- enum pca9632_led_t
Values:
- enumerator LED0
LED0 PWM output.
- enumerator LED1
LED1 PWM output.
- enumerator LED2
LED2 PWM output.
- enumerator LED3
LED3 PWM output.
- enum pca9632_ldr_t
Values:
- enumerator LDR_OFF
LED driver x is off (default power-up state)
- enumerator LDR_ON
LED driver x is fully on (individual brightness and group dimming/blinking not controlled)
- enumerator LDR_INDIV
LED driver x individual brightness can be controlled through its PWMx register.
- enumerator LDR_INDIV_GRP
LED driver x individual brightness and group dimming/blinking can be controlled through its PWMx register and the GRPPWM registers.
Functions
- esp_err_t pca9632_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)
Initialize device descriptor.
Default SCL frequency is 400kHz
- Parameters:
dev – Pointer to I2C device descriptor
port – I2C port number
addr – I2C address
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns:
ESP_OK
on success
- esp_err_t pca9632_free_desc(i2c_dev_t *dev)
Free device descriptor.
- Parameters:
dev – Pointer to I2C device descriptor
- Returns:
ESP_OK
on success
- esp_err_t pca9632_init(i2c_dev_t *dev)
Initialize device.
Individual dimming mode by default
- Parameters:
dev – Pointer to I2C device descriptor
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_autoincrement(i2c_dev_t *dev, pca9632_autoincr_mode_t ai)
Set register address auto-increment mode, See ‘pca9632_autoincr_mode_t’ for details.
- Parameters:
dev – Pointer to I2C device descriptor
ai – Auto-increment mode
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_group_control_mode(i2c_dev_t *dev, pca9632_gcm_t mode)
Set group control mode.
See ‘pca9632_gcm_t’ for details
- Parameters:
dev – Pointer to I2C device descriptor
mode – Group control mode
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_output_params(i2c_dev_t *dev, bool invert, pca9632_outdrv_t outdrv)
Set up PWM outputs.
See ‘pca9632_outdrv_t’ for details
- Parameters:
dev – Pointer to I2C device descriptor
invert – Use inverted logic on outputs
outdrv – Enable Totem-Pole output mode
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_pwm(i2c_dev_t *dev, pca9632_led_t channel, uint8_t duty)
Set PWM duty on selected channel.
- Parameters:
dev – Pointer to I2C device descriptor
channel – PWM output channel
duty – PWM duty-cycle value
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_pwm_all(i2c_dev_t *dev, uint8_t led0, uint8_t led1, uint8_t led2, uint8_t led3)
Set PWM duty on all channels.
- Parameters:
dev – Pointer to I2C device descriptor
led0 – PWM duty-cycle value on LED0 output
led1 – PWM duty-cycle value on LED1 output
led2 – PWM duty-cycle value on LED2 output
led3 – PWM duty-cycle value on LED3 output
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_grp_pwm(i2c_dev_t *dev, uint8_t val)
Set GRPPWM register value.
- Parameters:
dev – Pointer to I2C device descriptor
val – GRPPWM value
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_grp_freq(i2c_dev_t *dev, uint8_t val)
Set GRPFREQ register value.
- Parameters:
dev – Pointer to I2C device descriptor
val – GRPFREQ value
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_led_driver(i2c_dev_t *dev, pca9632_led_t channel, pca9632_ldr_t ldr)
Set LED driver on selected channel.
See ‘pca9632_ldr_t’ for details
- Parameters:
dev – Pointer to I2C device descriptor
channel – PWM output channel
ldr – LED driver type
- Returns:
ESP_OK
on success
- esp_err_t pca9632_set_led_driver_all(i2c_dev_t *dev, pca9632_ldr_t ldr)
Set LED driver on all outputs.
See ‘pca9632_ldr_t’ for details
- Parameters:
dev – Pointer to I2C device descriptor
ldr – LED driver type
- Returns:
ESP_OK
on success