mirror of https://github.com/arendst/Tasmota.git
Add documentation to SM2135 driver
Add documentation to SM2135 driver
This commit is contained in:
parent
2d194f427f
commit
6997626077
|
@ -20,21 +20,38 @@
|
||||||
#ifdef USE_LIGHT
|
#ifdef USE_LIGHT
|
||||||
#ifdef USE_SM2135
|
#ifdef USE_SM2135
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* SM2135 RGBCW Led bulbs like Action LSC SmartLed
|
* SM2135 RGBCW Led bulbs like some Action LSC SmartLed
|
||||||
*
|
*
|
||||||
* {"NAME":"LSC RGBCW LED","GPIO":[0,0,0,0,0,0,0,0,181,0,180,0,0],"FLAG":0,"BASE":18}
|
* {"NAME":"LSC RGBCW LED","GPIO":[0,0,0,0,0,0,0,0,181,0,180,0,0],"FLAG":0,"BASE":18}
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
#define XDRV_26 26
|
#define XDRV_26 26
|
||||||
|
|
||||||
#define SM2135_ADDR 0xC0
|
#define SM2135_ADDR_MC 0xC0 // Max current register
|
||||||
|
#define SM2135_ADDR_CH 0xC1 // RGB or CW channel select register
|
||||||
|
#define SM2135_ADDR_R 0xC2 // Red color
|
||||||
|
#define SM2135_ADDR_G 0xC3 // Green color
|
||||||
|
#define SM2135_ADDR_B 0xC4 // Blue color
|
||||||
|
#define SM2135_ADDR_C 0xC5 // Cold
|
||||||
|
#define SM2135_ADDR_W 0xC6 // Warm
|
||||||
|
|
||||||
//#define SM2135_CURRENT 0x12 // 3 x 15mA for RGB, 2 x 20mA for CW - Get really hot
|
#define SM2135_RGB 0x00 // RGB channel
|
||||||
//#define SM2135_CURRENT 0x11 // 3 x 15mA for RGB, 2 x 15mA for CW
|
#define SM2135_CW 0x80 // CW channel (Chip default)
|
||||||
#define SM2135_CURRENT 0x20 // 3 x 20mA for RGB, 2 x 10mA for CW
|
|
||||||
|
|
||||||
#define SM2135_RGB 0x00
|
#define SM2135_10MA 0x00
|
||||||
#define SM2135_CW 0x80
|
#define SM2135_15MA 0x01
|
||||||
|
#define SM2135_20MA 0x02 // RGB max current (Chip default)
|
||||||
|
#define SM2135_25MA 0x03
|
||||||
|
#define SM2135_30MA 0x04 // CW max current (Chip default)
|
||||||
|
#define SM2135_35MA 0x05
|
||||||
|
#define SM2135_40MA 0x06
|
||||||
|
#define SM2135_45MA 0x07 // Max value for RGB
|
||||||
|
#define SM2135_50MA 0x08
|
||||||
|
#define SM2135_55MA 0x09
|
||||||
|
#define SM2135_60MA 0x0A
|
||||||
|
|
||||||
|
// RGB current CW current
|
||||||
|
const uint8_t SM2135_CURRENT = (SM2135_20MA << 4) | SM2135_10MA;
|
||||||
|
|
||||||
struct SM2135 {
|
struct SM2135 {
|
||||||
uint8_t clk = 0;
|
uint8_t clk = 0;
|
||||||
|
@ -85,12 +102,12 @@ bool Sm2135SetChannels(void)
|
||||||
// buffer[4] >>= 1; // Divide by 2
|
// buffer[4] >>= 1; // Divide by 2
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
data[0] = SM2135_ADDR;
|
data[0] = SM2135_ADDR_MC;
|
||||||
data[1] = SM2135_CURRENT;
|
data[1] = SM2135_CURRENT;
|
||||||
data[2] = SM2135_CW;
|
data[2] = SM2135_CW;
|
||||||
Sm2135Send(data, 3);
|
Sm2135Send(data, 3);
|
||||||
delay(1);
|
delay(1);
|
||||||
data[0] = SM2135_ADDR +5;
|
data[0] = SM2135_ADDR_C;
|
||||||
data[1] = buffer[4]; // Warm
|
data[1] = buffer[4]; // Warm
|
||||||
data[2] = buffer[3]; // Cold
|
data[2] = buffer[3]; // Cold
|
||||||
Sm2135Send(data, 3);
|
Sm2135Send(data, 3);
|
||||||
|
@ -102,7 +119,7 @@ bool Sm2135SetChannels(void)
|
||||||
// Currently not needed with setting 3 x 15mA = 45mA = 11W = 765
|
// Currently not needed with setting 3 x 15mA = 45mA = 11W = 765
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
data[0] = SM2135_ADDR;
|
data[0] = SM2135_ADDR_MC;
|
||||||
data[1] = SM2135_CURRENT;
|
data[1] = SM2135_CURRENT;
|
||||||
data[2] = SM2135_RGB;
|
data[2] = SM2135_RGB;
|
||||||
data[3] = buffer[1]; // Green
|
data[3] = buffer[1]; // Green
|
||||||
|
|
Loading…
Reference in New Issue