LEDDriver_NXP_Arduino 0.1.2
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
53protected:
54 const uint8_t n_channel;
55 const uint8_t reg_PWM;
56 const uint8_t oe_pin;
57};
58
59
60
68class PCA995x : public LEDDriver
69{
70public:
71 PCA995x( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 8 );
72 virtual ~PCA995x();
73
74 virtual void begin( float current = 0.1, board env = NONE );
75 virtual void init( float current ) = 0;
76
81 void irefall( uint8_t iref );
82
83protected:
84 const uint8_t reg_IREF;
85 const uint8_t reg_IREFALL;
86};
87
88
89
90class PCA995x_I2C : public PCA995x, public I2C_device
91{
92public:
93 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 );
94 virtual ~PCA995x_I2C();
95
96 void reg_access( uint8_t reg, uint8_t val );
97 void reg_access( uint8_t reg, uint8_t *vp, int len );
98};
99
100
101
102class PCA995x_SPI : public PCA995x
103{
104public:
105 PCA995x_SPI( uint8_t n_ch, uint8_t PWM_r, uint8_t IREF_r, uint8_t IREFALL_r, uint8_t oe = 9 );
106 virtual ~PCA995x_SPI();
107
108 void txrx( uint8_t *data, int size );
109
110 void reg_access( uint8_t reg, uint8_t val );
111 void reg_access( uint8_t reg, uint8_t *vp, int len );
112 void reg_w( uint8_t reg, uint8_t val );
113 void reg_w( uint8_t reg, uint8_t *vp, int len );
114 uint8_t reg_r( uint8_t reg );
115 void reg_r( uint8_t reg, uint8_t *vp, int len );
116 void write_r8( uint8_t reg, uint8_t val );
117 uint8_t read_r8( uint8_t reg );
118
123 void irefall( uint8_t iref );
124
125 void pwm( uint8_t ch, float value );
126 void pwm( float* values );
127};
128
129
130
139class PCA9955B : public PCA995x_I2C
140{
141public:
143 const static uint8_t n_channel = 16;
144
146 enum reg_num {
165 };
166
171 PCA9955B( uint8_t i2c_address = (0xBC >> 1) );
172 virtual ~PCA9955B();
173
178 void init( float current );
179};
180
181class PCA9956B : public PCA995x_I2C
182{
183public:
185 const static uint8_t n_channel = 24;
186
188 enum reg_num {
204 };
209 PCA9956B( uint8_t i2c_address = (0x02 >> 1) );
210 virtual ~PCA9956B();
211
216 void init( float current );
217};
218
219class PCA9957 : public PCA995x_SPI
220{
221public:
223 const static uint8_t n_channel = 24;
224
226 enum reg_num {
253 };
254
259 PCA9957();
260 virtual ~PCA9957();
261
266 void init( float current );
267};
268
269#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:54
virtual ~LEDDriver()
Definition: LEDDriver.cpp:12
virtual void reg_access(uint8_t reg, uint8_t *vp, int len)=0
const uint8_t oe_pin
Definition: LEDDriver.h:56
const uint8_t reg_PWM
Definition: LEDDriver.h:55
virtual void reg_access(uint8_t reg, uint8_t val)=0
@ ARDUINO_SHIELD
Definition: LEDDriver.h:31
virtual ~PCA9955B()
Definition: LEDDriver.cpp:197
static const uint8_t n_channel
Definition: LEDDriver.h:143
@ GRAD_GRP_SEL1
Definition: LEDDriver.h:159
@ IREF_GRP2
Definition: LEDDriver.h:156
@ STEP_TIME_GRP2
Definition: LEDDriver.h:156
@ STEP_TIME_GRP1
Definition: LEDDriver.h:155
@ RAMP_RATE_GRP3
Definition: LEDDriver.h:157
@ HOLD_CNTL_GRP3
Definition: LEDDriver.h:157
@ GRAD_GRP_SEL0
Definition: LEDDriver.h:159
@ IREF_GRP1
Definition: LEDDriver.h:155
@ HOLD_CNTL_GRP1
Definition: LEDDriver.h:155
@ RAMP_RATE_GRP1
Definition: LEDDriver.h:155
@ GRAD_GRP_SEL2
Definition: LEDDriver.h:159
@ STEP_TIME_GRP3
Definition: LEDDriver.h:157
@ ALLCALLADR
Definition: LEDDriver.h:162
@ IREF_GRP0
Definition: LEDDriver.h:154
@ HOLD_CNTL_GRP2
Definition: LEDDriver.h:156
@ GRAD_MODE_SEL0
Definition: LEDDriver.h:158
@ IREF_GRP3
Definition: LEDDriver.h:157
@ STEP_TIME_GRP0
Definition: LEDDriver.h:154
@ HOLD_CNTL_GRP0
Definition: LEDDriver.h:154
@ RAMP_RATE_GRP2
Definition: LEDDriver.h:156
@ GRAD_MODE_SEL1
Definition: LEDDriver.h:158
@ GRAD_CNTL
Definition: LEDDriver.h:160
@ RAMP_RATE_GRP0
Definition: LEDDriver.h:154
@ GRAD_GRP_SEL3
Definition: LEDDriver.h:159
void init(float current)
Definition: LEDDriver.cpp:201
@ ALLCALLADR
Definition: LEDDriver.h:201
virtual ~PCA9956B()
Definition: LEDDriver.cpp:218
void init(float current)
Definition: LEDDriver.cpp:222
static const uint8_t n_channel
Definition: LEDDriver.h:185
virtual ~PCA9957()
Definition: LEDDriver.cpp:239
static const uint8_t n_channel
Definition: LEDDriver.h:223
void init(float current)
Definition: LEDDriver.cpp:243
@ IREFALL
Definition: LEDDriver.h:252
@ GRAD_GRP_SEL0
Definition: LEDDriver.h:246
@ GRAD_GRP_SEL2
Definition: LEDDriver.h:246
@ IREF_GRP0
Definition: LEDDriver.h:239
@ RAMP_RATE_GRP2
Definition: LEDDriver.h:241
@ GRAD_GRP_SEL11
Definition: LEDDriver.h:249
@ GRAD_GRP_SEL6
Definition: LEDDriver.h:248
@ EFLAG4
Definition: LEDDriver.h:228
@ IREF22
Definition: LEDDriver.h:238
@ IREF11
Definition: LEDDriver.h:236
@ HOLD_CNTL_GRP2
Definition: LEDDriver.h:241
@ GRAD_GRP_SEL1
Definition: LEDDriver.h:246
@ GRAD_GRP_SEL10
Definition: LEDDriver.h:249
@ IREF13
Definition: LEDDriver.h:237
@ GRAD_MODE_SEL0
Definition: LEDDriver.h:245
@ IREF14
Definition: LEDDriver.h:237
@ STEP_TIME_GRP2
Definition: LEDDriver.h:241
@ IREF20
Definition: LEDDriver.h:238
@ IREF18
Definition: LEDDriver.h:238
@ RAMP_RATE_GRP4
Definition: LEDDriver.h:243
@ EFLAG3
Definition: LEDDriver.h:228
@ LEDOUT1
Definition: LEDDriver.h:229
@ GRAD_GRP_SEL3
Definition: LEDDriver.h:247
@ RAMP_RATE_GRP0
Definition: LEDDriver.h:239
@ IREF_GRP5
Definition: LEDDriver.h:244
@ IREF15
Definition: LEDDriver.h:237
@ HOLD_CNTL_GRP1
Definition: LEDDriver.h:240
@ GRAD_GRP_SEL4
Definition: LEDDriver.h:247
@ HOLD_CNTL_GRP4
Definition: LEDDriver.h:243
@ GRAD_CNTL1
Definition: LEDDriver.h:250
@ LEDOUT2
Definition: LEDDriver.h:229
@ IREF21
Definition: LEDDriver.h:238
@ IREF_GRP4
Definition: LEDDriver.h:243
@ GRAD_CNTL0
Definition: LEDDriver.h:250
@ LEDOUT4
Definition: LEDDriver.h:229
@ IREF17
Definition: LEDDriver.h:237
@ IREF16
Definition: LEDDriver.h:237
@ HOLD_CNTL_GRP3
Definition: LEDDriver.h:242
@ EFLAG5
Definition: LEDDriver.h:228
@ GRPPWM
Definition: LEDDriver.h:230
@ RAMP_RATE_GRP1
Definition: LEDDriver.h:240
@ IREF_GRP3
Definition: LEDDriver.h:242
@ IREF_GRP2
Definition: LEDDriver.h:241
@ STEP_TIME_GRP5
Definition: LEDDriver.h:244
@ IREF10
Definition: LEDDriver.h:236
@ EFLAG1
Definition: LEDDriver.h:228
@ GRAD_GRP_SEL5
Definition: LEDDriver.h:247
@ IREF19
Definition: LEDDriver.h:238
@ OFFSET
Definition: LEDDriver.h:251
@ GRAD_MODE_SEL2
Definition: LEDDriver.h:245
@ LEDOUT5
Definition: LEDDriver.h:229
@ GRAD_GRP_SEL7
Definition: LEDDriver.h:248
@ IREF23
Definition: LEDDriver.h:238
@ RAMP_RATE_GRP3
Definition: LEDDriver.h:242
@ STEP_TIME_GRP1
Definition: LEDDriver.h:240
@ GRAD_MODE_SEL1
Definition: LEDDriver.h:245
@ GRAD_GRP_SEL9
Definition: LEDDriver.h:249
@ HOLD_CNTL_GRP5
Definition: LEDDriver.h:244
@ PWMALL
Definition: LEDDriver.h:252
@ RAMP_RATE_GRP5
Definition: LEDDriver.h:244
@ GRAD_GRP_SEL8
Definition: LEDDriver.h:248
@ STEP_TIME_GRP0
Definition: LEDDriver.h:239
@ GRPFREQ
Definition: LEDDriver.h:230
@ EFLAG2
Definition: LEDDriver.h:228
@ EFLAG0
Definition: LEDDriver.h:228
@ LEDOUT0
Definition: LEDDriver.h:229
@ STEP_TIME_GRP4
Definition: LEDDriver.h:243
@ IREF12
Definition: LEDDriver.h:237
@ HOLD_CNTL_GRP0
Definition: LEDDriver.h:239
@ STEP_TIME_GRP3
Definition: LEDDriver.h:242
@ IREF_GRP1
Definition: LEDDriver.h:240
@ LEDOUT3
Definition: LEDDriver.h:229
virtual ~PCA995x_I2C()
Definition: LEDDriver.cpp:72
void reg_access(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:76
uint8_t reg_r(uint8_t reg)
Definition: LEDDriver.cpp:138
void irefall(uint8_t iref)
Definition: LEDDriver.cpp:165
uint8_t read_r8(uint8_t reg)
Definition: LEDDriver.cpp:160
void reg_access(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:108
void write_r8(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:155
void reg_w(uint8_t reg, uint8_t val)
Definition: LEDDriver.cpp:128
void pwm(uint8_t ch, float value)
Definition: LEDDriver.cpp:170
virtual ~PCA995x_SPI()
Definition: LEDDriver.cpp:97
void txrx(uint8_t *data, int size)
Definition: LEDDriver.cpp:101
void irefall(uint8_t iref)
Definition: LEDDriver.cpp:55
virtual void init(float current)=0
const uint8_t reg_IREF
Definition: LEDDriver.h:84
virtual ~PCA995x()
Definition: LEDDriver.cpp:41
const uint8_t reg_IREFALL
Definition: LEDDriver.h:85
virtual void begin(float current=0.1, board env=NONE)
Definition: LEDDriver.cpp:45