diff --git a/arduino/libretuya/core/ChipType.h b/arduino/libretuya/core/ChipType.h index 64d3b7b..7faca88 100644 --- a/arduino/libretuya/core/ChipType.h +++ b/arduino/libretuya/core/ChipType.h @@ -13,6 +13,7 @@ enum ChipFamily { F_RTL8720D = 0x3379CFE2, // Realtek AmebaD 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 @@ -32,4 +33,5 @@ enum ChipType { 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 }; diff --git a/boards/SUMMARY.md b/boards/SUMMARY.md index 19a8dec..0664e7d 100644 --- a/boards/SUMMARY.md +++ b/boards/SUMMARY.md @@ -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) diff --git a/boards/_base/beken-7252.json b/boards/_base/beken-7252.json new file mode 100644 index 0000000..e9efae5 --- /dev/null +++ b/boards/_base/beken-7252.json @@ -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" + } + } + } +} diff --git a/boards/_base/ic/bk7231-qfn40.json b/boards/_base/ic/bk7231-qfn40.json new file mode 100644 index 0000000..853d199 --- /dev/null +++ b/boards/_base/ic/bk7231-qfn40.json @@ -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" + } + } + } +} diff --git a/boards/_base/ic/bk7252-qfn68.json b/boards/_base/ic/bk7252-qfn68.json new file mode 100644 index 0000000..e7eb08d --- /dev/null +++ b/boards/_base/ic/bk7252-qfn68.json @@ -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" + } + } + } +} diff --git a/boards/generic-bk7252.json b/boards/generic-bk7252.json new file mode 100644 index 0000000..2cc46fc --- /dev/null +++ b/boards/generic-bk7252.json @@ -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" + } + } + } +} diff --git a/boards/generic-bk7252/README.md b/boards/generic-bk7252/README.md new file mode 100644 index 0000000..c7ea4d9 --- /dev/null +++ b/boards/generic-bk7252/README.md @@ -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. diff --git a/boards/generic-bk7252/pins_arduino.h b/boards/generic-bk7252/pins_arduino.h new file mode 100644 index 0000000..1de3ade --- /dev/null +++ b/boards/generic-bk7252/pins_arduino.h @@ -0,0 +1 @@ +#include "variant.h" diff --git a/boards/generic-bk7252/variant.cpp b/boards/generic-bk7252/variant.cpp new file mode 100644 index 0000000..74c7841 --- /dev/null +++ b/boards/generic-bk7252/variant.cpp @@ -0,0 +1,88 @@ +/* This file was auto-generated from generic-bk7252.json using boardgen */ + +#include + +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" diff --git a/boards/generic-bk7252/variant.h b/boards/generic-bk7252/variant.h new file mode 100644 index 0000000..47c4a52 --- /dev/null +++ b/boards/generic-bk7252/variant.h @@ -0,0 +1,119 @@ +/* This file was auto-generated from generic-bk7252.json using boardgen */ + +#pragma once + +#include + +// 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 diff --git a/docs/status/supported_boards.md b/docs/status/supported_boards.md index 653b185..565d9ba 100644 --- a/docs/status/supported_boards.md +++ b/docs/status/supported_boards.md @@ -5,6 +5,7 @@ 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-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` diff --git a/docs/status/supported_chips.md b/docs/status/supported_chips.md index bef5f76..7a0d597 100644 --- a/docs/status/supported_chips.md +++ b/docs/status/supported_chips.md @@ -4,6 +4,8 @@ - BK7231S - BK7231T - BK7231U +- BK7251 +- BK7252 - BL2028N - NATIVE - RTL8710BN diff --git a/docs/status/supported_families.md b/docs/status/supported_families.md index 5f1694f..3c17c61 100644 --- a/docs/status/supported_families.md +++ b/docs/status/supported_families.md @@ -8,6 +8,7 @@ Realtek Ameba1 | `-` 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) | ❌ | - diff --git a/docs/update_docs.py b/docs/update_docs.py index 9cae43f..d3723cf 100644 --- a/docs/update_docs.py +++ b/docs/update_docs.py @@ -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() diff --git a/families.json b/families.json index aed3fe2..fb5cf13 100644 --- a/families.json +++ b/families.json @@ -73,6 +73,22 @@ "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" + ] + }, { "id": "0xDE1270B7", "short_name": "BL602", diff --git a/tools/boardgen b/tools/boardgen index 0cff15a..7d6a236 160000 --- a/tools/boardgen +++ b/tools/boardgen @@ -1 +1 @@ -Subproject commit 0cff15ab4e5febf97d13509e9ccade15175fe753 +Subproject commit 7d6a23672ba33dd2a6a445db1d28cd38247d5ee4