mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-27 12:46:34 +00:00
Enable CCLoader in binary tasmota-zigbee
This commit is contained in:
parent
8f4b4d481e
commit
a49cff2ad9
@ -68,7 +68,7 @@ board_build.f_cpu = 160000000L
|
|||||||
lib_extra_dirs = lib/lib_ssl
|
lib_extra_dirs = lib/lib_ssl
|
||||||
|
|
||||||
[env:tasmota-zigbee]
|
[env:tasmota-zigbee]
|
||||||
build_flags = ${common.build_flags} -DUSE_ZIGBEE -DUSE_UFILESYS
|
build_flags = ${common.build_flags} -DUSE_ZIGBEE -DUSE_CCLOADER -DUSE_UFILESYS
|
||||||
board = esp8266_4M2M
|
board = esp8266_4M2M
|
||||||
board_build.f_cpu = 160000000L
|
board_build.f_cpu = 160000000L
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ enum ProgramSelectablePins {
|
|||||||
GPIO_USER, // User configurable needs to be 2047
|
GPIO_USER, // User configurable needs to be 2047
|
||||||
GPIO_MAX };
|
GPIO_MAX };
|
||||||
|
|
||||||
#define MAX_OPTIONS_A 3 // Increase if more bits are used from GpioOptionABits
|
#define MAX_OPTIONS_A 4 // Increase if more bits are used from GpioOptionABits
|
||||||
|
|
||||||
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
||||||
uint32_t data; // Allow bit manipulation using SetOption
|
uint32_t data; // Allow bit manipulation using SetOption
|
||||||
@ -184,7 +184,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
|||||||
uint32_t pwm1_input : 1; // bit 0 (v9.2.0.1) - Option_A1 - (Light) Change PWM1 to input on power off and no fade running (1)
|
uint32_t pwm1_input : 1; // bit 0 (v9.2.0.1) - Option_A1 - (Light) Change PWM1 to input on power off and no fade running (1)
|
||||||
uint32_t dummy_energy : 1; // bit 1 (v9.3.1.2) - Option_A2 - (Energy) Enable dummy values
|
uint32_t dummy_energy : 1; // bit 1 (v9.3.1.2) - Option_A2 - (Energy) Enable dummy values
|
||||||
uint32_t udisplay_driver : 1; // bit 2 (v9.3.1.2) - Option_A3 - (Display) Universal display driver
|
uint32_t udisplay_driver : 1; // bit 2 (v9.3.1.2) - Option_A3 - (Display) Universal display driver
|
||||||
uint32_t spare03 : 1; // bit 3
|
uint32_t enable_ccloader : 1; // bit 3 (v9.4.0.5) - Option_A4 - (Zigbee) Enable CCLoader using Zigbee Rx/Tx/Rst Gpios
|
||||||
uint32_t spare04 : 1; // bit 4
|
uint32_t spare04 : 1; // bit 4
|
||||||
uint32_t spare05 : 1; // bit 5
|
uint32_t spare05 : 1; // bit 5
|
||||||
uint32_t spare06 : 1; // bit 6
|
uint32_t spare06 : 1; // bit 6
|
||||||
|
@ -2128,8 +2128,9 @@ void ZigbeeShowMap(void) {
|
|||||||
* Interface
|
* Interface
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
bool Xdrv23(uint8_t function)
|
bool Xdrv23(uint8_t function) {
|
||||||
{
|
if (TasmotaGlobal.gpio_optiona.enable_ccloader) { return false; }
|
||||||
|
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
if (zigbee.active) {
|
if (zigbee.active) {
|
||||||
|
@ -30,9 +30,14 @@
|
|||||||
#ifdef USE_CCLOADER
|
#ifdef USE_CCLOADER
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* CCLOader
|
* CCLoader
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
|
* - Configure GPIOs like:
|
||||||
|
* - DEBUG_DATA on CC25xx device to GPIO Zigbee Rx
|
||||||
|
* - DEBUG_CLOCK on CC25xx device to GPIO Zigbee Tx
|
||||||
|
* - RESET_N on CC25xx device to GPIO Zigbee Rst
|
||||||
|
* - Any GPIO as Option_A4
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
#define XDRV_46 46
|
#define XDRV_46 46
|
||||||
@ -125,10 +130,10 @@ struct {
|
|||||||
|
|
||||||
const char CCLtype[] PROGMEM = "CCL";
|
const char CCLtype[] PROGMEM = "CCL";
|
||||||
|
|
||||||
// Debug control pins & the indicate LED
|
// Debug control pins
|
||||||
int CCL_RESET = 14; //GPIO14=D5 on NodeMCU/WeMos D1 Mini
|
int CCL_RESET; // RESET_N on CC25xx device
|
||||||
int CCL_DD = 4; //GPIO4=D2 on NodeMCU/WeMos D1 Mini
|
int CCL_DD; // DEBUG_DATA on CC25xx device
|
||||||
int CCL_DC = 5; //GPIO5=D1 on NodeMCU/WeMos D1 Mini
|
int CCL_DC; // DEBUG_CLOCK on CC25xx device
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
/**************************************************************************//**
|
/**************************************************************************//**
|
||||||
@ -520,22 +525,22 @@ void CCLRunDUP(void)
|
|||||||
delay(10); // Wait
|
delay(10); // Wait
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCLProgrammerInit(void)
|
void CCLoaderinit(void) {
|
||||||
{
|
if (PinUsed(GPIO_ZIGBEE_RX) && PinUsed(GPIO_ZIGBEE_TX) && PinUsed(GPIO_ZIGBEE_RST)) {
|
||||||
|
CCL_RESET = Pin(GPIO_ZIGBEE_RST);
|
||||||
|
CCL_DD = Pin(GPIO_ZIGBEE_RX);
|
||||||
|
CCL_DC = Pin(GPIO_ZIGBEE_TX);
|
||||||
|
|
||||||
pinMode(CCL_DD, OUTPUT);
|
pinMode(CCL_DD, OUTPUT);
|
||||||
pinMode(CCL_DC, OUTPUT);
|
pinMode(CCL_DC, OUTPUT);
|
||||||
pinMode(CCL_RESET, OUTPUT);
|
pinMode(CCL_RESET, OUTPUT);
|
||||||
digitalWrite(CCL_DD, LOW);
|
digitalWrite(CCL_DD, LOW);
|
||||||
digitalWrite(CCL_DC, LOW);
|
digitalWrite(CCL_DC, LOW);
|
||||||
digitalWrite(CCL_RESET, HIGH);
|
digitalWrite(CCL_RESET, HIGH);
|
||||||
}
|
|
||||||
|
|
||||||
bool CCLoaderinit()
|
AddLog(LOG_LEVEL_INFO, PSTR("CCL: programmer init"));
|
||||||
{
|
|
||||||
CCLProgrammerInit();
|
|
||||||
AddLog(LOG_LEVEL_INFO,PSTR("CCL: programmer init"));
|
|
||||||
CCL.init = true;
|
CCL.init = true;
|
||||||
return true;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String CCLChipName(uint8_t chipID) {
|
String CCLChipName(uint8_t chipID) {
|
||||||
@ -664,14 +669,15 @@ void CCLoadershow(bool json) {
|
|||||||
* Interface
|
* Interface
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
bool Xdrv46(uint8_t function)
|
bool Xdrv46(uint8_t function) {
|
||||||
{
|
if (!TasmotaGlobal.gpio_optiona.enable_ccloader) { return false; }
|
||||||
|
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
if (FUNC_INIT == function) {
|
if (FUNC_INIT == function) {
|
||||||
result = CCLoaderinit();
|
CCLoaderinit();
|
||||||
}
|
}
|
||||||
if(CCL.init){
|
if (CCL.init) {
|
||||||
switch(function){
|
switch(function){
|
||||||
case FUNC_EVERY_100_MSECOND:
|
case FUNC_EVERY_100_MSECOND:
|
||||||
CCLoaderLoop();
|
CCLoaderLoop();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user