pca9685 - Driver for 16-channel, 12-bit PWM PCA9685¶
- group pca9685
ESP-IDF driver for 16-channel, 12-bit PWM PCA9685.
Ported from esp-open-rtos
Copyright (c) 2016 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Enums
-
enum pca9685_channel_t¶
PWM channel.
Values:
-
enumerator PCA9685_CHANNEL_0¶
PCA9685_CHANNEL_0.
-
enumerator PCA9685_CHANNEL_1¶
PCA9685_CHANNEL_1.
-
enumerator PCA9685_CHANNEL_2¶
PCA9685_CHANNEL_2.
-
enumerator PCA9685_CHANNEL_3¶
PCA9685_CHANNEL_3.
-
enumerator PCA9685_CHANNEL_4¶
PCA9685_CHANNEL_4.
-
enumerator PCA9685_CHANNEL_5¶
PCA9685_CHANNEL_5.
-
enumerator PCA9685_CHANNEL_6¶
PCA9685_CHANNEL_6.
-
enumerator PCA9685_CHANNEL_7¶
PCA9685_CHANNEL_7.
-
enumerator PCA9685_CHANNEL_8¶
PCA9685_CHANNEL_8.
-
enumerator PCA9685_CHANNEL_9¶
PCA9685_CHANNEL_9.
-
enumerator PCA9685_CHANNEL_10¶
PCA9685_CHANNEL_10.
-
enumerator PCA9685_CHANNEL_11¶
PCA9685_CHANNEL_11.
-
enumerator PCA9685_CHANNEL_12¶
PCA9685_CHANNEL_12.
-
enumerator PCA9685_CHANNEL_13¶
PCA9685_CHANNEL_13.
-
enumerator PCA9685_CHANNEL_14¶
PCA9685_CHANNEL_14.
-
enumerator PCA9685_CHANNEL_15¶
PCA9685_CHANNEL_15.
-
enumerator PCA9685_CHANNEL_ALL¶
All channels.
-
enumerator PCA9685_CHANNEL_0¶
Functions
-
esp_err_t pca9685_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.
- Parameters
dev – Pointer to I2C device descriptor
addr – PCA9685 address
port – I2C port number
sda_gpio – GPIO pin number for SDA
scl_gpio – GPIO pin number for SCL
- Returns
ESP_OK
on success
-
esp_err_t pca9685_free_desc(i2c_dev_t *dev)¶
Free device descriptor.
- Parameters
dev – Pointer to I2C device descriptor
- Returns
ESP_OK
on success
-
esp_err_t pca9685_init(i2c_dev_t *dev)¶
Init device.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_subaddr(i2c_dev_t *dev, uint8_t num, uint8_t subaddr, bool enable)¶
Setup device subaddress.
See section 7.3.6 if the datasheet
- Parameters
dev – Device descriptor
num – Subaddress number, 0..2
subaddr – Subaddress, 7 bit
enable – True to enable subaddress, false to disable
- Returns
ESP_OK
on success
-
esp_err_t pca9685_restart(i2c_dev_t *dev)¶
Restart device.
See section 7.3.1.1 of the datasheet
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t pca9685_is_sleeping(i2c_dev_t *dev, bool *sleeping)¶
Check if device is in sleep mode.
- Parameters
dev – Device descriptor
sleeping – [out] True if device is sleeping
- Returns
ESP_OK
on success
-
esp_err_t pca9685_sleep(i2c_dev_t *dev, bool sleep)¶
Switch device to low-power mode or wake it up.
- Parameters
dev – Device descriptor
sleep – True for sleep mode, false for wake up
- Returns
ESP_OK
on success
-
esp_err_t pca9685_is_output_inverted(i2c_dev_t *dev, bool *inv)¶
Get logic inversion of the outputs.
- Parameters
dev – Device descriptor
inv – [out] True if outputs are inverted, false otherwise
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_output_inverted(i2c_dev_t *dev, bool inverted)¶
Logically invert outputs.
See section 7.7 of the datasheet
- Parameters
dev – Device descriptor
inverted – True for inverted outputs
- Returns
ESP_OK
on success
-
esp_err_t pca9685_get_output_open_drain(i2c_dev_t *dev, bool *od)¶
Get outputs mode.
- Parameters
dev – Device descriptor
od – [out] True if outputs are in open drain mode
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_output_open_drain(i2c_dev_t *dev, bool od)¶
Set outputs mode.
- Parameters
dev – Device descriptor
od – True to set open drain mode, false to normal mode
- Returns
ESP_OK
on success
-
esp_err_t pca9685_get_prescaler(i2c_dev_t *dev, uint8_t *prescaler)¶
Get PWM frequency prescaler.
- Parameters
dev – Device descriptor
prescaler – [out] Frequency prescaler
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_prescaler(i2c_dev_t *dev, uint8_t prescaler)¶
Set PWM frequency prescaler.
- Parameters
dev – Device descriptor
prescaler – Prescaler value
- Returns
ESP_OK
on success
-
esp_err_t pca9685_get_pwm_frequency(i2c_dev_t *dev, uint16_t *freq)¶
Get PWM frequency.
- Parameters
dev – Device descriptor
freq – [out] PWM frequency, Hz
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_pwm_frequency(i2c_dev_t *dev, uint16_t freq)¶
Set PWM frequency.
- Parameters
dev – Device descriptor
freq – PWM frequency, Hz
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_pwm_value(i2c_dev_t *dev, uint8_t channel, uint16_t val)¶
Set PWM value on output channel.
- Parameters
dev – Device descriptor
channel – Channel number, 0..15 or >15 for all channels
val – PWM value, 0..4096
- Returns
ESP_OK
on success
-
esp_err_t pca9685_set_pwm_values(i2c_dev_t *dev, uint8_t first_ch, uint8_t channels, const uint16_t *values)¶
Set PWM values on multiple output channels.
- Parameters
dev – Device descriptor
first_ch – First channel, 0..15
channels – Number of channels to update
values – Array of the channel values, each 0..4096
- Returns
ESP_OK
on success
-
enum pca9685_channel_t¶