Allow settable SPI divisor for AW20216 driver, set default to 4 (#13309)
This commit is contained in:
parent
531f34d2a0
commit
1ea01765e1
2 changed files with 6 additions and 1 deletions
|
@ -250,6 +250,7 @@ You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC
|
||||||
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
|
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
|
||||||
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
|
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
|
||||||
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
|
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
|
||||||
|
| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
|
||||||
|
|
||||||
Here is an example using 2 drivers.
|
Here is an example using 2 drivers.
|
||||||
|
|
||||||
|
|
|
@ -59,13 +59,17 @@
|
||||||
# define DRIVER_1_EN C13
|
# define DRIVER_1_EN C13
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef AW_SPI_DIVISOR
|
||||||
|
# define AW_SPI_DIVISOR 4
|
||||||
|
#endif
|
||||||
|
|
||||||
uint8_t g_spi_transfer_buffer[20] = {0};
|
uint8_t g_spi_transfer_buffer[20] = {0};
|
||||||
aw_led g_pwm_buffer[DRIVER_LED_TOTAL];
|
aw_led g_pwm_buffer[DRIVER_LED_TOTAL];
|
||||||
bool g_pwm_buffer_update_required[DRIVER_LED_TOTAL];
|
bool g_pwm_buffer_update_required[DRIVER_LED_TOTAL];
|
||||||
|
|
||||||
bool AW20216_write_register(pin_t slave_pin, uint8_t page, uint8_t reg, uint8_t data) {
|
bool AW20216_write_register(pin_t slave_pin, uint8_t page, uint8_t reg, uint8_t data) {
|
||||||
// Do we need to call spi_stop() if this fails?
|
// Do we need to call spi_stop() if this fails?
|
||||||
if (!spi_start(slave_pin, false, 0, 16)) {
|
if (!spi_start(slave_pin, false, 0, AW_SPI_DIVISOR)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue