7 Commits

Author SHA1 Message Date
Kuba Szczodrzyński
b85f6f8c3f [release] v0.12.0
Some checks failed
Lint check / Lint with clang-format (push) Has been cancelled
Lint check / Lint with black (push) Has been cancelled
PlatformIO Publish / publish (push) Has been cancelled
2022-12-30 15:52:14 +01:00
Kuba Szczodrzyński
d036ac9fba [core] Migrate to ltchiptool v2.0.0 2022-12-30 15:51:32 +01:00
Kuba Szczodrzyński
f63a114371 [beken-72xx] Support compilation for BK7251 family 2022-12-08 20:16:44 +01:00
Kuba Szczodrzyński
8cb59661ac [boards] Add initial support for BK7252 2022-12-08 20:04:17 +01:00
Kuba Szczodrzyński
fc1da609f2 [beken-72xx] Add BL2028N to supported chips 2022-12-08 17:48:04 +01:00
Kuba Szczodrzyński
c6566323fd [boards] Move IC pinouts to separate directory 2022-12-08 17:26:46 +01:00
Kuba Szczodrzyński
30e1533ad9 [core] Rename BK7231T family to BK7231U 2022-12-08 17:19:42 +01:00
62 changed files with 1295 additions and 135 deletions

View File

@@ -16,6 +16,7 @@ void delayMilliseconds(unsigned long ms) {
}
static uint32_t getTicksCount() {
// copied from bk_timer_ctrl(), for speeds
uint32_t timeout = 0;
REG_WRITE(TIMER0_2_READ_CTL, (BKTIMER0 << 2) | 1);
while (REG_READ(TIMER0_2_READ_CTL) & 1) {
@@ -58,9 +59,6 @@ unsigned long millis() {
}
unsigned long micros() {
// copied from bk_timer_ctrl(), for speeds
uint32_t timeout = 0;
#if (CFG_SOC_NAME == SOC_BK7231)
#error "Not implemented"
#endif
@@ -91,6 +89,7 @@ unsigned long micros() {
return correctedMillis * 1000 + nowTicks / (CFG_XTAL_FREQUENCE / 1000 / 1000);
#else
#if 0
uint32_t timeout = 0;
REG_WRITE(TIMER3_5_READ_CTL, (BKTIMER3 << 2) | 1);
while (REG_READ(TIMER3_5_READ_CTL) & 1) {
timeout++;

View File

@@ -11,8 +11,9 @@ enum ChipFamily {
F_RTL8710B = 0x22E0D6FC, // Realtek AmebaZ (realtek-ambz)
F_RTL8720C = 0xE08F7564, // Realtek AmebaZ2
F_RTL8720D = 0x3379CFE2, // Realtek AmebaD
F_BK7231T = 0x675A40B0, // Beken 7231T
F_BK7231U = 0x675A40B0, // Beken 7231U/7231T
F_BK7231N = 0x7B3EF230, // Beken 7231N
F_BK7251 = 0x6A82CC42, // Beken 7251/7252
F_BL602 = 0xDE1270B7, // Boufallo 602
F_XR809 = 0x51E903A8, // Xradiotech 809
F_NATIVE = 0xDEADBEEF, // Host-native
@@ -29,6 +30,8 @@ enum ChipType {
RTL8711BN = CHIP_TYPE(F_RTL8710B, 0xFD), // CHIPID_8711BN / QFN48
RTL8711BU = CHIP_TYPE(F_RTL8710B, 0xFC), // CHIPID_8711BG / QFN68
// Beken 72XX
BK7231T = CHIP_TYPE(F_BK7231T, 0x1A), // *SCTRL_CHIP_ID = 0x7231a
BK7231T = CHIP_TYPE(F_BK7231U, 0x1A), // *SCTRL_CHIP_ID = 0x7231a
BK7231N = CHIP_TYPE(F_BK7231N, 0x1C), // *SCTRL_CHIP_ID = 0x7231c
BL2028N = CHIP_TYPE(F_BK7231N, 0x1C), // *SCTRL_CHIP_ID = 0x7231c
BK7252 = CHIP_TYPE(F_BK7251, 0x00), // TODO
};

View File

@@ -39,7 +39,7 @@ void LibreTuya::gpioRecover() {
ChipType LibreTuya::getChipType() {
uint8_t chipId;
EFUSE_OneByteReadROM(9902, 0xF8, &chipId, L25EOUTVOLTAGE);
return CHIP_TYPE_ENUM(F_RTL8710B, chipId);
return CHIP_TYPE_ENUM(FAMILY, chipId);
}
const char *LibreTuya::getChipModel() {

View File

@@ -2,6 +2,7 @@
- [Generic - BK7231N (Tuya QFN32)](../boards/generic-bk7231n-qfn32-tuya/README.md)
- [Generic - BK7231T (Tuya QFN32)](../boards/generic-bk7231t-qfn32-tuya/README.md)
- [Generic - BK7252](../boards/generic-bk7252/README.md)
- [Generic - RTL8710BN (2M/468k)](../boards/generic-rtl8710bn-2mb-468k/README.md)
- [Generic - RTL8710BN (2M/788k)](../boards/generic-rtl8710bn-2mb-788k/README.md)
- [Generic - RTL8710BX (4M/980k)](../boards/generic-rtl8710bx-4mb-980k/README.md)

View File

@@ -1,25 +1,6 @@
{
"build": {
"bkcrypt_coeffs": "510fb093a3cbeadc5993a17ec7adeb03",
"bkboot_version": "1.0.1-bk7231n",
"bkrbl_size_app": "0x107800"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x119000",
"download": "0x12A000+0xA6000",
"calibration": "0x1D0000+0x1000",
"net": "0x1D1000+0x1000",
"tlv": "0x1D2000+0x1000",
"kvs": "0x1D3000+0x8000",
"userdata": "0x1DB000+0x25000"
},
"upload": {
"maximum_size": 1083136
},
"doc": {
"extra": [
"Bootloader and app partitions contain CRC16 sums every 32 bytes. That results in the actual flash offsets/sizes not aligned to sector boundaries. To simplify calculations, the values shown in the table (extracted from bootloader's partition table) were aligned to 4096 bytes."
]
"bkboot_version": "1.0.1-bk7231n"
}
}

View File

@@ -2,11 +2,27 @@
"build": {
"family": "BK7231N",
"ldscript_sdk": "bk7231n_bsp.ld",
"ldscript_arduino": "bk7231n_bsp.ld"
"ldscript_arduino": "bk7231n_bsp.ld",
"bkboot_version": "1.0.1-bk7231n",
"bkrbl_size_app": "0x107800"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x119000",
"download": "0x12A000+0xA6000",
"calibration": "0x1D0000+0x1000",
"net": "0x1D1000+0x1000",
"tlv": "0x1D2000+0x1000",
"kvs": "0x1D3000+0x8000",
"userdata": "0x1DB000+0x25000"
},
"upload": {
"maximum_size": 1083136,
"speed": 460800
},
"connectivity": [
"ble"
],
"doc": {
"params": {
"extra": {

View File

@@ -1,25 +1,6 @@
{
"build": {
"bkcrypt_coeffs": "510fb093a3cbeadc5993a17ec7adeb03",
"bkboot_version": "1.0.5-bk7231s",
"bkrbl_size_app": "0x107800"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x121000",
"download": "0x132000+0xA6000",
"kvs": "0x1D8000+0x8000",
"calibration": "0x1E0000+0x1000",
"tlv": "0x1E1000+0x1000",
"net": "0x1E2000+0x1000",
"userdata": "0x1E3000+0x1D000"
},
"upload": {
"maximum_size": 1083136
},
"doc": {
"extra": [
"Bootloader and app partitions contain CRC16 sums every 32 bytes. That results in the actual flash offsets/sizes not aligned to sector boundaries. To simplify calculations, the values shown in the table (extracted from bootloader's partition table) were aligned to 4096 bytes."
]
"bkboot_version": "1.0.5-bk7231s"
}
}

View File

@@ -1,17 +0,0 @@
{
"build": {
"family": "BK7231T",
"ldscript_sdk": "bk7231_bsp.ld",
"ldscript_arduino": "bk7231_bsp.ld"
},
"upload": {
"speed": 921600
},
"doc": {
"params": {
"extra": {
"Bluetooth": "BLE v4.2"
}
}
}
}

View File

@@ -0,0 +1,33 @@
{
"build": {
"family": "BK7231U",
"ldscript_sdk": "bk7231_bsp.ld",
"ldscript_arduino": "bk7231_bsp.ld",
"bkboot_version": "1.0.8-bk7231u",
"bkrbl_size_app": "0x108700"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x121000",
"download": "0x132000+0xA6000",
"kvs": "0x1D8000+0x8000",
"calibration": "0x1E0000+0x1000",
"tlv": "0x1E1000+0x1000",
"net": "0x1E2000+0x1000",
"userdata": "0x1E3000+0x1D000"
},
"upload": {
"maximum_size": 1083136,
"speed": 921600
},
"connectivity": [
"ble"
],
"doc": {
"params": {
"extra": {
"Bluetooth": "BLE v4.2"
}
}
}
}

View File

@@ -0,0 +1,40 @@
{
"build": {
"family": "BK7251",
"f_cpu": "180000000L",
"ldscript_sdk": "bk7231_bsp.ld",
"ldscript_arduino": "bk7231_bsp.ld",
"bkboot_version": "0.1.3-bk7252",
"bkrbl_size_app": "0x1A0000"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x1BA000",
"filesystem": "0x1CB000+0x119000",
"kvs": "0x2E4000+0x8000",
"download": "0x2EC000+0x112000",
"calibration": "0x3FE000+0x1000",
"tlv": "0x3FF000+0x1000"
},
"debug": {
"gdb_init": [
"mem 0x200000 0x400000 ro"
]
},
"upload": {
"maximum_ram_size": 524288,
"flash_size": 4194304,
"maximum_size": 1703936,
"speed": 921600
},
"connectivity": [
"ble"
],
"doc": {
"params": {
"extra": {
"Bluetooth": "BLE v5.0"
}
}
}
}

View File

@@ -10,8 +10,7 @@
}
},
"connectivity": [
"wifi",
"ble"
"wifi"
],
"debug": {
"protocol": "openocd",
@@ -49,6 +48,9 @@
"General info": "../../docs/platform/beken-72xx/README.md",
"Flashing guide": "../../docs/platform/beken-72xx/flashing.md",
"BkWriter v1.6.0": "https://images.tuyacn.com/smart/bk_writer1.60/bk_writer1.60.exe"
}
},
"extra": [
"Bootloader and app partitions contain CRC16 sums every 32 bytes. That results in the actual flash offsets/sizes not aligned to sector boundaries. To simplify calculations, the values shown in the table (extracted from bootloader's partition table) were aligned to 4096 bytes."
]
}
}

View File

@@ -0,0 +1,186 @@
{
"pcb": {
"ic": {
"10": {
"C_NAME": "GPIO25",
"GPIO": "P25",
"IRQ": null,
"USB": "DP"
},
"11": {
"C_NAME": "GPIO33",
"GPIO": "P33",
"IRQ": null,
"DVP": "PD1"
},
"12": {
"C_NAME": "GPIO32",
"GPIO": "P32",
"IRQ": null,
"DVP": "PD0"
},
"13": {
"C_NAME": "GPIO29",
"GPIO": "P29",
"IRQ": null,
"DVP": "PCLK"
},
"14": {
"C_NAME": "GPIO27",
"GPIO": "P27",
"IRQ": null,
"DVP": "MCLK"
},
"15": {
"C_NAME": "GPIO30",
"GPIO": "P30",
"IRQ": null,
"DVP": "HSYNC"
},
"16": {
"C_NAME": "GPIO31",
"GPIO": "P31",
"IRQ": null,
"DVP": "VSYNC"
},
"17": {
"C_NAME": "GPIO34",
"GPIO": "P34",
"IRQ": null,
"DVP": "PD2"
},
"18": {
"C_NAME": "GPIO35",
"GPIO": "P35",
"IRQ": null,
"DVP": "PD3"
},
"19": {
"C_NAME": "GPIO36",
"GPIO": "P36",
"IRQ": null,
"DVP": "PD4"
},
"20": {
"C_NAME": "GPIO37",
"GPIO": "P37",
"IRQ": null,
"DVP": "PD5"
},
"21": {
"C_NAME": "GPIO38",
"GPIO": "P38",
"IRQ": null,
"DVP": "PD6"
},
"22": {
"C_NAME": "GPIO39",
"GPIO": "P39",
"IRQ": null,
"DVP": "PD7"
},
"23": {
"C_NAME": "GPIO14",
"GPIO": "P14",
"IRQ": null,
"SD": "CLK",
"SPI": "SCK"
},
"24": {
"C_NAME": "GPIO16",
"GPIO": "P16",
"IRQ": null,
"SD": "D0",
"SPI": "MOSI"
},
"25": {
"C_NAME": "GPIO15",
"GPIO": "P15",
"IRQ": null,
"SD": "CMD",
"SPI": "CS"
},
"26": {
"C_NAME": "GPIO17",
"GPIO": "P17",
"IRQ": null,
"SD": "D1",
"SPI": "MISO"
},
"27": {
"C_NAME": "GPIO23",
"GPIO": "P23",
"IRQ": null,
"ADC": 3,
"JTAG": "TDO",
"FLASH": "FSO"
},
"28": {
"C_NAME": "GPIO22",
"GPIO": "P22",
"IRQ": null,
"JTAG": "TDI",
"FLASH": "FSI"
},
"29": {
"C_NAME": "GPIO21",
"GPIO": "P21",
"IRQ": null,
"I2C": "1_SDA",
"JTAG": "TMS",
"I2S": "MCLK",
"FLASH": "^FCS"
},
"30": {
"C_NAME": "GPIO20",
"GPIO": "P20",
"IRQ": null,
"I2C": "1_SCL",
"JTAG": "TCK",
"FLASH": "FSCK"
},
"31": {
"IO": "I",
"CTRL": "CEN"
},
"32": {
"C_NAME": "GPIO8",
"GPIO": "P8",
"IRQ": null,
"PWM": 2
},
"33": {
"C_NAME": "GPIO9",
"GPIO": "P9",
"IRQ": null,
"PWM": 3
},
"34": {
"C_NAME": "GPIO10",
"GPIO": "P10",
"IRQ": null,
"UART": "1_RX"
},
"35": {
"C_NAME": "GPIO11",
"GPIO": "P11",
"IRQ": null,
"UART": "1_TX"
},
"36": {
"C_NAME": "GPIO1",
"GPIO": "P1",
"IRQ": null,
"UART": "2_RX",
"I2C": "2_SDA"
},
"37": {
"C_NAME": "GPIO0",
"GPIO": "P0",
"IRQ": null,
"UART": "2_TX",
"I2C": "2_SCL"
}
}
}
}

View File

@@ -0,0 +1,259 @@
{
"pcb": {
"ic": {
"13": {
"C_NAME": "GPIO28",
"GPIO": "P28",
"IRQ": null,
"USB": "DN"
},
"14": {
"C_NAME": "GPIO25",
"GPIO": "P25",
"IRQ": null,
"USB": "DP"
},
"16": {
"C_NAME": "GPIO12",
"GPIO": "P12",
"IRQ": null,
"ADC": 6,
"UART": "1_CTS"
},
"17": {
"C_NAME": "GPIO13",
"GPIO": "P13",
"IRQ": null,
"ADC": 7,
"UART": "1_RTS"
},
"18": {
"C_NAME": "GPIO33",
"GPIO": "P33",
"IRQ": null,
"DVP": "PD1"
},
"19": {
"C_NAME": "GPIO32",
"GPIO": "P32",
"IRQ": null,
"DVP": "PD0"
},
"20": {
"C_NAME": "GPIO29",
"GPIO": "P29",
"IRQ": null,
"DVP": "PCLK"
},
"21": {
"C_NAME": "GPIO27",
"GPIO": "P27",
"IRQ": null,
"DVP": "MCLK"
},
"22": {
"C_NAME": "GPIO30",
"GPIO": "P30",
"IRQ": null,
"DVP": "HSYNC"
},
"23": {
"C_NAME": "GPIO31",
"GPIO": "P31",
"IRQ": null,
"DVP": "VSYNC"
},
"24": {
"C_NAME": "GPIO34",
"GPIO": "P34",
"IRQ": null,
"DVP": "PD2"
},
"25": {
"C_NAME": "GPIO35",
"GPIO": "P35",
"IRQ": null,
"DVP": "PD3"
},
"26": {
"C_NAME": "GPIO36",
"GPIO": "P36",
"IRQ": null,
"DVP": "PD4"
},
"27": {
"C_NAME": "GPIO37",
"GPIO": "P37",
"IRQ": null,
"DVP": "PD5"
},
"28": {
"C_NAME": "GPIO38",
"GPIO": "P38",
"IRQ": null,
"DVP": "PD6"
},
"29": {
"C_NAME": "GPIO39",
"GPIO": "P39",
"IRQ": null,
"DVP": "PD7"
},
"30": {
"C_NAME": "GPIO19",
"GPIO": "P19",
"IRQ": null,
"SD": "D1"
},
"31": {
"C_NAME": "GPIO17",
"GPIO": "P17",
"IRQ": null,
"SD": "D1",
"SPI": "MISO"
},
"32": {
"C_NAME": "GPIO14",
"GPIO": "P14",
"IRQ": null,
"SD": "CLK",
"SPI": "SCK"
},
"33": {
"C_NAME": "GPIO16",
"GPIO": "P16",
"IRQ": null,
"SD": "D0",
"SPI": "MOSI"
},
"34": {
"C_NAME": "GPIO15",
"GPIO": "P15",
"IRQ": null,
"SD": "CMD",
"SPI": "CS"
},
"35": {
"C_NAME": "GPIO18",
"GPIO": "P18",
"IRQ": null,
"SD": "D2"
},
"36": {
"C_NAME": "GPIO24",
"GPIO": "P24",
"IRQ": null,
"PWM": 4
},
"37": {
"C_NAME": "GPIO26",
"GPIO": "P26",
"IRQ": null,
"PWM": 5,
"IRDA": null
},
"38": {
"C_NAME": "GPIO23",
"GPIO": "P23",
"IRQ": null,
"ADC": 3,
"JTAG": "TDO",
"FLASH": "FSO"
},
"39": {
"C_NAME": "GPIO22",
"GPIO": "P22",
"IRQ": null,
"JTAG": "TDI",
"FLASH": "FSI"
},
"40": {
"C_NAME": "GPIO21",
"GPIO": "P21",
"IRQ": null,
"I2C": "1_SDA",
"JTAG": "TMS",
"I2S": "MCLK",
"FLASH": "^FCS"
},
"41": {
"C_NAME": "GPIO20",
"GPIO": "P20",
"IRQ": null,
"I2C": "1_SCL",
"JTAG": "TCK",
"FLASH": "FSCK"
},
"43": {
"IO": "I",
"CTRL": "CEN"
},
"45": {
"C_NAME": "GPIO5",
"GPIO": "P5",
"IRQ": null,
"ADC": 2,
"I2S": "DOUT"
},
"46": {
"C_NAME": "GPIO3",
"GPIO": "P3",
"IRQ": null,
"ADC": 5,
"I2S": "WS"
},
"47": {
"C_NAME": "GPIO4",
"GPIO": "P4",
"IRQ": null,
"ADC": 1,
"I2S": "DIN"
},
"48": {
"C_NAME": "GPIO2",
"GPIO": "P2",
"IRQ": null,
"ADC": 4,
"I2S": "SCK"
},
"49": {
"C_NAME": "GPIO6",
"GPIO": "P6",
"IRQ": null,
"PWM": 0
},
"50": {
"C_NAME": "GPIO7",
"GPIO": "P7",
"IRQ": null,
"PWM": 1
},
"62": {
"C_NAME": "GPIO10",
"GPIO": "P10",
"IRQ": null,
"UART": "1_RX"
},
"63": {
"C_NAME": "GPIO11",
"GPIO": "P11",
"IRQ": null,
"UART": "1_TX"
},
"64": {
"C_NAME": "GPIO1",
"GPIO": "P1",
"IRQ": null,
"UART": "2_RX",
"I2C": "2_SDA"
},
"65": {
"C_NAME": "GPIO0",
"GPIO": "P0",
"IRQ": null,
"UART": "2_TX",
"I2C": "2_SCL"
}
}
}
}

View File

@@ -3,7 +3,7 @@
"realtek-ambz",
"realtek-ambz-2mb-468k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/bw12"
],
"build": {

View File

@@ -3,7 +3,7 @@
"realtek-ambz2",
"realtek-ambz2-8720",
"realtek-ambz2-2mb-992k",
"pcb/ic-rtl8720cf",
"ic/rtl8720cf",
"pcb/bw15"
],
"build": {

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/cb2l",
"pcb/cb2l-test"
],

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/cb2s",
"pcb/cb2s-test"
],

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/cb3l"
],
"build": {

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/cb3s"
],
"build": {

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/cb3se"
],
"build": {

View File

@@ -4,7 +4,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32"
"ic/bk7231-qfn32"
],
"build": {
"mcu": "bk7231n",

View File

@@ -2,9 +2,9 @@
"_base": [
"generic",
"beken-72xx",
"beken-7231t",
"beken-7231u",
"beken-7231t-tuya",
"pcb/ic-bk7231-qfn32"
"ic/bk7231-qfn32"
],
"build": {
"mcu": "bk7231t",

193
boards/generic-bk7252.json Normal file
View File

@@ -0,0 +1,193 @@
{
"_base": [
"generic",
"beken-72xx",
"beken-7252",
"ic/bk7252-qfn68"
],
"build": {
"mcu": "bk7252",
"variant": "generic-bk7252"
},
"name": "Generic - BK7252",
"symbol": "BK7252",
"url": "https://kuba2k2.github.io/libretuya/boards/generic-bk7252/",
"vendor": "Generic",
"pcb": {
"pinout": {
"1": {
"IC": 65,
"ARD": "D0"
},
"2": {
"IC": 64,
"ARD": "D1"
},
"3": {
"IC": 48,
"ARD": [
"D2",
"A5"
]
},
"4": {
"IC": 46,
"ARD": [
"D3",
"A4"
]
},
"5": {
"IC": 47,
"ARD": [
"D4",
"A1"
]
},
"6": {
"IC": 45,
"ARD": [
"D5",
"A2"
]
},
"7": {
"IC": 49,
"ARD": "D6"
},
"8": {
"IC": 50,
"ARD": "D7"
},
"9": {
"IC": 62,
"ARD": "D8"
},
"10": {
"IC": 63,
"ARD": "D9"
},
"11": {
"IC": 16,
"ARD": [
"D10",
"A6"
]
},
"12": {
"IC": 17,
"ARD": [
"D11",
"A7"
]
},
"13": {
"IC": 32,
"ARD": "D12"
},
"14": {
"IC": 34,
"ARD": "D13"
},
"15": {
"IC": 33,
"ARD": "D14"
},
"16": {
"IC": 31,
"ARD": "D15"
},
"17": {
"IC": 35,
"ARD": "D16"
},
"18": {
"IC": 30,
"ARD": "D17"
},
"19": {
"IC": 41,
"ARD": "D18"
},
"20": {
"IC": 40,
"ARD": "D19"
},
"21": {
"IC": 39,
"ARD": "D20"
},
"22": {
"IC": 38,
"ARD": [
"D21",
"A3"
]
},
"23": {
"IC": 36,
"ARD": "D22"
},
"24": {
"IC": 14,
"ARD": "D23"
},
"25": {
"IC": 37,
"ARD": "D24"
},
"26": {
"IC": 21,
"ARD": "D25"
},
"27": {
"IC": 13,
"ARD": "D26"
},
"28": {
"IC": 20,
"ARD": "D27"
},
"29": {
"IC": 22,
"ARD": "D28"
},
"30": {
"IC": 23,
"ARD": "D29"
},
"31": {
"IC": 19,
"ARD": "D30"
},
"32": {
"IC": 18,
"ARD": "D31"
},
"33": {
"IC": 24,
"ARD": "D32"
},
"34": {
"IC": 25,
"ARD": "D33"
},
"35": {
"IC": 26,
"ARD": "D34"
},
"36": {
"IC": 27,
"ARD": "D35"
},
"37": {
"IC": 28,
"ARD": "D36"
},
"38": {
"IC": 29,
"ARD": "D37"
}
}
}
}

View File

@@ -0,0 +1,113 @@
# Generic - BK7252
*by Generic*
[Product page](https://kuba2k2.github.io/libretuya/boards/generic-bk7252/)
- [General info](../../docs/platform/beken-72xx/README.md)
- [Flashing guide](../../docs/platform/beken-72xx/flashing.md)
- [BkWriter v1.6.0](https://images.tuyacn.com/smart/bk_writer1.60/bk_writer1.60.exe)
Parameter | Value
-------------|----------------------------------
Board code | `generic-bk7252`
MCU | BK7252
Manufacturer | Beken
Series | BK72XX
Frequency | 180 MHz
Flash size | 4 MiB
RAM size | 512 KiB
Voltage | 3.0V - 3.6V
I/O | 38x GPIO, 4x PWM, 2x UART, 7x ADC
Wi-Fi | 802.11 b/g/n
Bluetooth | BLE v5.0
## Usage
**Board code:** `generic-bk7252`
In `platformio.ini`:
```ini
[env:generic-bk7252]
platform = libretuya
board = generic-bk7252
framework = arduino
```
In ESPHome YAML:
```yaml
libretuya:
board: generic-bk7252
framework:
version: dev
```
## Arduino Core pin mapping
No. | Pin | UART | I²C | SPI | PWM | Other
----|-----------|-----------|----------|------|------|----------
D0 | P0 | UART2_TX | I2C2_SCL | | |
D1 | P1 | UART2_RX | I2C2_SDA | | |
D2 | P2 | | | | |
D3 | P3 | | | | |
D4 | P4 | | | | |
D5 | P5 | | | | |
D6 | P6 | | | | PWM0 |
D7 | P7 | | | | PWM1 |
D8 | P10 | UART1_RX | | | |
D9 | P11 | UART1_TX | | | |
D10 | P12 | UART1_CTS | | | |
D11 | P13 | UART1_RTS | | | |
D12 | P14 | | | SCK | |
D13 | P15 | | | CS | |
D14 | P16 | | | MOSI | |
D15 | P17 | | | MISO | |
D16 | P18 | | | | |
D17 | P19 | | | | |
D18 | P20 | | I2C1_SCL | | | TCK
D19 | P21 | | I2C1_SDA | | | TMS
D20 | P22 | | | | | TDI
D21 | P23 | | | | | TDO
D22 | P24 | | | | PWM4 |
D23 | P25 | | | | |
D24 | P26 | | | | PWM5 |
D25 | P27 | | | | | DVP_MCLK
D26 | P28 | | | | |
D27 | P29 | | | | | DVP_PCLK
D28 | P30 | | | | | DVP_HSYNC
D29 | P31 | | | | | DVP_VSYNC
D30 | P32 | | | | | DVP_PD0
D31 | P33 | | | | | DVP_PD1
D32 | P34 | | | | | DVP_PD2
D33 | P35 | | | | | DVP_PD3
D34 | P36 | | | | | DVP_PD4
D35 | P37 | | | | | DVP_PD5
D36 | P38 | | | | | DVP_PD6
D37 | P39 | | | | | DVP_PD7
A1 | P4, ADC1 | | | | |
A2 | P5, ADC2 | | | | |
A3 | P23, ADC3 | | | | |
A4 | P3, ADC5 | | | | |
A5 | P2, ADC4 | | | | |
A6 | P12, ADC6 | | | | |
A7 | P13, ADC7 | | | | |
## Flash memory map
Flash size: 4 MiB / 4,194,304 B / 0x400000
Hex values are in bytes.
Name | Start | Length | End
----------------|----------|--------------------|---------
Bootloader | 0x000000 | 68 KiB / 0x11000 | 0x011000
App Image | 0x011000 | 1.7 MiB / 0x1BA000 | 0x1CB000
File System | 0x1CB000 | 1.1 MiB / 0x119000 | 0x2E4000
Key-Value Store | 0x2E4000 | 32 KiB / 0x8000 | 0x2EC000
OTA Image | 0x2EC000 | 1.1 MiB / 0x112000 | 0x3FE000
Calibration | 0x3FE000 | 4 KiB / 0x1000 | 0x3FF000
TLV Store | 0x3FF000 | 4 KiB / 0x1000 | 0x400000
Bootloader and app partitions contain CRC16 sums every 32 bytes. That results in the actual flash offsets/sizes not aligned to sector boundaries. To simplify calculations, the values shown in the table (extracted from bootloader's partition table) were aligned to 4096 bytes.

View File

@@ -0,0 +1 @@
#include "variant.h"

View File

@@ -0,0 +1,88 @@
/* This file was auto-generated from generic-bk7252.json using boardgen */
#include <Arduino.h>
extern "C" {
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
// D0: P0, UART2_TX, I2C2_SCL
{GPIO0, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: P1, UART2_RX, I2C2_SDA
{GPIO1, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D2: P2, ADC4, SCK
{GPIO2, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2S, PIN_NONE, 0},
// D3: P3, ADC5, WS
{GPIO3, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2S, PIN_NONE, 0},
// D4: P4, ADC1, DIN
{GPIO4, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2S, PIN_NONE, 0},
// D5: P5, ADC2, DOUT
{GPIO5, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2S, PIN_NONE, 0},
// D6: P6, PWM0
{GPIO6, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D7: P7, PWM1
{GPIO7, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D8: P10, UART1_RX
{GPIO10, PIN_GPIO | PIN_IRQ | PIN_UART, PIN_NONE, 0},
// D9: P11, UART1_TX
{GPIO11, PIN_GPIO | PIN_IRQ | PIN_UART, PIN_NONE, 0},
// D10: P12, ADC6, UART1_CTS
{GPIO12, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_UART, PIN_NONE, 0},
// D11: P13, ADC7, UART1_RTS
{GPIO13, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_UART, PIN_NONE, 0},
// D12: P14, SD_CLK, SCK
{GPIO14, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D13: P15, SD_CMD, CS
{GPIO15, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D14: P16, SD_D0, MOSI
{GPIO16, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D15: P17, SD_D1, MISO
{GPIO17, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
// D16: P18, SD_D2
{GPIO18, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D17: P19, SD_D1
{GPIO19, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D18: P20, I2C1_SCL, TCK, FSCK
{GPIO20, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_JTAG, PIN_NONE, 0},
// D19: P21, I2C1_SDA, TMS, MCLK, ^FCS
{GPIO21, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_JTAG, PIN_NONE, 0},
// D20: P22, TDI, FSI
{GPIO22, PIN_GPIO | PIN_IRQ | PIN_JTAG, PIN_NONE, 0},
// D21: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D22: P24, PWM4
{GPIO24, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D23: P25, DP
{GPIO25, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D24: P26, PWM5, IRDA
{GPIO26, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D25: P27, DVP_MCLK
{GPIO27, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D26: P28, DN
{GPIO28, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D27: P29, DVP_PCLK
{GPIO29, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D28: P30, DVP_HSYNC
{GPIO30, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D29: P31, DVP_VSYNC
{GPIO31, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D30: P32, DVP_PD0
{GPIO32, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D31: P33, DVP_PD1
{GPIO33, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D32: P34, DVP_PD2
{GPIO34, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D33: P35, DVP_PD3
{GPIO35, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D34: P36, DVP_PD4
{GPIO36, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D35: P37, DVP_PD5
{GPIO37, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D36: P38, DVP_PD6
{GPIO38, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
// D37: P39, DVP_PD7
{GPIO39, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
};
// clang-format on
} // extern "C"

View File

@@ -0,0 +1,119 @@
/* This file was auto-generated from generic-bk7252.json using boardgen */
#pragma once
#include <WVariant.h>
// clang-format off
// Pins
// ----
#define PINS_COUNT 38
#define NUM_DIGITAL_PINS 38
#define NUM_ANALOG_INPUTS 7
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A5 2u // GPIO2
#define PIN_A4 3u // GPIO3
#define PIN_A1 4u // GPIO4
#define PIN_A2 5u // GPIO5
#define PIN_A6 10u // GPIO12
#define PIN_A7 11u // GPIO13
#define PIN_A3 21u // GPIO23
#define A5 PIN_A5
#define A4 PIN_A4
#define A1 PIN_A1
#define A2 PIN_A2
#define A6 PIN_A6
#define A7 PIN_A7
#define A3 PIN_A3
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 18u // GPIO20
#define PIN_WIRE1_SDA 19u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_CTS 10u // GPIO12
#define PIN_SERIAL1_RTS 11u // GPIO13
#define PIN_SERIAL1_RX 8u // GPIO10
#define PIN_SERIAL1_TX 9u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_FUNCTION_ADC1 4u // GPIO4
#define PIN_FUNCTION_ADC2 5u // GPIO5
#define PIN_FUNCTION_ADC3 21u // GPIO23
#define PIN_FUNCTION_ADC4 2u // GPIO2
#define PIN_FUNCTION_ADC5 3u // GPIO3
#define PIN_FUNCTION_ADC6 10u // GPIO12
#define PIN_FUNCTION_ADC7 11u // GPIO13
#define PIN_FUNCTION_CS 13u // GPIO15
#define PIN_FUNCTION_CTS1 10u // GPIO12
#define PIN_FUNCTION_MISO 15u // GPIO17
#define PIN_FUNCTION_MOSI 14u // GPIO16
#define PIN_FUNCTION_P0 0u // GPIO0
#define PIN_FUNCTION_P1 1u // GPIO1
#define PIN_FUNCTION_P2 2u // GPIO2
#define PIN_FUNCTION_P3 3u // GPIO3
#define PIN_FUNCTION_P4 4u // GPIO4
#define PIN_FUNCTION_P5 5u // GPIO5
#define PIN_FUNCTION_P6 6u // GPIO6
#define PIN_FUNCTION_P7 7u // GPIO7
#define PIN_FUNCTION_P10 8u // GPIO10
#define PIN_FUNCTION_P11 9u // GPIO11
#define PIN_FUNCTION_P12 10u // GPIO12
#define PIN_FUNCTION_P13 11u // GPIO13
#define PIN_FUNCTION_P14 12u // GPIO14
#define PIN_FUNCTION_P15 13u // GPIO15
#define PIN_FUNCTION_P16 14u // GPIO16
#define PIN_FUNCTION_P17 15u // GPIO17
#define PIN_FUNCTION_P18 16u // GPIO18
#define PIN_FUNCTION_P19 17u // GPIO19
#define PIN_FUNCTION_P20 18u // GPIO20
#define PIN_FUNCTION_P21 19u // GPIO21
#define PIN_FUNCTION_P22 20u // GPIO22
#define PIN_FUNCTION_P23 21u // GPIO23
#define PIN_FUNCTION_P24 22u // GPIO24
#define PIN_FUNCTION_P25 23u // GPIO25
#define PIN_FUNCTION_P26 24u // GPIO26
#define PIN_FUNCTION_P27 25u // GPIO27
#define PIN_FUNCTION_P28 26u // GPIO28
#define PIN_FUNCTION_P29 27u // GPIO29
#define PIN_FUNCTION_P30 28u // GPIO30
#define PIN_FUNCTION_P31 29u // GPIO31
#define PIN_FUNCTION_P32 30u // GPIO32
#define PIN_FUNCTION_P33 31u // GPIO33
#define PIN_FUNCTION_P34 32u // GPIO34
#define PIN_FUNCTION_P35 33u // GPIO35
#define PIN_FUNCTION_P36 34u // GPIO36
#define PIN_FUNCTION_P37 35u // GPIO37
#define PIN_FUNCTION_P38 36u // GPIO38
#define PIN_FUNCTION_P39 37u // GPIO39
#define PIN_FUNCTION_PWM0 6u // GPIO6
#define PIN_FUNCTION_PWM1 7u // GPIO7
#define PIN_FUNCTION_PWM4 22u // GPIO24
#define PIN_FUNCTION_PWM5 24u // GPIO26
#define PIN_FUNCTION_RTS1 11u // GPIO13
#define PIN_FUNCTION_RX1 8u // GPIO10
#define PIN_FUNCTION_RX2 1u // GPIO1
#define PIN_FUNCTION_SCK 12u // GPIO14
#define PIN_FUNCTION_SCL1 18u // GPIO20
#define PIN_FUNCTION_SCL2 0u // GPIO0
#define PIN_FUNCTION_SDA1 19u // GPIO21
#define PIN_FUNCTION_SDA2 1u // GPIO1
#define PIN_FUNCTION_TX1 9u // GPIO11
#define PIN_FUNCTION_TX2 0u // GPIO0

View File

@@ -3,7 +3,7 @@
"generic",
"realtek-ambz",
"realtek-ambz-2mb-468k",
"pcb/ic-rtl8710bn"
"ic/rtl8710bn"
],
"build": {
"mcu": "rtl8710bn",

View File

@@ -3,7 +3,7 @@
"generic",
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn"
"ic/rtl8710bn"
],
"build": {
"mcu": "rtl8710bn",

View File

@@ -4,7 +4,7 @@
"realtek-ambz",
"realtek-ambz-4mb-980k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn"
"ic/rtl8710bn"
],
"build": {
"mcu": "rtl8710bx",

View File

@@ -4,7 +4,7 @@
"realtek-ambz2",
"realtek-ambz2-8720",
"realtek-ambz2-2mb-992k",
"pcb/ic-rtl8720cf"
"ic/rtl8720cf"
],
"build": {
"mcu": "rtl8720cf",

View File

@@ -3,7 +3,7 @@
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/lsc-lma35"
],
"build": {

View File

@@ -1,9 +1,9 @@
{
"_base": [
"beken-72xx",
"beken-7231t",
"beken-7231u",
"beken-7231t-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/wb2l",
"pcb/wb2l-test"
],

View File

@@ -1,9 +1,9 @@
{
"_base": [
"beken-72xx",
"beken-7231t",
"beken-7231u",
"beken-7231t-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/wb2s",
"pcb/wb2s-test"
],

View File

@@ -1,9 +1,9 @@
{
"_base": [
"beken-72xx",
"beken-7231t",
"beken-7231u",
"beken-7231t-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/wb3l"
],
"build": {

View File

@@ -1,9 +1,9 @@
{
"_base": [
"beken-72xx",
"beken-7231t",
"beken-7231u",
"beken-7231t-tuya",
"pcb/ic-bk7231-qfn32",
"ic/bk7231-qfn32",
"pcb/wb3s"
],
"build": {

View File

@@ -2,7 +2,7 @@
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr2-base",
"pcb/wr2"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr2-base",
"pcb/wr2e"
],

View File

@@ -3,7 +3,7 @@
"realtek-ambz",
"realtek-ambz-2mb-788k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr2l-base",
"pcb/wr2l"
],

View File

@@ -3,7 +3,7 @@
"realtek-ambz",
"realtek-ambz-2mb-788k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr2l-base",
"pcb/wr2le"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr3-base",
"pcb/wr3"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr3-base",
"pcb/wr3e"
],

View File

@@ -3,7 +3,7 @@
"realtek-ambz",
"realtek-ambz-2mb-788k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr3l-base",
"pcb/wr3"
],

View File

@@ -3,7 +3,7 @@
"realtek-ambz",
"realtek-ambz-2mb-788k",
"realtek-ambz-bx",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr3l-base",
"pcb/wr3e"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"pcb/ic-rtl8710bn",
"ic/rtl8710bn",
"pcb/wr3-base",
"pcb/wr3n"
],

View File

@@ -32,7 +32,7 @@ SOC_BK7236 = 6
SOC_NAMES = {
SOC_BK7231: "bk7231",
SOC_BK7231U: "bk7231u",
SOC_BK7221U: "bk7221u",
SOC_BK7251: "bk7251",
SOC_BK7271: "bk7271",
SOC_BK7231N: "bk7231n",
SOC_BK7236: "bk7236",
@@ -517,7 +517,7 @@ if env.Cfg("ATSVR_CFG"):
"+<*>",
],
)
if env.Cfg("CFG_USB"):
if env.Cfg("CFG_USB") or env.Cfg("CFG_USE_SDCARD_HOST"):
env.AddLibrary(
name="bdk_driver_usb",
base_dir=ROOT_DIR,

View File

@@ -16,7 +16,7 @@ env.SConscript("utils/config.py", exports="env")
env.SConscript("utils/env.py", exports="env")
env.SConscript("utils/flash.py", exports="env")
env.SConscript("utils/libs.py", exports="env")
env.SConscript("utils/uf2.py", exports="env")
env.SConscript("utils/ltchiptool.py", exports="env")
# Vendor-specific library ports
env.SConscript("libs/flashdb.py", exports="env")
env.SConscript("libs/lwip.py", exports="env")
@@ -69,7 +69,7 @@ targets = [target_elf]
if "UF2OTA" in env:
target_uf2 = env.BuildUF2OTA(target_elf)
targets.append(target_uf2)
env.AddUF2Uploader(target_uf2)
env.AddFlashWriter(target_uf2)
elif "IMG_FW" in env:
target_fw = env.subst("$IMG_FW")
env.AddPlatformTarget("upload", target_fw, env["UPLOAD_ACTIONS"], "Upload")

View File

@@ -74,8 +74,10 @@ def env_add_defaults(env, platform, board):
VARIANT=board.get("build.variant"),
LDSCRIPT_SDK=board.get("build.ldscript_sdk"),
LDSCRIPT_ARDUINO=board.get("build.ldscript_arduino"),
# ltchiptool variables
LTCHIPTOOL='"${PYTHONEXE}" -m ltchiptool',
# ltchiptool config:
# -r output raw log messages
# -i 1 indent log messages
LTCHIPTOOL='"${PYTHONEXE}" -m ltchiptool -r -i 1',
# Fix for link2bin to get tmpfile name in argv
LINKCOM="${LINK} ${LINKARGS}",
LINKARGS="${TEMPFILE('-o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS', '$LINKCOMSTR')}",

View File

@@ -53,7 +53,7 @@ def env_uf2ota(env, *args, **kwargs):
env.Execute(" ".join(cmd))
def env_uf2upload(env, target):
def env_flash_write(env, target):
protocol = env.subst("${UPLOAD_PROTOCOL}")
actions = []
# from platform-espressif32/builder/main.py
@@ -61,7 +61,7 @@ def env_uf2upload(env, target):
# upload via UART
env["UPLOADERFLAGS_UF2"] = [
"${UF2OUT}",
"uart",
"-d",
"${UPLOAD_PORT}",
"-b",
"${UPLOAD_SPEED}",
@@ -79,7 +79,7 @@ def env_uf2upload(env, target):
# add main upload target
env.Replace(
UPLOADER="${LTCHIPTOOL} uf2 upload",
UPLOADER="${LTCHIPTOOL} flash write",
UPLOADCMD="${UPLOADER} ${UPLOADERFLAGS_UF2} ${UPLOADERFLAGS}",
)
actions.append(env.VerboseAction("${UPLOADCMD}", "Uploading ${UF2OUT_BASE}"))
@@ -93,4 +93,4 @@ env.Append(
)
)
)
env.AddMethod(env_uf2upload, "AddUF2Uploader")
env.AddMethod(env_flash_write, "AddFlashWriter")

View File

@@ -4,7 +4,8 @@ Name | MCU
--------------------------------------------------------------------------|-----------|-------|---------|-------------|-------|-----|--------|----------------
**Generic** | | | | | | | |
[BK7231N (Tuya QFN32)](../../boards/generic-bk7231n-qfn32-tuya/README.md) | BK7231N | 2 MiB | 256 KiB | 19 (19 I/O) | ✔️ | ✔️ | ❌ | `beken-7231n`
[BK7231T (Tuya QFN32)](../../boards/generic-bk7231t-qfn32-tuya/README.md) | BK7231T | 2 MiB | 256 KiB | 19 (19 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
[BK7231T (Tuya QFN32)](../../boards/generic-bk7231t-qfn32-tuya/README.md) | BK7231T | 2 MiB | 256 KiB | 19 (19 I/O) | ✔️ | ✔️ | ❌ | `beken-7231u`
[BK7252](../../boards/generic-bk7252/README.md) | BK7252 | 4 MiB | 512 KiB | 38 (38 I/O) | ✔️ | ✔️ | ❌ | `beken-7251`
[RTL8710BN (2M/468k)](../../boards/generic-rtl8710bn-2mb-468k/README.md) | RTL8710BN | 2 MiB | 256 KiB | 18 (18 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
[RTL8710BN (2M/788k)](../../boards/generic-rtl8710bn-2mb-788k/README.md) | RTL8710BN | 2 MiB | 256 KiB | 18 (18 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
[RTL8710BX (4M/980k)](../../boards/generic-rtl8710bx-4mb-980k/README.md) | RTL8710BX | 4 MiB | 256 KiB | 17 (17 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
@@ -18,10 +19,10 @@ Name | MCU
[CB3L](../../boards/cb3l/README.md) | BK7231N | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ✔️ | ❌ | `beken-7231n`
[CB3S](../../boards/cb3s/README.md) | BK7231N | 2 MiB | 256 KiB | 22 (16 I/O) | ✔️ | ✔️ | ❌ | `beken-7231n`
[CB3SE](../../boards/cb3se/README.md) | BK7231N | 2 MiB | 256 KiB | 22 (17 I/O) | ✔️ | ✔️ | ❌ | `beken-7231n`
[WB2L](../../boards/wb2l/README.md) | BK7231T | 2 MiB | 256 KiB | 7 (5 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
[WB2S](../../boards/wb2s/README.md) | BK7231T | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
[WB3L](../../boards/wb3l/README.md) | BK7231T | 2 MiB | 256 KiB | 21 (17 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
[WB3S](../../boards/wb3s/README.md) | BK7231T | 2 MiB | 256 KiB | 22 (16 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
[WB2L](../../boards/wb2l/README.md) | BK7231T | 2 MiB | 256 KiB | 7 (5 I/O) | ✔️ | ✔️ | ❌ | `beken-7231u`
[WB2S](../../boards/wb2s/README.md) | BK7231T | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ✔️ | ❌ | `beken-7231u`
[WB3L](../../boards/wb3l/README.md) | BK7231T | 2 MiB | 256 KiB | 21 (17 I/O) | ✔️ | ✔️ | ❌ | `beken-7231u`
[WB3S](../../boards/wb3s/README.md) | BK7231T | 2 MiB | 256 KiB | 22 (16 I/O) | ✔️ | ✔️ | ❌ | `beken-7231u`
[WR2](../../boards/wr2/README.md) | RTL8710BN | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
[WR2E](../../boards/wr2e/README.md) | RTL8710BN | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
[WR3](../../boards/wr3/README.md) | RTL8710BN | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`

View File

@@ -4,6 +4,9 @@
- BK7231S
- BK7231T
- BK7231U
- BK7251
- BK7252
- BL2028N
- NATIVE
- RTL8710BN
- RTL8710BX

View File

@@ -1,13 +1,14 @@
<!-- This file is auto-generated -->
Title | Name (parent) | Code | Short name & ID | Arduino Core | Source SDK
--------------------------------------------------------------------|---------------------------------|----------------------|-------------------------|--------------|----------------------------------------------------------------------------------
Realtek Ameba1 | `-` | `-` | `RTL8710A` (0x9FFFD543) | ❌ | -
[Realtek AmebaZ](https://www.amebaiot.com/en/amebaz/) | `realtek-ambz` (`realtek-amb`) | `ambz` (`amb`) | `RTL8710B` (0x22E0D6FC) | ✔️ | `framework-realtek-amb1` ([amb1_sdk](https://github.com/ambiot/amb1_sdk))
[Realtek AmebaZ2](https://www.amebaiot.com/en/amebaz2/) | `realtek-ambz2` (`realtek-amb`) | `ambz2` (`amb`) | `RTL8720C` (0xE08F7564) | ❌ | `framework-realtek-ambz2` ([ambz2_sdk](https://github.com/ambiot/ambz2_sdk))
Realtek AmebaD | `-` | `-` | `RTL8720D` (0x3379CFE2) | ❌ | -
[Beken 7231T](http://www.bekencorp.com/en/goods/detail/cid/7.html) | `beken-7231t` (`beken-72xx`) | `bk7231t` (`bk72xx`) | `BK7231T` (0x675A40B0) | ✔️ | `framework-beken-bdk` ([bdk_freertos](https://github.com/bekencorp/bdk_freertos))
[Beken 7231N](http://www.bekencorp.com/en/goods/detail/cid/39.html) | `beken-7231n` (`beken-72xx`) | `bk7231n` (`bk72xx`) | `BK7231N` (0x7B3EF230) | ✔️ | `framework-beken-bdk` ([bdk_freertos](https://github.com/bekencorp/bdk_freertos))
Boufallo 602 | `-` | `-` | `BL602` (0xDE1270B7) | | -
Xradiotech 809 | `-` | `-` | `XR809` (0x51E903A8) | ❌ | -
Native host architecture | `host-native` | `native` | `NATIVE` (0xDEADBEEF) | ❌ | -
Title | Name (parent) | Code | Short name & ID | Arduino Core | Source SDK
--------------------------------------------------------------------------|---------------------------------|----------------------|-------------------------|--------------|----------------------------------------------------------------------------------
Realtek Ameba1 | `-` | `-` | `RTL8710A` (0x9FFFD543) | ❌ | -
[Realtek AmebaZ](https://www.amebaiot.com/en/amebaz/) | `realtek-ambz` (`realtek-amb`) | `ambz` (`amb`) | `RTL8710B` (0x22E0D6FC) | ✔️ | `framework-realtek-amb1` ([amb1_sdk](https://github.com/ambiot/amb1_sdk))
[Realtek AmebaZ2](https://www.amebaiot.com/en/amebaz2/) | `realtek-ambz2` (`realtek-amb`) | `ambz2` (`amb`) | `RTL8720C` (0xE08F7564) | ❌ | `framework-realtek-ambz2` ([ambz2_sdk](https://github.com/ambiot/ambz2_sdk))
Realtek AmebaD | `-` | `-` | `RTL8720D` (0x3379CFE2) | ❌ | -
[Beken 7231U/7231T](http://www.bekencorp.com/en/goods/detail/cid/13.html) | `beken-7231u` (`beken-72xx`) | `bk7231u` (`bk72xx`) | `BK7231U` (0x675A40B0) | ✔️ | `framework-beken-bdk` ([bdk_freertos](https://github.com/bekencorp/bdk_freertos))
[Beken 7231N](http://www.bekencorp.com/en/goods/detail/cid/39.html) | `beken-7231n` (`beken-72xx`) | `bk7231n` (`bk72xx`) | `BK7231N` (0x7B3EF230) | ✔️ | `framework-beken-bdk` ([bdk_freertos](https://github.com/bekencorp/bdk_freertos))
[Beken 7251/7252](http://www.bekencorp.com/en/goods/detail/cid/21.html) | `beken-7251` (`beken-72xx`) | `bk7251` (`bk72xx`) | `BK7251` (0x6A82CC42) | ✔️ | `framework-beken-bdk` ([bdk_freertos](https://github.com/bekencorp/bdk_freertos))
Boufallo 602 | `-` | `-` | `BL602` (0xDE1270B7) | ❌ | -
Xradiotech 809 | `-` | `-` | `XR809` (0x51E903A8) | ❌ | -
Native host architecture | `host-native` | `native` | `NATIVE` (0xDEADBEEF) | ❌ | -

View File

@@ -68,6 +68,7 @@ def get_board_mcus(boards: List[Board]) -> Set[str]:
def get_enum_keys(code: str, name: str) -> Set[str]:
code = code.replace("\t", " ")
code = code.partition(f"enum {name}")[2]
code = code.partition(";")[0]
code = code.strip().strip("{}").strip()

View File

@@ -42,13 +42,13 @@
},
{
"id": "0x675A40B0",
"short_name": "BK7231T",
"description": "Beken 7231T",
"name": "beken-7231t",
"short_name": "BK7231U",
"description": "Beken 7231U/7231T",
"name": "beken-7231u",
"parent": "beken-72xx",
"code": "bk7231t",
"code": "bk7231u",
"parent_code": "bk72xx",
"url": "http://www.bekencorp.com/en/goods/detail/cid/7.html",
"url": "http://www.bekencorp.com/en/goods/detail/cid/13.html",
"sdk": "https://github.com/bekencorp/bdk_freertos",
"framework": "framework-beken-bdk",
"mcus": [
@@ -69,7 +69,24 @@
"sdk": "https://github.com/bekencorp/bdk_freertos",
"framework": "framework-beken-bdk",
"mcus": [
"BK7231N"
"BK7231N",
"BL2028N"
]
},
{
"id": "0x6A82CC42",
"short_name": "BK7251",
"description": "Beken 7251/7252",
"name": "beken-7251",
"parent": "beken-72xx",
"code": "bk7251",
"parent_code": "bk72xx",
"url": "http://www.bekencorp.com/en/goods/detail/cid/21.html",
"sdk": "https://github.com/bekencorp/bdk_freertos",
"framework": "framework-beken-bdk",
"mcus": [
"BK7251",
"BK7252"
]
},
{

View File

@@ -6,7 +6,7 @@
"type": "git",
"url": "https://github.com/kuba2k2/platformio-libretuya"
},
"version": "0.11.0",
"version": "0.12.0",
"frameworks": {
"arduino": {
"title": "Generic Arduino framework",
@@ -127,7 +127,7 @@
},
"tool-ltchiptool": {
"type": "uploader",
"version": "https://github.com/libretuya/ltchiptool#v1.6.1",
"version": "https://github.com/libretuya/ltchiptool#v2.0.2",
"note": "This is used only for C/C++ code from ltchiptool."
},
"tool-openocd": {

View File

@@ -23,7 +23,7 @@ def check_ltchiptool():
import ltchiptool
importlib.reload(ltchiptool)
if Version(ltchiptool.get_version()) < Version("1.6.0"):
if Version(ltchiptool.get_version()) < Version("2.0.2"):
raise ImportError("Version too old")
@@ -44,6 +44,9 @@ except (ImportError, AttributeError):
if dirname(__file__) in sys.path:
sys.path.remove(dirname(__file__))
# Let ltchiptool know about LT's location
ltchiptool.util.lt_set_path(dirname(__file__))
libretuya_packages = None
manifest_default = {"version": "0.0.0", "description": "", "keywords": []}

View File

@@ -0,0 +1,134 @@
#pragma once
#define AT_SERVICE_CFG 0
#define BLE_DEFAULT_WIFI_REQUEST 2
#define BLE_VERSION_4_2 1
#define BLE_VERSION_5_x 2
#define BLE_WIFI_CO_REQUEST 3
#define CFG_AIRKISS_TEST 0
#define CFG_AP_MONITOR_COEXIST 0
#define CFG_AP_SUPPORT_HT_IE 0
#define CFG_BACKGROUND_PRINT 0
#define CFG_BK_AWARE 0
#define CFG_BK_AWARE_OUI "\xC8\x47\x8C"
#define CFG_BK7221_MDM_WATCHDOG_PATCH 0
#define CFG_BLE_VERSION BLE_VERSION_4_2
#define CFG_EASY_FLASH 1
#define CFG_ENABLE_BUTTON 0
#define CFG_ENABLE_DEMO_TEST 0
#define CFG_ENABLE_WPA_LOG 0
#define CFG_GENERAL_DMA 1
#define CFG_IEEE80211N 1
#define CFG_IEEE80211W 0
#define CFG_INT_WDG_ENABLED 1
#define CFG_INT_WDG_PERIOD_MS 10000
#define CFG_IPERF_TEST 0
#define CFG_JTAG_ENABLE 0
#define CFG_LESS_MEMERY_IN_RWNX 0
#define CFG_MAC_PHY_BAPASS 1
#define CFG_MSDU_RESV_HEAD_LEN 96
#define CFG_MSDU_RESV_TAIL_LEN 16
#define CFG_REAL_SDIO 0
#define CFG_RELEASE_FIRMWARE 0
#define CFG_ROLE_LAUNCH 0
#define CFG_RUNNING_PLATFORM SOC_PLATFORM
#define CFG_RWNX_QOS_MSDU 1
#define CFG_RX_SENSITIVITY_TEST 1
#define CFG_SARADC_CALIBRATE 0
#define CFG_SD_HOST_INTF SD1_HOST_INTF
#define CFG_SDIO 0
#define CFG_SDIO_TRANS 0
#define CFG_SOC_NAME SOC_BK7221U
#define CFG_SUPPOET_BSSID_CONNECT 0
#define CFG_SUPPORT_BKREG 1
#define CFG_SUPPORT_BLE 1
#define CFG_SUPPORT_BLE_MESH 0
#define CFG_SUPPORT_BSSID_CONNECT 0
#define CFG_SUPPORT_CALIBRATION 1
#define CFG_SUPPORT_CCD 0
#define CFG_SUPPORT_HID 0
#define CFG_SUPPORT_MANUAL_CALI 1
#define CFG_SUPPORT_MSD 0
#define CFG_SUPPORT_OTA_HTTP 1
#define CFG_SUPPORT_OTA_TFTP 0
#define CFG_SUPPORT_TPC_PA_MAP 1
#define CFG_SUPPORT_UVC 0
#define CFG_SYS_REDUCE_NORMAL_POWER 0
#define CFG_TASK_WDG_ENABLED 0
#define CFG_TASK_WDG_PERIOD_MS 60000
#define CFG_TCP_SERVER_TEST 0
#define CFG_TX_EVM_TEST 1
#define CFG_UART_DEBUG 0
#define CFG_UART_DEBUG_COMMAND_LINE 1
#define CFG_UDISK_MP3 0
#define CFG_USB 0
#define CFG_USE_AP_IDLE 0
#define CFG_USE_AP_PS 0
#define CFG_USE_APP_DEMO_VIDEO_TRANSFER 0
#define CFG_USE_AUD_ADC 1
#define CFG_USE_AUD_DAC 1
#define CFG_USE_AUDIO 1
#define CFG_USE_BLE_PS 1
#define CFG_USE_CAMERA_INTF 0
#define CFG_USE_DCACHE 0
#define CFG_USE_DEEP_PS 1
#define CFG_USE_DHCP 1
#define CFG_USE_FAKERTC_PS 0
#define CFG_USE_FFT 0
#define CFG_USE_FTPD_UPGRADE 0
#define CFG_USE_HSLAVE_SPI 0
#define CFG_USE_I2S 0
#define CFG_USE_IRDA 0
#define CFG_USE_LWIP_NETSTACK 1
#define CFG_USE_MCU_PS 1
#define CFG_USE_PTA 0
#define CFG_USE_QSPI 1
#define CFG_USE_SDCARD_HOST 1
#define CFG_USE_SECURITY 0
#define CFG_USE_SPI_MASTER 1
#define CFG_USE_SPI_MST_FLASH 1
#define CFG_USE_SPI_MST_PSRAM 0
#define CFG_USE_SPI_SLAVE 0
#define CFG_USE_SPIDMA 0
#define CFG_USE_STA_PS 1
#define CFG_USE_TEMPERATURE_DETECT 0
#define CFG_USE_TICK_CAL 1
#define CFG_USE_UART1 1
#define CFG_USE_USB_CHARGE 0
#define CFG_USE_USB_DEVICE 1
#define CFG_USE_USB_DEVICE_CARD_READER 1
#define CFG_USE_USB_HOST 0
#define CFG_USE_WPA_29 1
#define CFG_WFA_CERT 0
#define CFG_WIFI_RAW_TX_CMD 0
#define CFG_WIFI_SENSOR 0
#define CFG_WLAN_FAST_CONNECT 0
#define CFG_WPA_CTRL_IFACE 1
#define CFG_WPA3 0
#define CFG_XTAL_FREQUENCE CFG_XTAL_FREQUENCE_26M
#define CFG_XTAL_FREQUENCE_26M 26000000
#define CFG_XTAL_FREQUENCE_40M 40000000
#define CONFIG_APP_MP3PLAYER 0
#define FPGA_PLATFORM 0
#define OSMALLOC_STATISTICAL 0
#define RF_USE_POLICY WIFI_DEFAULT_BLE_REQUEST
#define SD_HOST_INTF 0
#define SD1_HOST_INTF 1
#define SOC_BK7221U 3
#define SOC_BK7231 1
#define SOC_BK7231N 5
#define SOC_BK7231U 2
#define SOC_PLATFORM 1
#define THD_APPLICATION_PRIORITY 3
#define THD_CORE_PRIORITY 2
#define THD_EXTENDED_APP_PRIORITY 5
#define THD_HOSTAPD_PRIORITY 5
#define THD_INIT_PRIORITY 4
#define THD_LWIP_PRIORITY 4
#define THD_MEDIA_PRIORITY 4
#define THD_RECONNECT_PRIORITY 4
#define THD_UBG_PRIORITY 5
#define THD_UMP3_PRIORITY 4
#define THD_WPAS_PRIORITY 5
#define THDD_KEY_SCAN_PRIORITY 7
#define WIFI_DEFAULT_BLE_REQUEST 1

Submodule tools/boardgen updated: 0cff15ab4e...7d6a23672b