LEDDriver_NXP_Arduino 0.2.0
LED driver device operation sample code for Arduino
Loading...
Searching...
No Matches
LEDDriver.h
Go to the documentation of this file.
1
9#ifndef ARDUINO_LED_DRIVER_NXP_ARD_H
10#define ARDUINO_LED_DRIVER_NXP_ARD_H
11
12#include <Arduino.h>
13#include <stdint.h>
14
15#include <I2C_device.h>
16#include <SPI.h>
17
27{
28public:
29 enum board {
32 };
33
34 LEDDriver( uint8_t n_ch, uint8_t PWM_r, uint8_t oe );
35 virtual ~LEDDriver();
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;
38
44 void pwm( uint8_t ch, float value );
45
51 void pwm( float* values );
52
57 void flush( void );
58
63 void buffer_enable( bool flag );
64
65protected:
66 const uint8_t n_channel;
67 const uint8_t reg_PWM;
68 const uint8_t oe_pin;
69 uint8_t *bp;
70};
71
72
73
81class PCA995x : public LEDDriver
82{
83public:
84 PCA995x( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 8 );
85 virtual ~PCA995x();
86
87 virtual void begin( float current = 0.1, board env = NONE, bool buffered = false );
88 virtual void init( float current ) = 0;
89
94 void irefall( uint8_t iref );
95
96protected:
97 const uint8_t reg_IREF;
98 const uint8_t reg_IREFALL;
99};
100
101
102
103class PCA995x_I2C : public PCA995x, public I2C_device
104{
105public:
106 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 );
107 virtual ~PCA995x_I2C();
108
109 void reg_access( uint8_t reg, uint8_t val );
110 void reg_access( uint8_t reg, uint8_t *vp, int len );
111};
112
113
114
115class PCA995x_SPI : public PCA995x
116{
117public:
118 PCA995x_SPI( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 9 );
119 virtual ~PCA995x_SPI();
120
121 void txrx( uint8_t *data, int size );
122
123 void reg_access( uint8_t reg, uint8_t val );
124 void reg_access( uint8_t reg, uint8_t *vp, int len );
125 void reg_w( uint8_t reg, uint8_t val );
126 void reg_w( uint8_t reg, uint8_t *vp, int len );
127 uint8_t reg_r( uint8_t reg );
128 void reg_r( uint8_t reg, uint8_t *vp, int len );
129 void write_r8( uint8_t reg, uint8_t val );
130 uint8_t read_r8( uint8_t reg );
131
136 void irefall( uint8_t iref );
137
138 void pwm( uint8_t ch, float value );
139 void pwm( float* values );
140};
141
142
143
152class PCA9955B : public PCA995x_I2C
153{
154public:
156 const static uint8_t n_channel = 16;
157
159 enum reg_num {
178 };
179
184 PCA9955B( uint8_t i2c_address = (0xBC >> 1) );
185 virtual ~PCA9955B();
186
191 void init( float current );
192};
193
194class PCA9956B : public PCA995x_I2C
195{
196public:
198 const static uint8_t n_channel = 24;
199
201 enum reg_num {
217 };
222 PCA9956B( uint8_t i2c_address = (0x02 >> 1) );
223 virtual ~PCA9956B();
224
229 void init( float current );
230};
231
232class PCA9957 : public PCA995x_SPI
233{
234public:
236 const static uint8_t n_channel = 24;
237
239 enum reg_num {
266 };
267
272 PCA9957();
273 virtual ~PCA9957();
274
279 void init( float current );
280};
281
282#endif // ARDUINO_LED_DRIVER_NXP_ARD_H
void pwm(uint8_t ch, float value)
Definition: LEDDriver.cpp:16
const uint8_t n_channel
Definition: LEDDriver.h:66
virtual ~LEDDriver()
Definition: LEDDriver.cpp:10
virtual void reg_access(uint8_t reg, uint8_t *vp, int len)=0
const uint8_t oe_pin
Definition: LEDDriver.h:68
void buffer_enable(bool flag)
Definition: LEDDriver.cpp:47
const uint8_t reg_PWM
Definition: LEDDriver.h:67
virtual void reg_access(uint8_t reg, uint8_t val)=0
void flush(void)
Definition: LEDDriver.cpp:41
@ ARDUINO_SHIELD
Definition: LEDDriver.h:31
uint8_t * bp
Definition: LEDDriver.h:69
virtual ~PCA9955B()
Definition: LEDDriver.cpp:230
static const uint8_t n_channel
Definition: LEDDriver.h:156
@ GRAD_GRP_SEL1
Definition: LEDDriver.h:172
@ IREF_GRP2
Definition: LEDDriver.h:169
@ STEP_TIME_GRP2
Definition: LEDDriver.h:169
@ STEP_TIME_GRP1
Definition: LEDDriver.h:168
@ RAMP_RATE_GRP3
Definition: LEDDriver.h:170
@ HOLD_CNTL_GRP3
Definition: LEDDriver.h:170
@ GRAD_GRP_SEL0
Definition: LEDDriver.h:172
@ IREF_GRP1
Definition: LEDDriver.h:168
@ HOLD_CNTL_GRP1
Definition: LEDDriver.h:168
@ RAMP_RATE_GRP1
Definition: LEDDriver.h:168
@ GRAD_GRP_SEL2
Definition: LEDDriver.h:172
@ STEP_TIME_GRP3
Definition: LEDDriver.h:170
@ ALLCALLADR
Definition: LEDDriver.h:175
@ IREF_GRP0
Definition: LEDDriver.h:167
@ HOLD_CNTL_GRP2
Definition: LEDDriver.h:169
@ GRAD_MODE_SEL0
Definition: LEDDriver.h:171
@ IREF_GRP3
Definition: LEDDriver.h:170
@ STEP_TIME_GRP0
Definition: LEDDriver.h:167
@ HOLD_CNTL_GRP0
Definition: LEDDriver.h:167
@ RAMP_RATE_GRP2
Definition: LEDDriver.h:169
@ GRAD_MODE_SEL1
Definition: LEDDriver.h:171
@ GRAD_CNTL
Definition: LEDDriver.h:173
@ RAMP_RATE_GRP0
Definition: LEDDriver.h:167
@ GRAD_GRP_SEL3
Definition: LEDDriver.h:172
void init(float current)
Definition: LEDDriver.cpp:234
@ ALLCALLADR
Definition: LEDDriver.h:214
virtual ~PCA9956B()
Definition: LEDDriver.cpp:251
void init(float current)
Definition: LEDDriver.cpp:255
static const uint8_t n_channel
Definition: LEDDriver.h:198
virtual ~PCA9957()
Definition: LEDDriver.cpp:272
static const uint8_t n_channel
Definition: LEDDriver.h:236
void init(float current)
Definition: LEDDriver.cpp:276
@ IREFALL
Definition: LEDDriver.h:265
@ GRAD_GRP_SEL0
Definition: LEDDriver.h:259
@ GRAD_GRP_SEL2
Definition: LEDDriver.h:259
@ IREF_GRP0
Definition: LEDDriver.h:252
@ RAMP_RATE_GRP2
Definition: LEDDriver.h:254
@ GRAD_GRP_SEL11
Definition: LEDDriver.h:262
@ GRAD_GRP_SEL6
Definition: LEDDriver.h:261
@ EFLAG4
Definition: LEDDriver.h:241
@ IREF22
Definition: LEDDriver.h:251
@ IREF11
Definition: LEDDriver.h:249
@ HOLD_CNTL_GRP2
Definition: LEDDriver.h:254
@ GRAD_GRP_SEL1
Definition: LEDDriver.h:259
@ GRAD_GRP_SEL10
Definition: LEDDriver.h:262
@ IREF13
Definition: LEDDriver.h:250
@ GRAD_MODE_SEL0
Definition: LEDDriver.h:258
@ IREF14
Definition: LEDDriver.h:250
@ STEP_TIME_GRP2
Definition: LEDDriver.h:254
@ IREF20
Definition: LEDDriver.h:251
@ IREF18
Definition: LEDDriver.h:251
@ RAMP_RATE_GRP4
Definition: LEDDriver.h:256
@ EFLAG3
Definition: LEDDriver.h:241
@ LEDOUT1
Definition: LEDDriver.h:242
@ GRAD_GRP_SEL3
Definition: LEDDriver.h:260
@ RAMP_RATE_GRP0
Definition: LEDDriver.h:252
@ IREF_GRP5
Definition: LEDDriver.h:257
@ IREF15
Definition: LEDDriver.h:250
@ HOLD_CNTL_GRP1
Definition: LEDDriver.h:253
@ GRAD_GRP_SEL4
Definition: LEDDriver.h:260
@ HOLD_CNTL_GRP4
Definition: LEDDriver.h:256
@ GRAD_CNTL1
Definition: LEDDriver.h:263
@ LEDOUT2
Definition: LEDDriver.h:242
@ IREF21
Definition: LEDDriver.h:251
@ IREF_GRP4
Definition: LEDDriver.h:256
@ GRAD_CNTL0
Definition: LEDDriver.h:263
@ LEDOUT4
Definition: LEDDriver.h:242
@ IREF17
Definition: LEDDriver.h:250
@ IREF16
Definition: LEDDriver.h:250
@ HOLD_CNTL_GRP3
Definition: LEDDriver.h:255
@ EFLAG5
Definition: LEDDriver.h:241
@ GRPPWM
Definition: LEDDriver.h:243
@ RAMP_RATE_GRP1
Definition: LEDDriver.h:253
@ IREF_GRP3
Definition: LEDDriver.h:255
@ IREF_GRP2
Definition: LEDDriver.h:254
@ STEP_TIME_GRP5
Definition: LEDDriver.h:257
@ IREF10
Definition: LEDDriver.h:249
@ EFLAG1
Definition: LEDDriver.h:241
@ GRAD_GRP_SEL5
Definition: LEDDriver.h:260
@ IREF19
Definition: LEDDriver.h:251
@ OFFSET
Definition: LEDDriver.h:264
@ GRAD_MODE_SEL2
Definition: LEDDriver.h:258
@ LEDOUT5
Definition: LEDDriver.h:242
@ GRAD_GRP_SEL7
Definition: LEDDriver.h:261
@ IREF23
Definition: LEDDriver.h:251
@ RAMP_RATE_GRP3
Definition: LEDDriver.h:255
@ STEP_TIME_GRP1
Definition: LEDDriver.h:253
@ GRAD_MODE_SEL1
Definition: LEDDriver.h:258
@ GRAD_GRP_SEL9
Definition: LEDDriver.h:262
@ HOLD_CNTL_GRP5
Definition: LEDDriver.h:257
@ PWMALL
Definition: LEDDriver.h:265
@ RAMP_RATE_GRP5
Definition: LEDDriver.h:257
@ GRAD_GRP_SEL8
Definition: LEDDriver.h:261
@ STEP_TIME_GRP0
Definition: LEDDriver.h:252
@ GRPFREQ
Definition: LEDDriver.h:243
@ EFLAG2
Definition: LEDDriver.h:241
@ EFLAG0
Definition: LEDDriver.h:241
@ LEDOUT0
Definition: LEDDriver.h:242
@ STEP_TIME_GRP4
Definition: LEDDriver.h:256
@ IREF12
Definition: LEDDriver.h:250
@ HOLD_CNTL_GRP0
Definition: LEDDriver.h:252
@ STEP_TIME_GRP3
Definition: LEDDriver.h:255
@ IREF_GRP1
Definition: LEDDriver.h:253
@ LEDOUT3
Definition: LEDDriver.h:242
virtual ~PCA995x_I2C()
Definition: LEDDriver.cpp:105
void reg_access(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:109
uint8_t reg_r(uint8_t reg)
Definition: LEDDriver.cpp:171
void irefall(uint8_t iref)
Definition: LEDDriver.cpp:198
uint8_t read_r8(uint8_t reg)
Definition: LEDDriver.cpp:193
void reg_access(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:141
void write_r8(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:188
void reg_w(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:161
void pwm(uint8_t ch, float value)
Definition: LEDDriver.cpp:203
virtual ~PCA995x_SPI()
Definition: LEDDriver.cpp:130
void txrx(uint8_t *data, int size)
Definition: LEDDriver.cpp:134
void irefall(uint8_t iref)
Definition: LEDDriver.cpp:88
virtual void init(float current)=0
const uint8_t reg_IREF
Definition: LEDDriver.h:97
virtual ~PCA995x()
Definition: LEDDriver.cpp:72
const uint8_t reg_IREFALL
Definition: LEDDriver.h:98
virtual void begin(float current=0.1, board env=NONE, bool buffered=false)
Definition: LEDDriver.cpp:76