9#ifndef ARDUINO_LED_DRIVER_NXP_ARD_H
10#define ARDUINO_LED_DRIVER_NXP_ARD_H
15#include <I2C_device.h>
34 LEDDriver( uint8_t n_ch, uint8_t PWM_r, uint8_t oe );
36 virtual void reg_access( uint8_t reg, uint8_t val ) = 0;
37 virtual void reg_access( uint8_t reg, uint8_t *vp,
int len ) = 0;
44 void pwm( uint8_t ch,
float value );
51 void pwm(
float* values );
66 const uint8_t n_channel;
67 const uint8_t reg_PWM;
85 PCA995x( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 8 );
88 virtual void begin(
float current = 0.1, board env = NONE,
bool buffered =
false );
89 virtual void init(
float current ) = 0;
98 const uint8_t reg_IREF;
99 const uint8_t reg_IREFALL;
107 PCA995x_I2C( uint8_t i2c_address, uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 8 );
110 void reg_access( uint8_t reg, uint8_t val );
111 void reg_access( uint8_t reg, uint8_t *vp,
int len );
119 PCA995x_SPI( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 9 );
122 void txrx( uint8_t *data,
int size );
124 void reg_access( uint8_t reg, uint8_t val );
125 void reg_access( uint8_t reg, uint8_t *vp,
int len );
126 void reg_w( uint8_t reg, uint8_t val );
127 void reg_w( uint8_t reg, uint8_t *vp,
int len );
128 uint8_t reg_r( uint8_t reg );
129 void reg_r( uint8_t reg, uint8_t *vp,
int len );
130 void write_r8( uint8_t reg, uint8_t val );
131 uint8_t read_r8( uint8_t reg );
139 void pwm( uint8_t ch,
float value );
140 void pwm(
float* values );
162 LEDOUT0, LEDOUT1, LEDOUT2, LEDOUT3,
164 PWM0, PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7,
165 PWM8, PWM9, PWM10, PWM11, PWM12, PWM13, PWM14, PWM15,
166 IREF0, IREF1, IREF2, IREF3, IREF4, IREF5, IREF6, IREF7,
167 IREF8, IREF9, IREF10, IREF11, IREF12, IREF13, IREF14, IREF15,
168 RAMP_RATE_GRP0, STEP_TIME_GRP0, HOLD_CNTL_GRP0, IREF_GRP0,
169 RAMP_RATE_GRP1, STEP_TIME_GRP1, HOLD_CNTL_GRP1, IREF_GRP1,
170 RAMP_RATE_GRP2, STEP_TIME_GRP2, HOLD_CNTL_GRP2, IREF_GRP2,
171 RAMP_RATE_GRP3, STEP_TIME_GRP3, HOLD_CNTL_GRP3, IREF_GRP3,
172 GRAD_MODE_SEL0, GRAD_MODE_SEL1,
173 GRAD_GRP_SEL0, GRAD_GRP_SEL1, GRAD_GRP_SEL2, GRAD_GRP_SEL3,
176 SUBADR1, SUBADR2, SUBADR3, ALLCALLADR,
178 EFLAG0, EFLAG1, EFLAG2, EFLAG3,
185 PCA9955B( uint8_t i2c_address = (0xBC >> 1) );
192 void init(
float current );
204 LEDOUT0, LEDOUT1, LEDOUT2, LEDOUT3, LEDOUT4, LEDOUT5,
206 PWM0, PWM1, PWM2, PWM3, PWM4, PWM5,
207 PWM6, PWM7, PWM8, PWM9, PWM10, PWM11,
208 PWM12, PWM13, PWM14, PWM15, PWM16, PWM17,
209 PWM18, PWM19, PWM20, PWM21, PWM22, PWM23,
210 IREF0, IREF1, IREF2, IREF3, IREF4, IREF5,
211 IREF6, IREF7, IREF8, IREF9, IREF10, IREF11,
212 IREF12, IREF13, IREF14, IREF15, IREF16, IREF17,
213 IREF18, IREF19, IREF20, IREF21, IREF22, IREF23,
215 SUBADR1, SUBADR2, SUBADR3, ALLCALLADR,
217 EFLAG0, EFLAG1, EFLAG2, EFLAG3, EFLAG4, EFLAG5
223 PCA9956B( uint8_t i2c_address = (0x02 >> 1) );
230 void init(
float current );
242 EFLAG0, EFLAG1, EFLAG2, EFLAG3, EFLAG4, EFLAG5,
243 LEDOUT0, LEDOUT1, LEDOUT2, LEDOUT3, LEDOUT4, LEDOUT5,
245 PWM0, PWM1, PWM2, PWM3, PWM4, PWM5,
246 PWM6, PWM7, PWM8, PWM9, PWM10, PWM11,
247 PWM12, PWM13, PWM14, PWM15, PWM16, PWM17,
248 PWM18, PWM19, PWM20, PWM21, PWM22, PWM23,
249 IREF0, IREF1, IREF2, IREF3, IREF4, IREF5,
250 IREF6, IREF7, IREF8, IREF9, IREF10, IREF11,
251 IREF12, IREF13, IREF14, IREF15, IREF16, IREF17,
252 IREF18, IREF19, IREF20, IREF21, IREF22, IREF23,
253 RAMP_RATE_GRP0, STEP_TIME_GRP0, HOLD_CNTL_GRP0, IREF_GRP0,
254 RAMP_RATE_GRP1, STEP_TIME_GRP1, HOLD_CNTL_GRP1, IREF_GRP1,
255 RAMP_RATE_GRP2, STEP_TIME_GRP2, HOLD_CNTL_GRP2, IREF_GRP2,
256 RAMP_RATE_GRP3, STEP_TIME_GRP3, HOLD_CNTL_GRP3, IREF_GRP3,
257 RAMP_RATE_GRP4, STEP_TIME_GRP4, HOLD_CNTL_GRP4, IREF_GRP4,
258 RAMP_RATE_GRP5, STEP_TIME_GRP5, HOLD_CNTL_GRP5, IREF_GRP5,
259 GRAD_MODE_SEL0, GRAD_MODE_SEL1, GRAD_MODE_SEL2,
260 GRAD_GRP_SEL0, GRAD_GRP_SEL1, GRAD_GRP_SEL2,
261 GRAD_GRP_SEL3, GRAD_GRP_SEL4, GRAD_GRP_SEL5,
262 GRAD_GRP_SEL6, GRAD_GRP_SEL7, GRAD_GRP_SEL8,
263 GRAD_GRP_SEL9, GRAD_GRP_SEL10, GRAD_GRP_SEL11,
264 GRAD_CNTL0, GRAD_CNTL1,
280 void init(
float current );
void pwm(uint8_t ch, float value)
void buffer_enable(bool flag)
static const uint8_t n_channel
static const uint8_t n_channel
static const uint8_t n_channel
void irefall(uint8_t iref)
void irefall(uint8_t iref)