From f4f9788f68cebf303129d0930ec5ddeaef6d1d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sat, 14 May 2022 20:20:39 +0200 Subject: [PATCH] [github] Add board readme generated with boardgen --- boards/_base/realtek-ambz.json | 10 +- boards/wr3/README.md | 50 +++--- boards/wr3/pinout.png | Bin 29531 -> 0 bytes boards/wr3/pinout_wr3.svg | 309 +++++++++++++++++++++++++++++++++ tools/boardgen | 2 +- 5 files changed, 344 insertions(+), 27 deletions(-) delete mode 100644 boards/wr3/pinout.png create mode 100644 boards/wr3/pinout_wr3.svg diff --git a/boards/_base/realtek-ambz.json b/boards/_base/realtek-ambz.json index b3f6494..a0124dc 100644 --- a/boards/_base/realtek-ambz.json +++ b/boards/_base/realtek-ambz.json @@ -37,6 +37,14 @@ "extra": { "Wi-Fi": "802.11 b/g/n" } - } + }, + "links": { + "Debugging": "../../docs/platform/realtek/debugging.md", + "Flashing (Tuya manual)": "https://developer.tuya.com/en/docs/iot/burn-and-authorize-wr-series-modules?id=Ka789pjc581u8" + }, + "extra": [ + "RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.", + "Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area." + ] } } diff --git a/boards/wr3/README.md b/boards/wr3/README.md index 885e5fb..b4ef770 100644 --- a/boards/wr3/README.md +++ b/boards/wr3/README.md @@ -1,44 +1,45 @@ # WR3 Wi-Fi Module -[Product page](https://developer.tuya.com/en/docs/iot/wifiwr1module?id=K9605tc0k90t3) +*by Tuya Inc.* + +[Product page](https://developer.tuya.com/en/docs/iot/wr3-module-datasheet?id=K9g3ainzbj9z1) - [Debugging](../../docs/platform/realtek/debugging.md) +- [Flashing (Tuya manual)](https://developer.tuya.com/en/docs/iot/burn-and-authorize-wr-series-modules?id=Ka789pjc581u8) Parameter | Value --------------|------------------------- +-------------|---------------------------------- MCU | RTL8710BN Manufacturer | Realtek Series | AmebaZ -Max. clock | 125 MHz +Frequency | 125 MHz Flash size | 2 MiB RAM size | 256 KiB Voltage | 3.0V - 3.6V -I/O | 7x GPIO, 2x UART, 1x ADC +I/O | 11x GPIO, 6x PWM, 2x UART, 2x ADC Wi-Fi | 802.11 b/g/n ## Pinout -![image](pinout.png) +![Pinout](pinout_wr3.svg) -## Arduino core pin map +## Arduino Core pin mapping -No. | Pin | Alt. function | PWM -----|-------|---------------|----- -D0 | PA_22 | | PWM5 -D1 | PA_19 | | -D2 | PA_14 | SWCLK | PWM0 -D3 | PA_15 | SWDAT | PWM1 -D4 | PA_0 | | PWM2 -D5 | PA_20 | | -D6 | PA_29 | UART_Log_RXD | PWM4 -D7 | PA_30 | UART_Log_TXD | PWM3 -D8 | PA_5 | | PWM4 -D9 | PA_12 | | PWM3 -D10 | PA_18 | UART0_RXD | -D11 | PA_23 | UART0_TXD | PWM0 -A0 | PA_19 | | -A1 | - | | -A2 | PA_20 | | +No. | Pin | UART | I²C | SPI | PWM | Other +----|------------|-----------|----------|----------------------|------|------ +D0 | PA22 | UART0_RTS | I2C0_SCL | SPI0_MISO, SPI1_MISO | PWM5 | +D1 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | | +D2 | PA14 | | | | PWM0 | SWCLK +D3 | PA15 | | | | PWM1 | SWDIO +D4 | PA00 | | | | PWM2 | +D5 | PA29 | UART2_RX | I2C0_SCL | | PWM4 | +D6 | PA30 | UART2_TX | I2C0_SDA | | PWM4 | +D7 | PA05 | | | | PWM4 | +D8 | PA12 | | | | PWM3 | +D9 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | | +D10 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 | +A0 | PA19, ADC1 +A1 | ADC2 ## Flash memory map @@ -58,7 +59,6 @@ OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000 User Data | 0x195000 | 424 KiB / 0x6A000 | 0x1FF000 RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000 -RDP is most likely not used in Tuya firmwares, as the System Data partition contains -an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image. +RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image. Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area. diff --git a/boards/wr3/pinout.png b/boards/wr3/pinout.png deleted file mode 100644 index 619638e1392b1aaa1cc2efe0d6512341eaaa158e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29531 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 diff --git a/boards/wr3/pinout_wr3.svg b/boards/wr3/pinout_wr3.svg new file mode 100644 index 0000000..fc5c656 --- /dev/null +++ b/boards/wr3/pinout_wr3.svg @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WR3 + + + + + + + + + + + + + + + + + + PA22 + + + + D0 + + + + SCL0 + + + + MISO0 + + + + MISO1 + + + + PWM5 + + + + + CEN + + + + + PA19 + + + + ADC1 + + + + D1 + + + + A0 + + + + SDA0 + + + + CS0 + + + + CS1 + + + + + PA14 + + + + D2 + + + + PWM0 + + + + SWCLK + + + + + PA15 + + + + D3 + + + + PWM1 + + + + SWDIO + + + + + PA00 + + + + D4 + + + + PWM2 + + + + + 3V3 + + + + + GND + + + + + ADC2 + + + + A1 + + + + + PA29 + + + + D5 + + + + RX2 + + + + SCL0 + + + + PWM4 + + + + + PA30 + + + + D6 + + + + TX2 + + + + SDA0 + + + + PWM4 + + + + + PA05 + + + + D7 + + + + PWM4 + + + + + PA12 + + + + D8 + + + + PWM3 + + + + + PA18 + + + + D9 + + + + RX0 + + + + SCL1 + + + + SCK0 + + + + SCK1 + + + + + PA23 + + + + D10 + + + + TX0 + + + + SDA1 + + + + MOSI0 + + + + MOSI1 + + + + PWM0 + diff --git a/tools/boardgen b/tools/boardgen index 04bbf0a..ae96c74 160000 --- a/tools/boardgen +++ b/tools/boardgen @@ -1 +1 @@ -Subproject commit 04bbf0a1f593ac1f61b1d433ba6aa4f17af2ea3e +Subproject commit ae96c74bbccd5dd7c117f58ea5c9b61c465846b8