From 1d790512504309d47f8b158ab4a8641c6dfd92d9 Mon Sep 17 00:00:00 2001 From: Lucas Rayan Date: Sun, 1 Nov 2026 22:06:21 -0300 Subject: [PATCH] feat(i18n): zh-CN content (data, glossary, diagnostics, components, messages, examples) Co-Authored-By: Claude Sonnet 5.5 --- data/zh-CN/conexoes/ESP32-C2.json | 307 +++++ data/zh-CN/conexoes/ESP32-C3.json | 533 ++++++++ data/zh-CN/conexoes/ESP32-C5.json | 776 +++++++++++ data/zh-CN/conexoes/ESP32-C6.json | 715 ++++++++++ data/zh-CN/conexoes/ESP32-C61.json | 536 ++++++++ data/zh-CN/conexoes/ESP32-H2.json | 482 +++++++ data/zh-CN/conexoes/ESP32-P4.json | 1528 ++++++++++++++++++++++ data/zh-CN/conexoes/ESP32-S2.json | 1014 ++++++++++++++ data/zh-CN/conexoes/ESP32-S3.json | 1059 +++++++++++++++ data/zh-CN/conexoes/ESP32-S31.json | 956 ++++++++++++++ data/zh-CN/conexoes/ESP32.json | 964 ++++++++++++++ data/zh-CN/frameworks.json | 394 ++++++ data/zh-CN/series.json | 732 +++++++++++ lib/data/zh-CN/componentes.js | 858 ++++++++++++ lib/data/zh-CN/diagnostico.js | 744 +++++++++++ lib/data/zh-CN/glossario.js | 408 ++++++ messages/zh-CN.json | 152 +++ public/exemplos/zh-CN/arduino.ino | 29 + public/exemplos/zh-CN/esp-adf.c | 72 + public/exemplos/zh-CN/esp-dsp.c | 37 + public/exemplos/zh-CN/esp-idf.c | 56 + public/exemplos/zh-CN/esp-iot-solution.c | 72 + public/exemplos/zh-CN/esp-matter.c | 44 + public/exemplos/zh-CN/esp-nn.c | 44 + public/exemplos/zh-CN/esp-now.c | 92 ++ public/exemplos/zh-CN/esp-rainmaker.c | 76 ++ public/exemplos/zh-CN/esp-sr.c | 98 ++ public/exemplos/zh-CN/esp-who.c | 71 + public/exemplos/zh-CN/esp-zigbee.c | 97 ++ public/exemplos/zh-CN/micropython.py | 11 + public/exemplos/zh-CN/rust-esp.rs | 48 + 31 files changed, 13005 insertions(+) create mode 100644 data/zh-CN/conexoes/ESP32-C2.json create mode 100644 data/zh-CN/conexoes/ESP32-C3.json create mode 100644 data/zh-CN/conexoes/ESP32-C5.json create mode 100644 data/zh-CN/conexoes/ESP32-C6.json create mode 100644 data/zh-CN/conexoes/ESP32-C61.json create mode 100644 data/zh-CN/conexoes/ESP32-H2.json create mode 100644 data/zh-CN/conexoes/ESP32-P4.json create mode 100644 data/zh-CN/conexoes/ESP32-S2.json create mode 100644 data/zh-CN/conexoes/ESP32-S3.json create mode 100644 data/zh-CN/conexoes/ESP32-S31.json create mode 100644 data/zh-CN/conexoes/ESP32.json create mode 100644 data/zh-CN/frameworks.json create mode 100644 data/zh-CN/series.json create mode 100644 lib/data/zh-CN/componentes.js create mode 100644 lib/data/zh-CN/diagnostico.js create mode 100644 lib/data/zh-CN/glossario.js create mode 100644 messages/zh-CN.json create mode 100644 public/exemplos/zh-CN/arduino.ino create mode 100644 public/exemplos/zh-CN/esp-adf.c create mode 100644 public/exemplos/zh-CN/esp-dsp.c create mode 100644 public/exemplos/zh-CN/esp-idf.c create mode 100644 public/exemplos/zh-CN/esp-iot-solution.c create mode 100644 public/exemplos/zh-CN/esp-matter.c create mode 100644 public/exemplos/zh-CN/esp-nn.c create mode 100644 public/exemplos/zh-CN/esp-now.c create mode 100644 public/exemplos/zh-CN/esp-rainmaker.c create mode 100644 public/exemplos/zh-CN/esp-sr.c create mode 100644 public/exemplos/zh-CN/esp-who.c create mode 100644 public/exemplos/zh-CN/esp-zigbee.c create mode 100644 public/exemplos/zh-CN/micropython.py create mode 100644 public/exemplos/zh-CN/rust-esp.rs diff --git a/data/zh-CN/conexoes/ESP32-C2.json b/data/zh-CN/conexoes/ESP32-C2.json new file mode 100644 index 0000000..7c4f374 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-C2.json @@ -0,0 +1,307 @@ +[ + { + "numero": "1", + "nome": "ANT", + "tipo": "analog", + "funcoes": ["RF 天线连接(Wi-Fi 和 Bluetooth)"], + "categorias": ["天线", "射频"], + "avisos": ["专用 RF 引脚。避免长走线或未做 50 欧姆阻抗匹配。"] + }, + { + "numero": "2", + "nome": "VDDA3P3", + "tipo": "power", + "funcoes": ["3.3V 模拟电源"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V(3.0V 至 3.6V)", + "为芯片的模拟和 RF 电路供电" + ] + }, + { + "numero": "3", + "nome": "VDDA3P3", + "tipo": "power", + "funcoes": ["3.3V 模拟电源"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V(3.0V 至 3.6V)", + "为芯片的模拟和 RF 电路供电" + ] + }, + { + "numero": "4", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO0", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 0 模拟输入引脚"] + }, + { + "numero": "5", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO1", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 1 模拟输入引脚"] + }, + { + "numero": "6", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO2", + "ADC1_CH2", + "FSPIQ" + ], + "categorias": [ + "GPIO", + "ADC", + "SPI" + ], + "avisos": ["启动时默认映射为 SPI MISO(FSPIQ)功能"] + }, + { + "numero": "7", + "nome": "CHIP_EN", + "tipo": "analog", + "funcoes": ["使能芯片(上电/复位)"], + "categorias": ["电源"], + "avisos": [ + "高电平有效。拉高以启动芯片。", + "请勿让该引脚浮空。请使用外部 RC 延迟电路以实现稳定启动。" + ] + }, + { + "numero": "8", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO3", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 3 模拟输入引脚"] + }, + { + "numero": "9", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO4", + "MTMS", + "FSPIQ", + "ADC1_CH4" + ], + "categorias": [ + "GPIO", + "JTAG", + "SPI", + "ADC" + ], + "avisos": [ + "多功能引脚:JTAG MTMS、SPI2 MISO 和 ADC1 通道 4。", + "可与其他 JTAG 引脚配合用于 JTAG 调试。" + ] + }, + { + "numero": "10", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO5", + "MTDI", + "FSPIWP" + ], + "categorias": [ + "GPIO", + "JTAG", + "SPI" + ], + "avisos": ["多功能引脚:JTAG MTDI 和 SPI2 Write Protect(FSPIWP)。"] + }, + { + "numero": "11", + "nome": "VDD3P3_RTC", + "tipo": "power", + "funcoes": ["RTC 域和低功耗 IO 的电源"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V"] + }, + { + "numero": "12", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO6", + "MTCK", + "FSPICLK" + ], + "categorias": [ + "GPIO", + "JTAG", + "SPI" + ], + "avisos": ["多功能引脚:JTAG MTCK 和 SPI2 Clock(FSPICLK)。"] + }, + { + "numero": "13", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO7", + "MTDO", + "FSPID" + ], + "categorias": [ + "GPIO", + "JTAG", + "SPI" + ], + "avisos": ["多功能引脚:JTAG MTDO 和 SPI2 MOSI(FSPID)。"] + }, + { + "numero": "14", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO8"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "用于启动控制的 Strapping 引脚。", + "与 GPIO9 配合选择 SoC 启动模式(若 GPIO9=0,复位期间必须为 1 才能进入 Joint Download Boot)。" + ] + }, + { + "numero": "15", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO9"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "主 Strapping 引脚。复位时高电平(1)启用 SPI Boot(默认通过弱上拉)。", + "复位时低电平(0)使芯片进入 UART/SPI 下载模式。" + ] + }, + { + "numero": "16", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO10", + "FSPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["多功能引脚:SPI2 Chip Select 0(FSPICS0)。"] + }, + { + "numero": "17", + "nome": "VDD3P3_CPU", + "tipo": "power", + "funcoes": ["CPU 及相应 IO 的数字电源(3.3V)"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V"] + }, + { + "numero": "18", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO18"], + "categorias": ["GPIO"] + }, + { + "numero": "19", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO19", + "U0RXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": ["UART0 接收引脚(默认用于烧录和监视的 Serial RX)。"] + }, + { + "numero": "20", + "nome": "GPIO20", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO20", + "U0TXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": ["UART0 发送引脚(默认用于烧录和监视的 Serial TX)。"] + }, + { + "numero": "21", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["3.3V 模拟输入电源"], + "categorias": ["电源"] + }, + { + "numero": "22", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["外部晶振连接(输出)"], + "categorias": ["时钟"] + }, + { + "numero": "23", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["外部晶振连接(输入)"], + "categorias": ["时钟"] + }, + { + "numero": "24", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["3.3V 模拟输入电源"], + "categorias": ["电源"] + }, + { + "numero": "25", + "nome": "GND", + "tipo": "power", + "funcoes": ["中心接地焊盘(Exposed Pad)"], + "categorias": ["电源"], + "avisos": ["应正确焊接至 PCB 接地平面(GND),以实现稳定性能和散热。"] + } +] diff --git a/data/zh-CN/conexoes/ESP32-C3.json b/data/zh-CN/conexoes/ESP32-C3.json new file mode 100644 index 0000000..1ea57e2 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-C3.json @@ -0,0 +1,533 @@ +[ + { + "numero": "1", + "nome": "LNA_IN", + "tipo": "analog", + "funcoes": ["天线 RF 信号(Wi-Fi 和 Bluetooth)输入输出"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "2", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "3", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "4", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO0", + "XTAL_32K_P", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "时钟", + "ADC" + ] + }, + { + "numero": "5", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO1", + "XTAL_32K_N", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "时钟", + "ADC" + ] + }, + { + "numero": "6", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO2", + "ADC1_CH2", + "FSPIQ" + ], + "categorias": [ + "GPIO", + "ADC", + "SPI", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "实际上,该引脚并不决定启动模式,但建议将其上拉以避免毛刺(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "7", + "nome": "CHIP_EN", + "tipo": "analog", + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "8", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO3", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "9", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO4", + "ADC1_CH4", + "FSPIHD", + "MTMS" + ], + "categorias": [ + "GPIO", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "10", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO5", + "ADC2_CH0", + "FSPIWP", + "MTDI" + ], + "categorias": [ + "GPIO", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "11", + "nome": "VDD3P3_RTC", + "tipo": "power", + "funcoes": ["低功耗域和部分数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "12", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO6", + "FSPICLK", + "MTCK" + ], + "categorias": [ + "GPIO", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "13", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO7", + "FSPID", + "MTDO" + ], + "categorias": [ + "GPIO", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "14", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO8"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "15", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO9"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "16", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO10", + "FSPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "17", + "nome": "VDD3P3_CPU", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "18", + "nome": "VDD_SPI", + "tipo": "power", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "内部/外部 Flash 电源输入/输出", + "GPIO11" + ], + "categorias": [ + "电源", + "GPIO" + ], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节", + "仅当 Flash 存储由外部电源供电时,才能用作 GPIO" + ] + }, + { + "numero": "19", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO12", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "20", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO13", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "21", + "nome": "SPICS0", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO14", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "22", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO15", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "23", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO16", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "24", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO17", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "25", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO18", + "USB_D-" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": ["默认情况下,该引脚用于 USB Serial/JTAG"] + }, + { + "numero": "26", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO19", + "USB_D+" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": ["默认情况下,该引脚用于 USB Serial/JTAG"] + }, + { + "numero": "27", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO20", + "U0RXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "28", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO21", + "U0TXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": [ + "复位后,该引脚将启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "29", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.2 节"] + }, + { + "numero": "30", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.2 节"] + }, + { + "numero": "31", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "32", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "33", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-C5.json b/data/zh-CN/conexoes/ESP32-C5.json new file mode 100644 index 0000000..43369d1 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-C5.json @@ -0,0 +1,776 @@ +[ + { + "numero": "1", + "nome": "VDDA6", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "2", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + }, + { + "numero": "3", + "nome": "VDDA7", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "4", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.3 节"] + }, + { + "numero": "5", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.3 节"] + }, + { + "numero": "6", + "nome": "VDDA8", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "7", + "nome": "CHIP_PU", + "tipo": "analog", + "alimentacao": ["VDDPST1"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "8", + "nome": "VDDPST1", + "tipo": "power", + "funcoes": ["低功耗数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "9", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO0", + "LP_GDIO0", + "XTAL_32K_P", + "LP_UART_DTRN" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART" + ] + }, + { + "numero": "10", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO1", + "LP_GDIO1", + "XTAL_32K_N", + "LP_UART_DSRN", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART", + "ADC" + ] + }, + { + "numero": "11", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO2", + "LP_GDIO2", + "LP_UART_RTSN", + "LP_I2C_SDA", + "ADC1_CH1", + "FSPIQ", + "MTMS" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "I2C", + "ADC", + "SPI", + "JTAG", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(LP)模式下可用", + "用于调试的引脚", + "用于控制芯片晶振频率(详见数据手册第 3.5 节)" + ] + }, + { + "numero": "12", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO3", + "LP_GDIO3", + "LP_UART_CTSN", + "LP_I2C_SCL", + "ADC1_CH2", + "MTDI" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "I2C", + "ADC", + "JTAG", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(LP)模式下可用", + "用于调试的引脚", + "用于控制 SDIO Slave 时序(详见数据手册第 3.2 节)" + ] + }, + { + "numero": "13", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO4", + "LP_GDIO4", + "LP_UART_RXD", + "ADC1_CH3", + "FSPIHD", + "MTCK" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "14", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO5", + "LP_GDIO5", + "LP_UART_TXD", + "ADC1_CH4", + "FSPIWP", + "MTDO" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "15", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO6", + "LP_GDIO6", + "ADC1_CH5", + "FSPICLK" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "16", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO7", + "FSPID", + "SDIO_DATA1" + ], + "categorias": [ + "GPIO", + "SPI", + "SD" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制 JTAG 信号源(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "17", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO8", + "SDIO_DATA0", + "PAD_COMP0" + ], + "categorias": [ + "GPIO", + "SD" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "18", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO9", + "SDIO_CLK", + "PAD_COMP1" + ], + "categorias": [ + "GPIO", + "SD" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "19", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO10", + "FSPICS0", + "SDIO_CMD" + ], + "categorias": [ + "GPIO", + "SPI", + "SD" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "20", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO11", + "U0TXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": [ + "复位后,该引脚将启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "21", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO12", + "U0RXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "22", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO13", + "USB_D-", + "SDIO_DATA3" + ], + "categorias": [ + "GPIO", + "USB", + "SD" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "23", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO14", + "USB_D+", + "SDIO_DATA4" + ], + "categorias": [ + "GPIO", + "USB", + "SD" + ], + "avisos": [ + "复位期间,该引脚将启用 USB 内部上拉", + "复位后,该引脚将配置为输入并启用 USB 内部上拉", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "24", + "nome": "VDDPST2", + "tipo": "power", + "funcoes": ["高性能数字域和部分模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "25", + "nome": "SPICS1", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO15", + "SPICS1" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "26", + "nome": "SPICS0", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO16", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "27", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO17", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "28", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO18", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "29", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": [ + "外部 Flash 电源输出", + "GPIO19" + ], + "categorias": [ + "电源", + "GPIO" + ], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节", + "仅当外部 Flash 存储由外部电源供电时,才能用作 GPIO" + ] + }, + { + "numero": "30", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO20", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "31", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO21", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "32", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO22", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "33", + "nome": "GPIO23", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO23"], + "categorias": ["GPIO"], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "34", + "nome": "GPIO24", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO24"], + "categorias": ["GPIO"], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "35", + "nome": "GPIO25", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO25"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制 SDIO Slave 时序(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "36", + "nome": "GPIO26", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO26"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "37", + "nome": "GPIO27", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO27"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 3.3 节)" + ] + }, + { + "numero": "38", + "nome": "GPIO28", + "tipo": "io", + "alimentacao": ["VDDPST3"], + "funcoes": ["GPIO28"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "39", + "nome": "VDDPST3", + "tipo": "power", + "funcoes": ["高性能数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "40", + "nome": "VDDA1", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "41", + "nome": "VDDA2", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "42", + "nome": "ANT_2G", + "tipo": "analog", + "funcoes": ["2 GHz 频段的 RF 天线连接"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "43", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + }, + { + "numero": "44", + "nome": "VDDA3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "44", + "nome": "VDDA4", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "45", + "nome": "VDDA5", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "47", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + }, + { + "numero": "48", + "nome": "ANT_5G", + "tipo": "analog", + "funcoes": ["5 GHz 频段的 RF 天线连接"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-C6.json b/data/zh-CN/conexoes/ESP32-C6.json new file mode 100644 index 0000000..9ba40a8 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-C6.json @@ -0,0 +1,715 @@ +[ + { + "numero": "1", + "nome": "ANT", + "tipo": "analog", + "funcoes": ["RF 天线连接"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "2", + "nome": "VDDA3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "3", + "nome": "VDDA3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "4", + "nome": "CHIP_PU", + "tipo": "analog", + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "5", + "nome": "VDDPST1", + "tipo": "power", + "funcoes": ["低功耗数字域和部分模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "6", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO0", + "LP_GDIO0", + "XTAL_32K_P", + "LP_UART_DTRN", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART" + ] + }, + { + "numero": "7", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO1", + "LP_GDIO1", + "XTAL_32K_N", + "LP_UART_DSRN", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART", + "ADC" + ] + }, + { + "numero": "8", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO2", + "LP_GDIO2", + "LP_UART_RTSN", + "ADC1_CH2", + "FSPIQ" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "9", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO3", + "LP_GDIO3", + "LP_UART_CTSN", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "10", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO4", + "LP_GDIO4", + "LP_UART_RXD", + "ADC1_CH3", + "FSPIHD", + "MTMS" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于调试的引脚", + "用于控制 SDIO Slave 时序(详见数据手册第 3.2 节)" + ] + }, + { + "numero": "11", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO5", + "LP_GDIO5", + "LP_UART_TXD", + "ADC1_CH5", + "FSPIWP", + "MTDI" + ], + "categorias": [ + "GPIO", + "低功耗", + "UART", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于调试的引脚", + "用于控制 SDIO Slave 时序(详见数据手册第 3.2 节)" + ] + }, + { + "numero": "12", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO6", + "LP_GDIO6", + "LP_I2C_SDA", + "ADC1_CH6", + "FSPICLK", + "MTCK" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "ADC", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "I2C_SDA 功能在低功耗(LP)模式下可用", + "用于调试的引脚" + ] + }, + { + "numero": "13", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO7", + "LP_GDIO7", + "LP_I2C_SCL", + "FSPID", + "MTDO" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(LP)模式下可用", + "用于调试的引脚" + ] + }, + { + "numero": "14", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO8"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 3.3 节)" + ] + }, + { + "numero": "15", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO9"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "16", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO10"], + "categorias": ["GPIO"], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "17", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO11"], + "categorias": ["GPIO"], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "18", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO12", + "USB_D-" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "19", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO13", + "USB_D+" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "20", + "nome": "SPICS0", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO24", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "21", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO25", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "22", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO26", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "23", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": [ + "Flash 存储电源输入/输出", + "GPIO27" + ], + "categorias": [ + "电源", + "GPIO" + ], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节", + "仅当外部 Flash 存储由外部电源供电时,才能用作 GPIO" + ] + }, + { + "numero": "24", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO28", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "25", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO29", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "26", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO30", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "27", + "nome": "GPIO15", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO15"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制 JTAG 信号源(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "28", + "nome": "VDDA2", + "tipo": "power", + "funcoes": ["高性能数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "29", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO16", + "U0TXD", + "FSPICS0" + ], + "categorias": [ + "GPIO", + "UART", + "SPI" + ], + "avisos": [ + "复位后,该引脚将启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "30", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO17", + "U0RXD", + "FSPICS1" + ], + "categorias": [ + "GPIO", + "UART", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "31", + "nome": "SDIO_CMD", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO18", + "SDIO_CMD", + "FSPICS2" + ], + "categorias": [ + "GPIO", + "SD", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "32", + "nome": "SDIO_CLK", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO19", + "SDIO_CLK", + "FSPICS3" + ], + "categorias": [ + "GPIO", + "SD", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "33", + "nome": "SDIO_DATA0", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO20", + "SDIO_DATA0", + "FSPICS4" + ], + "categorias": [ + "GPIO", + "SD", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "34", + "nome": "SDIO_DATA1", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO21", + "SDIO_DATA1", + "FSPICS5" + ], + "categorias": [ + "GPIO", + "SD", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "35", + "nome": "SDIO_DATA2", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO22", + "SDIO_DATA2" + ], + "categorias": [ + "GPIO", + "SD" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "36", + "nome": "SDIO_DATA3", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO23", + "SDIO_DATA3" + ], + "categorias": [ + "GPIO", + "SD" + ], + "avisos": [ + "复位期间,该引脚将启用内部上拉", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "37", + "nome": "VDDA1", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "38", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "39", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "40", + "nome": "VDDA2", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "41", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-C61.json b/data/zh-CN/conexoes/ESP32-C61.json new file mode 100644 index 0000000..26ad9a0 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-C61.json @@ -0,0 +1,536 @@ +[ + { + "numero": "1", + "nome": "ANT_2G", + "tipo": "analog", + "funcoes": ["RF 天线连接(Wi-Fi 和 Bluetooth)"], + "categorias": ["天线", "射频"], + "avisos": ["专用于 2.4 GHz 的 RF 引脚。需要 50 欧姆阻抗匹配。"] + }, + { + "numero": "2", + "nome": "VDDA3", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V(3.0V 至 3.6V)。为 RF 和时钟电路供电。"] + }, + { + "numero": "3", + "nome": "VDDA4", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V(3.0V 至 3.6V)。为 RF 和时钟电路供电。"] + }, + { + "numero": "4", + "nome": "CHIP_PU", + "tipo": "analog", + "funcoes": ["使能芯片(上电/复位)"], + "categorias": ["电源"], + "avisos": [ + "高电平有效。拉高以启动芯片。", + "请勿让该引脚浮空。建议使用外部 RC 电路以实现干净复位。" + ] + }, + { + "numero": "5", + "nome": "VDDPST1", + "tipo": "power", + "funcoes": ["HP(High Performance)和 LP(Low Power)域的数字电源"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V。为低功耗数字部分及相关引脚供电。"] + }, + { + "numero": "6", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO0", + "XTAL_32K_P" + ], + "categorias": [ + "GPIO", + "时钟" + ], + "avisos": ["低功耗多功能引脚。可连接外部 32 kHz 晶振(P 输入)。"] + }, + { + "numero": "7", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO1", + "XTAL_32K_N", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "时钟", + "ADC" + ], + "avisos": ["多功能引脚。外部 32 kHz 晶振连接(N 输出)和 ADC1 通道 0 模拟输入。"] + }, + { + "numero": "8", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": ["GPIO2"], + "categorias": ["GPIO"] + }, + { + "numero": "9", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO3", + "MTMS", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "JTAG", + "ADC", + "启动配置" + ], + "avisos": [ + "多功能引脚:JTAG MTMS、ADC1 通道 1 和用于 SDIO 时钟边沿控制的 Strapping 引脚。", + "复位期间默认为浮空。" + ] + }, + { + "numero": "10", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO4", + "MTDI", + "ADC1_CH2" + ], + "categorias": [ + "GPIO", + "JTAG", + "ADC", + "启动配置" + ], + "avisos": [ + "多功能引脚:JTAG MTDI、ADC1 通道 2 和用于 SDIO 时钟边沿控制的 Strapping 引脚。", + "复位期间默认为浮空。" + ] + }, + { + "numero": "11", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO5", + "MTCK", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "JTAG", + "ADC" + ], + "avisos": ["多功能引脚:JTAG MTCK 和 ADC1 通道 3 模拟输入。"] + }, + { + "numero": "12", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO6", + "MTDO" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": ["JTAG MTDO 多功能引脚。"] + }, + { + "numero": "13", + "nome": "GPIO25", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO25", + "SDIO_CMD", + "FSPICS0" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速多功能引脚:SDIO Command 或 SPI2 Chip Select 0。"] + }, + { + "numero": "14", + "nome": "GPIO26", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO26", + "SDIO_CLK", + "FSPICLK" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速多功能引脚:SDIO Clock 或 SPI2 Clock。"] + }, + { + "numero": "15", + "nome": "GPIO27", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO27", + "SDIO_DATA0", + "FSPID" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速多功能引脚:SDIO 数据 0 或 SPI2 MOSI(FSPID)。"] + }, + { + "numero": "16", + "nome": "GPIO28", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO28", + "SDIO_DATA1", + "FSPIQ" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速引脚:SDIO 数据 1 或 SPI2 MISO(FSPIQ)。"] + }, + { + "numero": "17", + "nome": "GPIO22", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO22", + "SDIO_DATA2", + "FSPIWP" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速引脚:SDIO 数据 2 或 SPI2 Write Protect。"] + }, + { + "numero": "18", + "nome": "GPIO23", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO23", + "SDIO_DATA3", + "FSPIHD" + ], + "categorias": [ + "GPIO", + "SDIO", + "SPI" + ], + "avisos": ["高速引脚:SDIO 数据 3 或 SPI2 Hold。"] + }, + { + "numero": "19", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO14", + "SPICS1" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash/PSRAM 存储接口 Chip Select 1 的专用引脚。"] + }, + { + "numero": "20", + "nome": "GPIO15", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO15", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口 Chip Select 0 的专用引脚。"] + }, + { + "numero": "21", + "nome": "VDDPST2", + "tipo": "power", + "funcoes": ["HP(High Performance)数字域电源"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V(3.0V 至 3.6V)。为高速数字接口供电。"] + }, + { + "numero": "22", + "nome": "GPIO16", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO16", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口的数据 Q(MISO)引脚。"] + }, + { + "numero": "23", + "nome": "GPIO17", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO17", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口的写保护(Write Protect)引脚。"] + }, + { + "numero": "24", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": ["由 VDDPST2 生成的 LDO 输出电压,用于为 Flash 和 PSRAM 供电"], + "categorias": ["电源"], + "avisos": [ + "可根据内部/外部 Flash 规格通过软件配置的输出电压(通常为 3.3V 或 1.8V)。", + "不得用作大电流通用电源" + ] + }, + { + "numero": "25", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO19", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口的 Hold 控制引脚。"] + }, + { + "numero": "26", + "nome": "GPIO20", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO20", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口的时钟信号引脚。"] + }, + { + "numero": "27", + "nome": "GPIO21", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDDPST2"], + "funcoes": [ + "GPIO21", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["SPI Flash 存储接口的数据 D(MOSI)引脚。"] + }, + { + "numero": "28", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO12", + "USB_D-" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": ["集成 USB Serial/JTAG 收发器的负信号引脚。"] + }, + { + "numero": "29", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO13", + "USB_D+" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": [ + "集成 USB Serial/JTAG 收发器的正信号引脚。", + "USB 初始化时默认启用内置上拉电阻。" + ] + }, + { + "numero": "30", + "nome": "GPIO24", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO24"], + "categorias": ["GPIO"] + }, + { + "numero": "31", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO8"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "用于选择启动模式和控制 ROM 消息打印的 Strapping 引脚。", + "复位期间默认为浮空。高电平(1)启用启动日志打印。" + ] + }, + { + "numero": "32", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO9"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "用于启动模式选择的主 Strapping 引脚。", + "内置弱上拉。复位时高电平(1)启用 SPI Boot(从 Flash 加载)。低电平(0)强制进入 Download 模式。" + ] + }, + { + "numero": "33", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO10", + "U0RXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": ["UART0 串口接收(用于外部固件烧录和调试的 Serial RX)。"] + }, + { + "numero": "34", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO11", + "U0TXD" + ], + "categorias": [ + "GPIO", + "UART" + ], + "avisos": ["UART0 串口发送(用于外部固件烧录和调试的 Serial TX)。"] + }, + { + "numero": "35", + "nome": "GPIO29", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO29"], + "categorias": ["GPIO"] + }, + { + "numero": "36", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO7"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "用于选择 JTAG 信号源的 Strapping 引脚(早期初始化)。", + "复位时无内部上拉电阻。如使用,必须通过外部电路保持稳定。" + ] + }, + { + "numero": "37", + "nome": "VDDA1", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"] + }, + { + "numero": "38", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["40 MHz 外部晶振连接(N 输出)"], + "categorias": ["时钟"] + }, + { + "numero": "39", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["40 MHz 外部晶振连接(P 输入)"], + "categorias": ["时钟"] + }, + { + "numero": "40", + "nome": "VDDA2", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"] + }, + { + "numero": "41", + "nome": "GND", + "tipo": "power", + "funcoes": ["中心接地焊盘(Exposed Pad)"], + "categorias": ["电源"], + "avisos": ["应正确焊接至 PCB 接地平面(GND),以实现稳定的 RF 和热控制。"] + } +] diff --git a/data/zh-CN/conexoes/ESP32-H2.json b/data/zh-CN/conexoes/ESP32-H2.json new file mode 100644 index 0000000..7441732 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-H2.json @@ -0,0 +1,482 @@ +[ + { + "numero": "1", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "2", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "3", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO0", + "FSPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ] + }, + { + "numero": "4", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO1", + "FSPICS0", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "SPI", + "ADC" + ] + }, + { + "numero": "5", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO1", + "FSPIWP", + "ADC1_CH1", + "MTMS" + ], + "categorias": [ + "GPIO", + "SPI", + "ADC", + "JTAG" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "6", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO3", + "FSPIHD", + "ADC1_CH2", + "MTDO" + ], + "categorias": [ + "GPIO", + "SPI", + "ADC", + "JTAG" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "7", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO4", + "FSPICLK", + "ADC1_CH3", + "MTCK" + ], + "categorias": [ + "GPIO", + "SPI", + "ADC", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "8", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO5", + "FSPID", + "ADC1_CH4", + "MTDI" + ], + "categorias": [ + "GPIO", + "SPI", + "ADC", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "9", + "nome": "VDDPST1", + "tipo": "power", + "funcoes": ["IO 域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "10", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": ["GPIO8"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 3.3 节)" + ] + }, + { + "numero": "11", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": ["GPIO9"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "12", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO10", + "ZCD0" + ], + "categorias": ["GPIO"] + }, + { + "numero": "13", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO11", + "ZCD1" + ], + "categorias": ["GPIO"] + }, + { + "numero": "14", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDDA_PMU", "VBAT"], + "funcoes": ["GPIO12"], + "categorias": ["GPIO"] + }, + { + "numero": "15", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDDA_PMU", "VBAT"], + "funcoes": [ + "GPIO13", + "XTAL_32K_P" + ], + "categorias": [ + "GPIO", + "时钟" + ] + }, + { + "numero": "16", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDDA_PMU", "VBAT"], + "funcoes": [ + "GPIO14", + "XTAL_32K_N" + ], + "categorias": [ + "GPIO", + "时钟" + ] + }, + { + "numero": "17", + "nome": "CHIP_EN", + "tipo": "analog", + "alimentacao": ["VBAT"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "18", + "nome": "VBAT", + "tipo": "power", + "funcoes": ["模拟域或电池电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "19", + "nome": "VDDA_PMU", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "20", + "nome": "VDDPST1", + "tipo": "power", + "funcoes": ["IO 域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "21", + "nome": "GPIO22", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": ["GPIO22"], + "categorias": ["GPIO"] + }, + { + "numero": "22", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO23", + "U0RXD", + "FSPICS1" + ], + "categorias": [ + "GPIO", + "UART", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "23", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO24", + "U0TXD", + "FSPICS2" + ], + "categorias": [ + "GPIO", + "UART", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "24", + "nome": "GPIO25", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO24", + "FSPICS3" + ], + "categorias": [ + "GPIO", + "SPI", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制 JTAG 信号源(详见数据手册第 3.3 节)" + ] + }, + { + "numero": "25", + "nome": "GPIO26", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO26", + "FSPICS4", + "USB_D-" + ], + "categorias": [ + "GPIO", + "SPI", + "USB" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "26", + "nome": "GPIO27", + "tipo": "io", + "alimentacao": ["VDDPST2"], + "funcoes": [ + "GPIO27", + "FSPICS5", + "USB_D+" + ], + "categorias": [ + "GPIO", + "SPI", + "USB" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用 USB 内部上拉", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "27", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "28", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.2 节"] + }, + { + "numero": "29", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.3.2 节"] + }, + { + "numero": "30", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "31", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "32", + "nome": "ANT", + "tipo": "analog", + "funcoes": ["RF 天线连接"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "33", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-P4.json b/data/zh-CN/conexoes/ESP32-P4.json new file mode 100644 index 0000000..56069ce --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-P4.json @@ -0,0 +1,1528 @@ +[ + { + "numero": "1", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDD_LP", "VDD_BAT"], + "funcoes": [ + "GPIO1", + "LP_GPIO1", + "XTAL_32K_P" + ], + "categorias": [ + "GPIO", + "时钟", + "低功耗" + ] + }, + { + "numero": "2", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD_LP", "VDD_BAT"], + "funcoes": [ + "GPIO2", + "LP_GPIO2", + "MTCK", + "TOUCH_CHANNEL1" + ], + "categorias": [ + "GPIO", + "低功耗", + "JTAG", + "触摸" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "3", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDD_LP", "VDD_BAT"], + "funcoes": [ + "GPIO3", + "LP_GPIO3", + "MTDI", + "TOUCH_CHANNEL2" + ], + "categorias": [ + "GPIO", + "低功耗", + "JTAG", + "触摸" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "4", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO4", + "LP_GPIO4", + "MTMS", + "TOUCH_CHANNEL3" + ], + "categorias": [ + "GPIO", + "低功耗", + "JTAG", + "触摸" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "5", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO5", + "LP_GPIO5", + "MTDO", + "TOUCH_CHANNEL4" + ], + "categorias": [ + "GPIO", + "低功耗", + "JTAG", + "触摸" + ], + "avisos": [ + "用于调试的引脚" + ] + }, + { + "numero": "6", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO6", + "LP_GPIO6", + "SPI2_HOLD_PAD", + "TOUCH_CHANNEL5" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "7", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO7", + "LP_GPIO7", + "SPI2_CS_PAD", + "TOUCH_CHANNEL6" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "8", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO8", + "LP_GPIO8", + "SPI2_D_PAD", + "TOUCH_CHANNEL7" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "9", + "nome": "VDD_LP", + "tipo": "power", + "funcoes": ["低功耗域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "10", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO9", + "LP_GPIO9", + "SPI2_CK_PAD", + "TOUCH_CHANNEL8" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "11", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO10", + "LP_GPIO10", + "SPI2_Q_PAD", + "TOUCH_CHANNEL9" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "12", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO11", + "LP_GPIO11", + "SPI2_WP_PAD", + "TOUCH_CHANNEL10" + ], + "categorias": [ + "GPIO", + "低功耗", + "SPI", + "触摸" + ] + }, + { + "numero": "13", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO12", + "LP_GPIO12", + "TOUCH_CHANNEL11" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸" + ] + }, + { + "numero": "14", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO13", + "LP_GPIO13", + "TOUCH_CHANNEL12" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸" + ] + }, + { + "numero": "15", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO14", + "LP_GPIO14", + "TOUCH_CHANNEL13", + "LP_UART_TXD_PAD" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "UART" + ] + }, + { + "numero": "16", + "nome": "GPIO15", + "tipo": "io", + "alimentacao": ["VDD_LP"], + "funcoes": [ + "GPIO15", + "LP_GPIO15", + "TOUCH_CHANNEL14", + "LP_UART_RXD_PAD" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "UART" + ] + }, + { + "numero": "17", + "nome": "GPIO16", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO16", + "ADC1_CHANNEL0" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "18", + "nome": "GPIO17", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO17", + "ADC1_CHANNEL1" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "19", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO18", + "ADC1_CHANNEL2" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "20", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO19", + "ADC1_CHANNEL3" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "21", + "nome": "VDD_IO_0", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.8V 或 3.3V", + "建议最小电压:1.65V 或 3.0V", + "建议最大电压:1.95V 或 3.6V", + "电压电平必须根据设备所用 Flash 存储型号进行调整(参见引脚 30)", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "22", + "nome": "GPIO20", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO20", + "ADC1_CHANNEL4" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "23", + "nome": "GPIO21", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO21", + "ADC1_CHANNEL5" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "24", + "nome": "GPIO22", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO22", + "ADC1_CHANNEL6" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "25", + "nome": "GPIO23", + "tipo": "io", + "alimentacao": ["VDD_IO_0"], + "funcoes": [ + "GPIO23", + "ADC1_CHANNEL7", + "REF_50M_CLK_PAD" + ], + "categorias": [ + "GPIO", + "ADC", + "时钟" + ] + }, + { + "numero": "26", + "nome": "VDD_HP_0", + "tipo": "power", + "funcoes": ["大功率数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.1V", + "建议最小电压:0.99V", + "建议最大电压:1.3V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "27", + "nome": "FLASH_CS", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的片选"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "28", + "nome": "FLASH_Q", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的数据线"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "29", + "nome": "FLASH_WP", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的 Write Protect"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "30", + "nome": "VDD_FLASHIO", + "tipo": "power", + "funcoes": ["外部 Flash 存储电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.8V 或 3.3V", + "建议最小电压:1.65V 或 3.0V", + "建议最大电压:1.95V 或 3.6V", + "电压电平必须根据设备所用 Flash 存储型号进行调整", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "31", + "nome": "FLASH_HOLD", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的 Hold"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "32", + "nome": "FLASH_CK", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的时钟"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "33", + "nome": "FLASH_D", + "tipo": "dedicated", + "alimentacao": ["VDD_FLASHIO"], + "funcoes": ["存储 Flash 的数据线"], + "categorias": ["SPI"], + "avisos": [ + "专用于外部 Flash 存储", + "不得用于其他功能" + ] + }, + { + "numero": "34", + "nome": "DSI_REXT", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY 4.02kΩ 外部电阻"], + "categorias": ["DSI"], + "avisos": [ + "该引脚必须连接 4.02kΩ 外部电阻,以确保 MIPI DSI 接口正常工作", + "不得用于其他功能" + ] + }, + { + "numero": "35", + "nome": "DSI_DATAP1", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY DATAP1"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的正数据线 1", + "不得用于其他功能" + ] + }, + { + "numero": "36", + "nome": "DSI_DATAN1", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY DATAN1"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的负数据线 1", + "不得用于其他功能" + ] + }, + { + "numero": "37", + "nome": "DSI_CLKN", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY CLOCKN"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的负时钟线", + "不得用于其他功能" + ] + }, + { + "numero": "38", + "nome": "DSI_CLKP", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY CLOCKP"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的正时钟线", + "不得用于其他功能" + ] + }, + { + "numero": "39", + "nome": "DSI_DATAP0", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY DATAP0"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的正数据线 0", + "不得用于其他功能" + ] + }, + { + "numero": "40", + "nome": "DSI_DATAN0", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI DSI PHY DATAN0"], + "categorias": ["DSI"], + "avisos": [ + "该引脚专用于 MIPI DSI 接口的负数据线 0", + "不得用于其他功能" + ] + }, + { + "numero": "41", + "nome": "VDD_MIPI_DPHY", + "tipo": "power", + "funcoes": ["MIPI DPHY 接口(DSI/CSI)电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:2.5V", + "建议最小电压:2.25V", + "建议最大电压:2.75V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "42", + "nome": "CSI_DATAN0", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY DATAN0"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的负数据线 0", + "不得用于其他功能" + ] + }, + { + "numero": "43", + "nome": "CSI_DATAP0", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY DATAP0"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的正数据线 0", + "不得用于其他功能" + ] + }, + { + "numero": "44", + "nome": "CSI_CLKP", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY CLOCKP"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的正时钟线", + "不得用于其他功能" + ] + }, + { + "numero": "45", + "nome": "CSI_CLKN", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY CLOCKN"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的负时钟线", + "不得用于其他功能" + ] + }, + { + "numero": "46", + "nome": "CSI_DATAN1", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY DATAN1"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的负数据线 1", + "不得用于其他功能" + ] + }, + { + "numero": "47", + "nome": "CSI_DATAP1", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY DATAP1"], + "categorias": ["CSI"], + "avisos": [ + "该引脚专用于 MIPI CSI 接口的正数据线 1", + "不得用于其他功能" + ] + }, + { + "numero": "48", + "nome": "CSI_REXT", + "tipo": "dedicated", + "alimentacao": ["VDD_MIPI_DPHY"], + "funcoes": ["MIPI CSI PHY 4.02kΩ 外部电阻"], + "categorias": ["CSI"], + "avisos": [ + "该引脚必须连接 4.02kΩ 外部电阻,以确保 MIPI CSI 接口正常工作", + "不得用于其他功能" + ] + }, + { + "numero": "49", + "nome": "DM", + "tipo": "dedicated", + "alimentacao": ["VDD_USBPHY"], + "funcoes": ["USB2 OTG PHY DM"], + "categorias": ["USB"], + "avisos": [ + "该引脚专用于 USB OTG 接口的负数据线", + "不得用于其他功能" + ] + }, + { + "numero": "50", + "nome": "DP", + "tipo": "dedicated", + "alimentacao": ["VDD_USBPHY"], + "funcoes": ["USB2 OTG PHY DP"], + "categorias": ["USB"], + "avisos": [ + "该引脚专用于 USB OTG 接口的正数据线", + "不得用于其他功能" + ] + }, + { + "numero": "51", + "nome": "VDD_USBPHY", + "tipo": "power", + "funcoes": ["USB PHY 接口电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.97V", + "建议最大电压:3.63V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "52", + "nome": "GPIO24", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO24", + "USB1P1_N0" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": [ + "默认情况下,该引脚用于 USB Serial/JTAG", + "可通过软件重新配置为 GPIO" + ] + }, + { + "numero": "53", + "nome": "GPIO25", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO25", + "USB1P1_P0" + ], + "categorias": [ + "GPIO", + "USB" + ], + "avisos": [ + "默认情况下,该引脚用于 USB Serial/JTAG", + "可通过软件重新配置为 GPIO", + "复位后,该引脚将配置为输入并启用 USB 内部上拉" + ] + }, + { + "numero": "54", + "nome": "NC", + "tipo": "nc", + "funcoes": ["未连接"], + "categorias": [], + "avisos": ["不得使用"] + }, + { + "numero": "55", + "nome": "GPIO26", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO26", + "USB1P1_N1" + ], + "categorias": [ + "GPIO", + "USB" + ] + }, + { + "numero": "56", + "nome": "GPIO27", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO27", + "USB1P1_P1" + ], + "categorias": [ + "GPIO", + "USB" + ] + }, + { + "numero": "57", + "nome": "GPIO28", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO28", + "SPI2_CS_PAD", + "GMAC_PHY_RXDV_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ] + }, + { + "numero": "58", + "nome": "GPIO29", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO29", + "SPI2_D_PAD", + "GMAC_PHY_RXD0_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ] + }, + { + "numero": "59", + "nome": "VDD_PSRAM_0", + "tipo": "power", + "funcoes": ["外部 PSRAM 存储电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.65V", + "建议最小电压:1.8V", + "建议最大电压:1.95V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "60", + "nome": "GPIO30", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO30", + "SPI2_CK_PAD", + "GMAC_PHY_RXD1_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ] + }, + { + "numero": "61", + "nome": "GPIO31", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO31", + "SPI2_Q_PAD", + "GMAC_PHY_RXER_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ] + }, + { + "numero": "62", + "nome": "VDD_IO_4", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.8V 或 3.3V", + "建议最小电压:1.65V 或 3.0V", + "建议最大电压:1.95V 或 3.6V", + "电压电平必须根据设备所用 Flash 存储型号进行调整(参见引脚 30)", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "63", + "nome": "GPIO32", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO32", + "SPI2_HOLD_PAD", + "GMAC_RMII_CLK_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ], + "avisos": ["复位期间,该引脚将配置为输入"] + }, + { + "numero": "64", + "nome": "GPIO33", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO33", + "SPI2_WP_PAD", + "GMAC_PHY_TXEN_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ], + "avisos": ["复位期间,该引脚将配置为输入"] + }, + { + "numero": "65", + "nome": "GPIO34", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO34", + "SPI2_IO4_PAD", + "GMAC_PHY_TXD0_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "用于控制 JTAG 信号源(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "66", + "nome": "GPIO35", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO35", + "SPI2_IO5_PAD", + "GMAC_PHY_TXD1_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "67", + "nome": "VDD_PSRAM_1", + "tipo": "power", + "funcoes": ["外部 PSRAM 存储电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.65V", + "建议最小电压:1.8V", + "建议最大电压:1.95V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "68", + "nome": "GPIO36", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO36", + "SPI2_IO6_PAD", + "GMAC_PHY_TXER_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 3.3 节)" + ] + }, + { + "numero": "69", + "nome": "GPIO37", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO37", + "SPI2_IO7_PAD", + "UART0_TXD_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "启动配置", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "70", + "nome": "GPIO38", + "tipo": "io", + "alimentacao": ["VDD_IO_4"], + "funcoes": [ + "GPIO38", + "SPI2_DQS_PAD", + "UART0_RXD_PAD" + ], + "categorias": [ + "GPIO", + "SPI", + "启动配置", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "71", + "nome": "VDDO_FLASH", + "tipo": "power", + "funcoes": ["外部 Flash 存储电源输出"], + "categorias": ["电源"], + "avisos": [ + "最大电流:50mA", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "72", + "nome": "VDDO_PSRAM", + "tipo": "power", + "funcoes": ["内部和外部 PSRAM 存储电源输出"], + "categorias": ["电源"], + "avisos": [ + "最大电流:50mA", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "73", + "nome": "VDDO_3", + "tipo": "power", + "funcoes": ["电源输出"], + "categorias": ["电源"], + "avisos": [ + "最大电流:50mA", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "74", + "nome": "VDDO_4", + "tipo": "power", + "funcoes": ["电源输出"], + "categorias": ["电源"], + "avisos": [ + "最大电流:50mA", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "75", + "nome": "VDD_LDO", + "tipo": "power", + "funcoes": ["模拟域电源输入,为 LDO 供电"], + "categorias": ["电源"], + "avisos": ["有关芯片电源的更多详情,详见数据手册第 2.6 节"] + }, + { + "numero": "76", + "nome": "VDD_HP_2", + "tipo": "power", + "funcoes": ["大功率数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.1V", + "建议最小电压:0.99V", + "建议最大电压:1.3V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "77", + "nome": "VDD_DCDCC", + "tipo": "power", + "funcoes": ["模拟域电源输入,为 DC/DC 转换器供电"], + "categorias": ["电源"], + "avisos": ["有关芯片电源的更多详情,详见数据手册第 2.6 节"] + }, + { + "numero": "78", + "nome": "FB_DCDC", + "tipo": "analog", + "funcoes": ["外部 DC/DC 转换器的电源反馈"], + "categorias": ["电源"], + "avisos": [ + "与外部 DC/DC 转换器的反馈电阻一起调节 VDD_HP_0/2/3 电压", + "有关电源方案的更多详情,详见数据手册第 2.6.2 节" + ] + }, + { + "numero": "79", + "nome": "EN_DCDC", + "tipo": "analog", + "funcoes": ["外部 DC/DC 转换器电源使能"], + "categorias": ["电源"], + "avisos": ["有关电源方案的更多详情,详见数据手册第 2.6.2 节"] + }, + { + "numero": "80", + "nome": "GPIO39", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO39", + "SD1_CDATA0_PAD", + "REF_50M_CLK_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "时钟" + ] + }, + { + "numero": "81", + "nome": "GPIO40", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO40", + "SD1_CDATA1_PAD", + "GMAC_PHY_TXEN_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "82", + "nome": "GPIO41", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO41", + "SD1_CDATA2_PAD", + "GMAC_PHY_TXD0_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "83", + "nome": "GPIO42", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO42", + "SD1_CDATA3_PAD", + "GMAC_PHY_TXD1_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "84", + "nome": "GPIO43", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO43", + "SD1_CCLK_PAD", + "GMAC_PHY_TXER_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "85", + "nome": "VDD_IO_5", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.8V 或 3.3V", + "建议最小电压:1.65V 或 3.0V", + "建议最大电压:1.95V 或 3.6V", + "电压电平必须根据设备所用 Flash 存储型号进行调整(参见引脚 30)", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "86", + "nome": "GPIO44", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO44", + "SD1_CCMD_PAD", + "GMAC_RMII_CLK_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "87", + "nome": "GPIO45", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO45", + "SD1_CDATA4_PAD", + "GMAC_PHY_RXDV_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "88", + "nome": "GPIO46", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO46", + "SD1_CDATA5_PAD", + "GMAC_PHY_RXD0_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "89", + "nome": "GPIO47", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO47", + "SD1_CDATA6_PAD", + "GMAC_PHY_RXD1_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "90", + "nome": "GPIO48", + "tipo": "io", + "alimentacao": ["VDD_IO_5"], + "funcoes": [ + "GPIO48", + "SD1_CDATA7_PAD", + "GMAC_PHY_RXER_PAD" + ], + "categorias": [ + "GPIO", + "SD", + "Ethernet" + ] + }, + { + "numero": "91", + "nome": "VDD_HP_3", + "tipo": "power", + "funcoes": ["大功率数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.1V", + "建议最小电压:0.99V", + "建议最大电压:1.3V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "92", + "nome": "GPIO49", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO49", + "GMAC_PHY_TXEN_PAD", + "ADC2_CHANNEL0" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "93", + "nome": "GPIO50", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO5-", + "GMAC_RMII_CLK_PAD", + "ADC2_CHANNEL1" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "94", + "nome": "GPIO51", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO51", + "GMAC_PHY_RXDV_PAD", + "ADC2_CHANNEL2", + "ANA_COMP0" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "95", + "nome": "GPIO52", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO52", + "GMAC_PHY_RXD0_PAD", + "ADC2_CHANNEL3", + "ANA_COMP0" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "96", + "nome": "VDD_IO_6", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:1.8V 或 3.3V", + "建议最小电压:1.65V 或 3.0V", + "建议最大电压:1.95V 或 3.6V", + "电压电平必须根据设备所用 Flash 存储型号进行调整(参见引脚 30)", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "97", + "nome": "GPIO53", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO53", + "GMAC_PHY_RXD1_PAD", + "ADC2_CHANNEL4", + "ANA_COMP1" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "98", + "nome": "GPIO54", + "tipo": "io", + "alimentacao": ["VDD_IO_6"], + "funcoes": [ + "GPIO54", + "GMAC_PHY_RXER_PAD", + "ADC2_CHANNEL5", + "ANA_COMP1" + ], + "categorias": [ + "GPIO", + "Ethernet", + "ADC" + ] + }, + { + "numero": "99", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.5 节"] + }, + { + "numero": "100", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.5 节"] + }, + { + "numero": "101", + "nome": "VDD_ANA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.0V", + "建议最小电压:3.3V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "102", + "nome": "VDD_BAT", + "tipo": "power", + "funcoes": ["电池域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:2.5V", + "建议最小电压:3.3V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.6 节" + ] + }, + { + "numero": "103", + "nome": "CHIP_PU", + "tipo": "analog", + "alimentacao": ["VDD_BAT"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "104", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDD_LP", "VDD_BAT"], + "funcoes": [ + "GPIO0", + "LP_GPIO0", + "XTAL_32K_N" + ], + "categorias": [ + "GPIO", + "时钟", + "低功耗" + ] + }, + { + "numero": "105", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] diff --git a/data/zh-CN/conexoes/ESP32-S2.json b/data/zh-CN/conexoes/ESP32-S2.json new file mode 100644 index 0000000..dbbf7d0 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-S2.json @@ -0,0 +1,1014 @@ +[ + { + "numero": "1", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "2", + "nome": "LNA_IN", + "tipo": "analog", + "funcoes": ["天线 RF 信号(Wi-Fi)输入输出"], + "categorias": ["天线"] + }, + { + "numero": "3", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "4", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "5", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO0", + "RTC_GPIO0" + ], + "categorias": [ + "GPIO", + "低功耗", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "6", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO1", + "RTC_GPIO1", + "ADC1_CH0", + "TOUCH1" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "7", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO2", + "RTC_GPIO2", + "ADC1_CH1", + "TOUCH2" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "8", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO3", + "RTC_GPIO3", + "ADC1_CH2", + "TOUCH3" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ], + "avisos": ["复位期间,该引脚将配置为输入"] + }, + { + "numero": "9", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO4", + "RTC_GPIO4", + "ADC1_CH3", + "TOUCH4" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ], + "avisos": ["复位期间,该引脚将配置为输入"] + }, + { + "numero": "10", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO5", + "RTC_GPIO5", + "ADC1_CH4", + "TOUCH5" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ] + }, + { + "numero": "11", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO6", + "RTC_GPIO6", + "ADC1_CH5", + "TOUCH6" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ] + }, + { + "numero": "12", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO7", + "RTC_GPIO7", + "ADC1_CH6", + "TOUCH7" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ] + }, + { + "numero": "13", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO8", + "RTC_GPIO8", + "ADC1_CH7", + "TOUCH8" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸" + ] + }, + { + "numero": "14", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO9", + "RTC_GPIO9", + "ADC1_CH8", + "TOUCH9", + "FSPIHD" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "15", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO10", + "RTC_GPIO10", + "ADC1_CH9", + "TOUCH10", + "FSPICS0", + "FSPIIO4" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "16", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO11", + "RTC_GPIO11", + "ADC2_CH0", + "TOUCH11", + "FSPID", + "FSPIIO5" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "17", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO12", + "RTC_GPIO12", + "ADC2_CH1", + "TOUCH12", + "FSPICLK", + "FSPIIO6" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "18", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO13", + "RTC_GPIO13", + "ADC2_CH2", + "TOUCH13", + "FSPIQ", + "FSPIIO7" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "19", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO14", + "RTC_GPIO14", + "ADC2_CH3", + "TOUCH14", + "FSPIWP", + "FSPIDQS" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "20", + "nome": "VDD3P3_RTC", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "21", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO15", + "RTC_GPIO15", + "XTAL_32K_P", + "ADC2_CH4", + "U0RTS" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "ADC", + "UART" + ] + }, + { + "numero": "22", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO16", + "RTC_GPIO16", + "XTAL_32K_N", + "ADC2_CH5", + "U0CTS" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART", + "ADC" + ] + }, + { + "numero": "23", + "nome": "DAC_1", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO17", + "RTC_GPIO17", + "ADC2_CH6", + "U1TXD", + "DAC_1" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "24", + "nome": "DAC_2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO18", + "RTC_GPIO18", + "ADC2_CH7", + "U1RXD", + "DAC_2", + "CLK_OUT3" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "DAC", + "时钟" + ], + "avisos": ["复位后,该引脚将配置为输入并启用内部上拉"] + }, + { + "numero": "25", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO19", + "RTC_GPIO19", + "ADC2_CH8", + "U1RTS", + "CLK_OUT2", + "USB_D-" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "时钟", + "USB" + ], + "avisos": ["默认情况下,该引脚用于 USB Serial/JTAG"] + }, + { + "numero": "26", + "nome": "GPIO20", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO20", + "RTC_GPIO20", + "ADC2_CH9", + "U1CTS", + "CLK_OUT1", + "USB_D+" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "时钟", + "USB" + ], + "avisos": ["默认情况下,该引脚用于 USB Serial/JTAG"] + }, + { + "numero": "27", + "nome": "VDD3P3_RTC_IO", + "tipo": "power", + "funcoes": ["低功耗(RTC)域和部分数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "28", + "nome": "GPIO21", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": [ + "GPIO21", + "RTC_GPIO21" + ], + "categorias": [ + "GPIO", + "低功耗" + ] + }, + { + "numero": "29", + "nome": "SPICS1", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO26", + "SPICS1" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "30", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": ["Flash 和 PSRAM 存储电源输入/输出"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:1.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "31", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO27", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "32", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO28", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "33", + "nome": "SPICS0", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO29", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "34", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO30", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "35", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO31", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "36", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO32", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "37", + "nome": "GPIO33", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU", "VDD_SPI"], + "funcoes": [ + "GPIO33", + "FSPIHD", + "SPIIO4" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 3.4.2 节)" + ] + }, + { + "numero": "38", + "nome": "GPIO34", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU", "VDD_SPI"], + "funcoes": [ + "GPIO34", + "FSPICS0", + "SPIIO5" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 3.4.2 节)" + ] + }, + { + "numero": "39", + "nome": "GPIO35", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU", "VDD_SPI"], + "funcoes": [ + "GPIO35", + "FSPID", + "SPIIO6" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 3.4.2 节)" + ] + }, + { + "numero": "40", + "nome": "GPIO36", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU", "VDD_SPI"], + "funcoes": [ + "GPIO36", + "FSPICLK", + "SPIIO7" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 3.4.2 节)" + ] + }, + { + "numero": "41", + "nome": "GPIO37", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU", "VDD_SPI"], + "funcoes": [ + "GPIO37", + "FSPIQ", + "SPIDQS" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 3.4.2 节)" + ] + }, + { + "numero": "42", + "nome": "GPIO38", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO38", + "FSPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "43", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO39", + "CLK_OUT3", + "MTCK" + ], + "categorias": [ + "GPIO", + "时钟", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "44", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO40", + "CLK_OUT2", + "MTDO" + ], + "categorias": [ + "GPIO", + "时钟", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "45", + "nome": "VDD3P3_CPU", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "46", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO41", + "CLK_OUT1", + "MTDI" + ], + "categorias": [ + "GPIO", + "时钟", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "47", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO42", + "MTMS" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "48", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO43", + "U0TXD", + "CLK_OUT1" + ], + "categorias": [ + "GPIO", + "UART", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "49", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO44", + "U0RXD", + "CLK_OUT2" + ], + "categorias": [ + "GPIO", + "UART", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "50", + "nome": "GPIO45", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO45"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "用于控制 SDIO Slave 时序(详见数据手册第 2.4 节)" + ] + }, + { + "numero": "51", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "52", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "53", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "54", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.3 节" + ] + }, + { + "numero": "55", + "nome": "GPIO46", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO46"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "该引脚仅为输入(input only)", + "用于控制芯片启动模式(详见数据手册第 2.4 节)", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 2.4 节)" + ] + }, + { + "numero": "56", + "nome": "CHIP_PU", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC_IO"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "57", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-S3.json b/data/zh-CN/conexoes/ESP32-S3.json new file mode 100644 index 0000000..acec692 --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-S3.json @@ -0,0 +1,1059 @@ +[ + { + "numero": "1", + "nome": "LNA_IN", + "tipo": "analog", + "funcoes": ["天线 RF 信号(Wi-Fi 和 Bluetooth)输入输出"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "2", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "3", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "4", + "nome": "CHIP_PU", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻" + ] + }, + { + "numero": "5", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO0", + "RTC_GPIO0", + "sar_i2c_scl_0" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "I2C_SDA 功能在低功耗(RTC)模式下可用", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "6", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO1", + "RTC_GPIO1", + "sar_i2c_sda_0", + "TOUCH1", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "触摸", + "ADC" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(RTC)模式下可用" + ] + }, + { + "numero": "7", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO2", + "RTC_GPIO2", + "sar_i2c_scl_1", + "TOUCH2", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "触摸", + "ADC" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(RTC)模式下可用" + ] + }, + { + "numero": "8", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO3", + "RTC_GPIO3", + "sar_i2c_sda_1", + "TOUCH3", + "ADC1_CH2" + ], + "categorias": [ + "GPIO", + "低功耗", + "I2C", + "触摸", + "ADC" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入", + "I2C_SDA 功能在低功耗(RTC)模式下可用", + "用于控制 JTAG 信号源(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "9", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO4", + "RTC_GPIO4", + "TOUCH4", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC" + ] + }, + { + "numero": "10", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO5", + "RTC_GPIO5", + "TOUCH5", + "ADC1_CH4" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC" + ] + }, + { + "numero": "11", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO6", + "RTC_GPIO6", + "TOUCH6", + "ADC1_CH5" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC" + ] + }, + { + "numero": "12", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO7", + "RTC_GPIO7", + "TOUCH7", + "ADC1_CH6" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC" + ] + }, + { + "numero": "13", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO8", + "RTC_GPIO8", + "TOUCH8", + "ADC1_CH7", + "SUBSPICS1" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ] + }, + { + "numero": "14", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO9", + "RTC_GPIO9", + "TOUCH9", + "ADC1_CH8", + "SUBSPIHD", + "FSPIHD" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "15", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO10", + "RTC_GPIO10", + "TOUCH10", + "ADC1_CH9", + "SUBSPICS0", + "FSPICS0", + "FSPIIO4" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "16", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO11", + "RTC_GPIO11", + "TOUCH11", + "ADC2_CH0", + "SUBSPID", + "FSPID", + "FSPIIO5" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "17", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO12", + "RTC_GPIO12", + "TOUCH12", + "ADC2_CH1", + "SUBSPICLK", + "FSPICLK", + "FSPIIO6" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "18", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO13", + "RTC_GPIO13", + "TOUCH13", + "ADC2_CH2", + "SUBSPIQ", + "FSPIQ", + "FSPIIO7" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "19", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO14", + "RTC_GPIO14", + "TOUCH14", + "ADC2_CH3", + "SUBSPIWP", + "FSPIWP", + "FSPIDQS" + ], + "categorias": [ + "GPIO", + "低功耗", + "触摸", + "ADC", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "20", + "nome": "VDD3P3_RTC", + "tipo": "power", + "funcoes": ["低功耗(RTC)域和部分数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "21", + "nome": "XTAL_32K_P", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO15", + "RTC_GPIO15", + "XTAL_32K_P", + "ADC2_CH4", + "U0RTS" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "ADC", + "UART" + ] + }, + { + "numero": "22", + "nome": "XTAL_32K_N", + "tipo": "io", + "alimentacao": ["VDDPST1"], + "funcoes": [ + "GPIO16", + "RTC_GPIO16", + "XTAL_32K_N", + "ADC2_CH5", + "U0CTS" + ], + "categorias": [ + "GPIO", + "低功耗", + "时钟", + "UART", + "ADC" + ] + }, + { + "numero": "23", + "nome": "GPIO17", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO17", + "RTC_GPIO17", + "ADC2_CH6", + "U1TXD" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "24", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO18", + "RTC_GPIO18", + "ADC2_CH7", + "U1RXD", + "CLK_OUT3" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "时钟" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "25", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO19", + "RTC_GPIO19", + "ADC2_CH8", + "U1RTS", + "CLK_OUT2", + "USB_D-" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "时钟", + "USB" + ], + "avisos": ["默认情况下,该引脚用于 USB Serial/JTAG"] + }, + { + "numero": "26", + "nome": "GPIO20", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO20", + "RTC_GPIO20", + "ADC2_CH9", + "U1CTS", + "CLK_OUT1", + "USB_D+" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "UART", + "时钟", + "USB" + ], + "avisos": [ + "复位期间,该引脚将启用 USB 上拉", + "复位后,该引脚将启用 USB 上拉", + "默认情况下,该引脚用于 USB Serial/JTAG" + ] + }, + { + "numero": "27", + "nome": "GPIO21", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO21", + "RTC_GPIO21" + ], + "categorias": [ + "GPIO", + "低功耗" + ] + }, + { + "numero": "28", + "nome": "SPICS1", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO26", + "SPICS1" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "29", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": ["Flash 和 PSRAM 存储电源输入/输出"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:1.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "30", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO27", + "SPIHD" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "31", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO28", + "SPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "32", + "nome": "SPICS0", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO29", + "SPICS0" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "33", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO30", + "SPICLK" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "34", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO31", + "SPIQ" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "35", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": [ + "GPIO32", + "SPID" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "由 SPI Flash 存储使用", + "不建议将该引脚用作 GPIO" + ] + }, + { + "numero": "36", + "nome": "SPICLK_N", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO48", + "SPI CLK_N_DIFF", + "SUBSPI CLK_N_DIFF" + ], + "categorias": [ + "GPIO", + "SPI", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "37", + "nome": "SPICLK_P", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO47", + "SPI CLK_P_DIFF", + "SUBSPI CLK_P_DIFF" + ], + "categorias": [ + "GPIO", + "SPI", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入", + "复位后,该引脚将配置为输入" + ] + }, + { + "numero": "38", + "nome": "GPIO33", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO33", + "FSPIHD", + "SUBSPIHD", + "SPIIO4" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 2.3.4 节)" + ] + }, + { + "numero": "39", + "nome": "GPIO34", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO34", + "FSPICS0", + "SUBSPICS0", + "SPIIO5" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 2.3.4 节)" + ] + }, + { + "numero": "40", + "nome": "GPIO35", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO35", + "FSPID", + "SUBSPID", + "SPIIO6" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 2.3.4 节)" + ] + }, + { + "numero": "41", + "nome": "GPIO36", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO36", + "FSPICLK", + "SUBSPICLK", + "SPIIO7" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 2.3.4 节)" + ] + }, + { + "numero": "42", + "nome": "GPIO37", + "tipo": "io", + "alimentacao": ["VDD_SPI", "VDD3P3_CPU"], + "funcoes": [ + "GPIO37", + "FSPIQ", + "SUBSPIQ", + "SPIDQS" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "无限制,除非芯片使用 8 线 SPI 模式连接 Flash 或 PSRAM(详见数据手册第 2.3.4 节)" + ] + }, + { + "numero": "43", + "nome": "GPIO38", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO38", + "FSPIWP", + "SUBSPIWP" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "44", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO39", + "CLK_OUT3", + "SUBSPICS1", + "MTCK" + ], + "categorias": [ + "GPIO", + "时钟", + "SPI", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "45", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO40", + "CLK_OUT2", + "MTDO" + ], + "categorias": [ + "GPIO", + "时钟", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "46", + "nome": "VDD3P3_CPU", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "47", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO41", + "CLK_OUT1", + "MTDI" + ], + "categorias": [ + "GPIO", + "时钟", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "48", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO42", + "MTMS" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "用于调试的引脚" + ] + }, + { + "numero": "49", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO43", + "U0TXD", + "CLK_OUT1" + ], + "categorias": [ + "GPIO", + "UART", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "50", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO44", + "U0RXD", + "CLK_OUT2" + ], + "categorias": [ + "GPIO", + "UART", + "时钟" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "51", + "nome": "GPIO45", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO45"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "用于控制 SDIO Slave 时序(详见数据手册第 3.2 节)" + ] + }, + { + "numero": "52", + "nome": "GPIO46", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": ["GPIO46"], + "categorias": [ + "GPIO", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "53", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "54", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "55", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "56", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:3.0V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "57", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] \ No newline at end of file diff --git a/data/zh-CN/conexoes/ESP32-S31.json b/data/zh-CN/conexoes/ESP32-S31.json new file mode 100644 index 0000000..3e1548d --- /dev/null +++ b/data/zh-CN/conexoes/ESP32-S31.json @@ -0,0 +1,956 @@ +[ + { + "numero": "1", + "nome": "ANT", + "tipo": "analog", + "funcoes": ["RF 天线连接(Wi-Fi 和 Bluetooth)"], + "categorias": ["天线", "射频"], + "avisos": ["专用于 2.4 GHz 的 RF 引脚。需要 50 欧姆阻抗匹配。"] + }, + { + "numero": "2", + "nome": "VDDA3", + "tipo": "power", + "funcoes": ["模拟域电源(3.3V)"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V(3.0V 至 3.6V)。为 RF 和时钟部分供电。"] + }, + { + "numero": "3", + "nome": "VDDA4", + "tipo": "power", + "funcoes": ["模拟域电源(3.3V)"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V(3.0V 至 3.6V)。为 RF 和时钟部分供电。"] + }, + { + "numero": "4", + "nome": "CHIP_PU", + "tipo": "analog", + "funcoes": ["使能芯片(上电/复位)"], + "categorias": ["电源"], + "avisos": [ + "高电平有效。拉高以启动芯片。", + "请勿让该引脚浮空。建议使用外部 RC 延迟电路以实现稳定启动。" + ] + }, + { + "numero": "5", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO0", + "XTAL_32K_N" + ], + "categorias": [ + "GPIO", + "时钟" + ], + "avisos": ["低功耗时钟引脚。可连接外部 32.768 kHz 晶振(N 引脚)。"] + }, + { + "numero": "6", + "nome": "GPIO1", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO1", + "XTAL_32K_P", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "时钟", + "ADC" + ], + "avisos": ["多功能引脚。外部 32.768 kHz 晶振(P 引脚)和 ADC1 通道 0 模拟输入。"] + }, + { + "numero": "7", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO2", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 1 模拟输入引脚。"] + }, + { + "numero": "8", + "nome": "GPIO3", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO3", + "ADC1_CH2" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 2 模拟输入引脚。"] + }, + { + "numero": "9", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO4", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 3 模拟输入引脚。"] + }, + { + "numero": "10", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO5", + "ADC1_CH4" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 4 模拟输入引脚。"] + }, + { + "numero": "11", + "nome": "VDDPST_1", + "tipo": "power", + "funcoes": ["域 1 的 I/O 电源(3.3V)"], + "categorias": ["电源"], + "avisos": ["建议电压:3.3V。"] + }, + { + "numero": "12", + "nome": "GPIO6", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO6", + "ADC1_CH5" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 5 模拟输入引脚。"] + }, + { + "numero": "13", + "nome": "GPIO7", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO7", + "ADC1_CH6" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 6 模拟输入引脚。"] + }, + { + "numero": "14", + "nome": "GPIO8", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO8", + "ADC1_CH7" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 7 模拟输入引脚。"] + }, + { + "numero": "15", + "nome": "GPIO9", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO9", + "ADC1_CH8" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 8 模拟输入引脚。"] + }, + { + "numero": "16", + "nome": "GPIO10", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO10", + "ADC1_CH9" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 9 模拟输入引脚。"] + }, + { + "numero": "17", + "nome": "GPIO11", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO11", + "ADC1_CH10" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC1 通道 10 模拟输入引脚。"] + }, + { + "numero": "18", + "nome": "VREF_TOUCH", + "tipo": "analog", + "funcoes": ["电容触摸引脚的参考电压"], + "categorias": ["触摸"], + "avisos": ["用于电容读取稳定的专用模拟引脚。"] + }, + { + "numero": "19", + "nome": "GPIO12", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO12", + "ADC2_CH0" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 0 模拟输入引脚。"] + }, + { + "numero": "20", + "nome": "GPIO13", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO13", + "ADC2_CH1" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 1 模拟输入引脚。"] + }, + { + "numero": "21", + "nome": "GPIO14", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO14", + "ADC2_CH2" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 2 模拟输入引脚。"] + }, + { + "numero": "22", + "nome": "GPIO15", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO15", + "ADC2_CH3" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 3 模拟输入引脚。"] + }, + { + "numero": "23", + "nome": "GPIO16", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO16", + "ADC2_CH4" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 4 模拟输入引脚。"] + }, + { + "numero": "24", + "nome": "GPIO17", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO17", + "ADC2_CH5" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 5 模拟输入引脚。"] + }, + { + "numero": "25", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO18", + "ADC2_CH6" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 6 模拟输入引脚。"] + }, + { + "numero": "26", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDDPST_1"], + "funcoes": [ + "GPIO19", + "ADC2_CH7" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["ADC2 通道 7 模拟输入引脚。"] + }, + { + "numero": "27", + "nome": "SDIO_DATA0", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_DATA0", + "FSPID" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口引脚(数据 0)或 SPI2 MOSI。"] + }, + { + "numero": "28", + "nome": "SDIO_DATA1", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_DATA1", + "FSPIQ" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口引脚(数据 1)或 SPI2 MISO。"] + }, + { + "numero": "29", + "nome": "SDIO_DATA2", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_DATA2", + "FSPIWP" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口引脚(数据 2)或 SPI2 Write Protect。"] + }, + { + "numero": "30", + "nome": "VDD_PSRAM_1P8_1", + "tipo": "power", + "funcoes": ["封装内集成 PSRAM 的 1.8V 电源"], + "categorias": ["电源"], + "avisos": ["由内部 LDO 生成,为集成 PSRAM 供电。请勿连接外部电源电路。"] + }, + { + "numero": "31", + "nome": "SDIO_DATA3", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_DATA3", + "FSPIHD" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口引脚(数据 3)或 SPI2 Hold。"] + }, + { + "numero": "32", + "nome": "SDIO_CLK", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_CLK", + "FSPICLK" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口时钟或 SPI2 Clock。"] + }, + { + "numero": "33", + "nome": "SDIO_CMD", + "tipo": "io", + "alimentacao": ["VDDPST_SD"], + "funcoes": [ + "SDIO_CMD", + "FSPICS0" + ], + "categorias": [ + "SDIO", + "SPI" + ], + "avisos": ["高速 SDIO 接口命令或 SPI2 Chip Select 0。"] + }, + { + "numero": "34", + "nome": "VDD_PSRAM_1P8_2", + "tipo": "power", + "funcoes": ["封装内集成 PSRAM 的 1.8V 电源"], + "categorias": ["电源"] + }, + { + "numero": "35", + "nome": "VDD_LDO_1P8", + "tipo": "power", + "funcoes": ["1.8V LDO 输入/输出引脚"], + "categorias": ["电源"] + }, + { + "numero": "36", + "nome": "SPICS", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPICS"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用片选。"] + }, + { + "numero": "37", + "nome": "SPIQ", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPIQ"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用数据 Q(MISO)。"] + }, + { + "numero": "38", + "nome": "SPIWP", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPIWP"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用 Write Protect。"] + }, + { + "numero": "39", + "nome": "VDD_SPI", + "tipo": "power", + "funcoes": ["SPI Flash 接口的专用电源电压"], + "categorias": ["电源"], + "avisos": ["典型电压:内部生成的 3.3V 或 1.8V。"] + }, + { + "numero": "40", + "nome": "SPIHD", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPIHD"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用 Hold。"] + }, + { + "numero": "41", + "nome": "SPICLK", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPICLK"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用时钟。"] + }, + { + "numero": "42", + "nome": "SPID", + "tipo": "io", + "alimentacao": ["VDD_SPI"], + "funcoes": ["SPID"], + "categorias": ["SPI"], + "avisos": ["外部或内部 SPI Flash 的专用数据 D(MOSI)。"] + }, + { + "numero": "43", + "nome": "VCCA/VDDPST_2", + "tipo": "power", + "funcoes": ["域 2 的模拟和数字电源(3.3V)"], + "categorias": ["电源"] + }, + { + "numero": "44", + "nome": "USB_DP", + "tipo": "analog", + "funcoes": ["集成 USB Serial/JTAG 收发器的正引脚"], + "categorias": ["USB"], + "avisos": ["USB D+。具有内部硬件上拉。"] + }, + { + "numero": "45", + "nome": "USB_DM", + "tipo": "analog", + "funcoes": ["集成 USB Serial/JTAG 收发器的负引脚"], + "categorias": ["USB"], + "avisos": ["USB D-。"] + }, + { + "numero": "46", + "nome": "GPIO33", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO33", + "ADC2_CH8" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["多功能引脚:GPIO33 和 ADC2 通道 8。"] + }, + { + "numero": "47", + "nome": "GPIO34", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO34", + "ADC2_CH9" + ], + "categorias": [ + "GPIO", + "ADC" + ], + "avisos": ["多功能引脚:GPIO34 和 ADC2 通道 9。"] + }, + { + "numero": "48", + "nome": "GPIO35", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO35", + "ADC2_CH10" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "49", + "nome": "GPIO36", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO36", + "ADC2_CH11" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "50", + "nome": "GPIO37", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO37", + "ADC2_CH12" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "51", + "nome": "GPIO38", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO38", + "ADC2_CH13" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "52", + "nome": "GPIO39", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO39", + "ADC2_CH14" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "53", + "nome": "GPIO40", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO40", + "ADC2_CH15" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "54", + "nome": "VDDPST_3", + "tipo": "power", + "funcoes": ["域 3 的 I/O 电源(3.3V)"], + "categorias": ["电源"] + }, + { + "numero": "55", + "nome": "GPIO42", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO42", + "ADC2_CH16" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "56", + "nome": "GPIO43", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO43", + "ADC2_CH17" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "57", + "nome": "GPIO44", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO44", + "ADC2_CH18" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "58", + "nome": "GPIO45", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO45", + "ADC2_CH19" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "59", + "nome": "GPIO46", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO46", + "ADC2_CH20" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "60", + "nome": "GPIO47", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": [ + "GPIO47", + "ADC2_CH21" + ], + "categorias": [ + "GPIO", + "ADC" + ] + }, + { + "numero": "61", + "nome": "GPIO48", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": ["GPIO48"], + "categorias": ["GPIO"] + }, + { + "numero": "62", + "nome": "GPIO49", + "tipo": "io", + "alimentacao": ["VDDPST_3"], + "funcoes": ["GPIO49"], + "categorias": ["GPIO"] + }, + { + "numero": "63", + "nome": "VREF_ADC", + "tipo": "analog", + "funcoes": ["用于 ADC 校准的外部稳定参考电压"], + "categorias": ["电源", "ADC"], + "avisos": ["用于模数转换器精确校准的专用模拟引脚。"] + }, + { + "numero": "64", + "nome": "VDDPST_4", + "tipo": "power", + "funcoes": ["域 4 的 I/O 电源(3.3V)"], + "categorias": ["电源"] + }, + { + "numero": "65", + "nome": "GPIO50", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO50"], + "categorias": ["GPIO"] + }, + { + "numero": "66", + "nome": "GPIO51", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO51"], + "categorias": ["GPIO"] + }, + { + "numero": "67", + "nome": "GPIO52", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO52"], + "categorias": ["GPIO"] + }, + { + "numero": "68", + "nome": "GPIO53", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO53"], + "categorias": ["GPIO"] + }, + { + "numero": "69", + "nome": "GPIO54", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": [ + "GPIO54", + "MTDO" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": ["多功能引脚:JTAG MTDO。"] + }, + { + "numero": "70", + "nome": "GPIO55", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": [ + "GPIO55", + "MTCK" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": ["多功能引脚:JTAG MTCK。"] + }, + { + "numero": "71", + "nome": "GPIO56", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": [ + "GPIO56", + "MTDI" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": ["多功能引脚:JTAG MTDI。"] + }, + { + "numero": "72", + "nome": "GPIO57", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": [ + "GPIO57", + "MTMS" + ], + "categorias": [ + "GPIO", + "JTAG" + ], + "avisos": ["多功能引脚:JTAG MTMS。"] + }, + { + "numero": "73", + "nome": "GPIO58", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO58"], + "categorias": ["GPIO"] + }, + { + "numero": "74", + "nome": "GPIO59", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO59"], + "categorias": ["GPIO"] + }, + { + "numero": "75", + "nome": "GPIO60", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO60"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "启动配置(Strapping)引脚(与 GPIO61 配合)。", + "默认启用内部上拉。" + ] + }, + { + "numero": "76", + "nome": "GPIO61", + "tipo": "io", + "alimentacao": ["VDDPST_4"], + "funcoes": ["GPIO61"], + "categorias": ["GPIO", "启动配置"], + "avisos": [ + "用于启动选择的主 Strapping 引脚。", + "默认启用内部上拉。复位时高电平(1)启用 SPI Boot。低电平(0)强制进入 Download 模式。" + ] + }, + { + "numero": "77", + "nome": "VDDA1", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"] + }, + { + "numero": "78", + "nome": "XTAL_N", + "tipo": "analog", + "funcoes": ["高速外部晶振连接(N 输出)"], + "categorias": ["时钟"] + }, + { + "numero": "79", + "nome": "XTAL_P", + "tipo": "analog", + "funcoes": ["高速外部晶振连接(P 输入)"], + "categorias": ["时钟"] + }, + { + "numero": "80", + "nome": "VDDA2", + "tipo": "power", + "funcoes": ["3.3V 模拟域电源"], + "categorias": ["电源"] + }, + { + "numero": "81", + "nome": "GND", + "tipo": "power", + "funcoes": ["中心接地焊盘(Exposed Pad)"], + "categorias": ["电源"], + "avisos": ["应正确焊接至 PCB 接地平面(GND),以实现稳定的 RF 控制和散热。"] + } +] diff --git a/data/zh-CN/conexoes/ESP32.json b/data/zh-CN/conexoes/ESP32.json new file mode 100644 index 0000000..47f55bc --- /dev/null +++ b/data/zh-CN/conexoes/ESP32.json @@ -0,0 +1,964 @@ +[ + { + "numero": "1", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "2", + "nome": "LNA_IN", + "tipo": "analog", + "alimentação": ["VDD3P3"], + "funcoes": ["Wi-Fi 和 Bluetooth 接收机的低噪声放大器(LNA)输入"], + "categorias": ["天线"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "3", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "4", + "nome": "VDD3P3", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "5", + "nome": "SENSOR_VP", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO36", + "RTC_GPIO0", + "ADC1_CH0" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "6", + "nome": "SENSOR_CAPP", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO37", + "RTC_GPIO1", + "ADC1_CH1" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "7", + "nome": "SENSOR_CAPN", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO38", + "RTC_GPIO2", + "ADC1_CH2" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "8", + "nome": "SENSOR_VN", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO39", + "RTC_GPIO3", + "ADC1_CH3" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "9", + "nome": "CHIP_PU", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": ["使能芯片"], + "categorias": ["电源"], + "avisos": [ + "将该引脚置高将使芯片工作", + "将该引脚置低将禁用芯片工作", + "请勿让该引脚浮空,请使用外部上拉电阻", + "有关模拟引脚的更多详情,详见数据手册第 2.4 节" + ] + }, + { + "numero": "10", + "nome": "VDET_1", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO34", + "RTC_GPIO4", + "ADC1_CH6" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "11", + "nome": "VDET_2", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO35", + "RTC_GPIO5", + "ADC1_CH7" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC" + ], + "avisos": ["该引脚仅为输入(input only)"] + }, + { + "numero": "12", + "nome": "32K_XP", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO32", + "RTC_GPIO9", + "ADC1_CH4", + "TOUCH9", + "XTAL_32K_P" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "时钟" + ] + }, + { + "numero": "13", + "nome": "32K_XN", + "tipo": "analog", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO33", + "RTC_GPIO8", + "ADC1_CH5", + "TOUCH8", + "XTAL_32K_N" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "时钟" + ] + }, + { + "numero": "14", + "nome": "GPIO25", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO25", + "RTC_GPIO6", + "ADC2_CH8", + "DAC_1", + "EMAC_RXD0" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "DAC", + "Ethernet" + ] + }, + { + "numero": "15", + "nome": "GPIO26", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO26", + "RTC_GPIO7", + "ADC2_CH9", + "DAC_2", + "EMAC_RXD1" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "DAC", + "Ethernet" + ] + }, + { + "numero": "16", + "nome": "GPIO27", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO27", + "RTC_GPIO17", + "ADC2_CH7", + "TOUCH7", + "EMAC_RXDV" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "Ethernet" + ] + }, + { + "numero": "17", + "nome": "MTMS", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO14", + "RTC_GPIO16", + "ADC2_CH6", + "TOUCH6", + "HSPICLK", + "HS2_CLK", + "SD_CLK", + "EMAC_TXD2", + "MTMS" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "Ethernet", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "18", + "nome": "MTDI", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO12", + "RTC_GPIO15", + "ADC2_CH5", + "TOUCH5", + "HSPIQ", + "HS2_DATA2", + "SD_DATA2", + "EMAC_TXD3", + "MTDI" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "Ethernet", + "JTAG", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "用于调试的引脚", + "用于控制 VDD_SDIO(内部 LDO)电压(详见数据手册第 3.2 节)" + ] + }, + { + "numero": "19", + "nome": "VDD3P3_RTC", + "tipo": "power", + "funcoes": ["低功耗(RTC)域和部分模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "20", + "nome": "MTCK", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO13", + "RTC_GPIO14", + "ADC2_CH4", + "TOUCH4", + "HSPID", + "HS2_DATA3", + "SD_DATA3", + "EMAC_RX_ER", + "MTCK" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "Ethernet", + "JTAG" + ], + "avisos": [ + "复位后,该引脚将配置为输入并启用内部下拉", + "用于调试的引脚" + ] + }, + { + "numero": "21", + "nome": "MTDO", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO15", + "RTC_GPIO13", + "ADC2_CH3", + "TOUCH3", + "HSPICS0", + "HS2_CMD", + "SD_CMD", + "EMAC_RXD3", + "MTDO", + "I2C_SDA" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "Ethernet", + "JTAG", + "I2C", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "I2C_SDA 功能在低功耗(RTC)模式下可用", + "用于调试的引脚", + "用于控制 UART0 上 ROM 消息的显示(详见数据手册第 3.3 节)", + "用于控制 SDIO Slave 时序(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "22", + "nome": "GPIO2", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO2", + "RTC_GPIO12", + "ADC2_CH2", + "TOUCH2", + "HSPIWP", + "HS2_DATA0", + "SD_DATA0", + "I2C_SCL" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "I2C", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "I2C_SCL 功能在低功耗(RTC)模式下可用", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "23", + "nome": "GPIO0", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO0", + "RTC_GPIO11", + "ADC2_CH1", + "TOUCH1", + "CLC_OUT1", + "EMAC_TX_CLK", + "I2C_SDA" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "时钟", + "Ethernet", + "I2C", + "启动配置" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "I2C_SDA 功能在低功耗(RTC)模式下可用", + "用于控制芯片启动模式(详见数据手册第 3.1 节)" + ] + }, + { + "numero": "24", + "nome": "GPIO4", + "tipo": "io", + "alimentacao": ["VDD3P3_RTC"], + "funcoes": [ + "GPIO4", + "RTC_GPIO10", + "ADC2_CH0", + "TOUCH0", + "HSPIHD", + "HS2_DATA1", + "SD_DATA1", + "EMAC_TX_ER", + "I2C_SCL" + ], + "categorias": [ + "GPIO", + "低功耗", + "ADC", + "触摸", + "SPI", + "SD", + "Ethernet", + "I2C" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部下拉", + "复位后,该引脚将配置为输入并启用内部下拉", + "I2C_SCL 功能在低功耗(RTC)模式下可用" + ] + }, + { + "numero": "25", + "nome": "GPIO16", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO16", + "HS1_DATA4", + "U2RXD", + "EMAC_CLK_OUT" + ], + "categorias": [ + "GPIO", + "SPI", + "UART", + "Ethernet" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "26", + "nome": "VDD_SDIO", + "tipo": "power", + "funcoes": ["内部 SDIO 存储(Flash/PSRAM)电源输入/输出"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "该引脚连接至内部 LDO 输出", + "如果直接连接到 VDD3P3_RTC,内部 LDO 将自动禁用", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "27", + "nome": "GPIO17", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO17", + "HS1_DATA5", + "U2TXD", + "EMAC_CLK_OUT_180" + ], + "categorias": [ + "GPIO", + "SPI", + "UART", + "Ethernet" + ], + "avisos": [ + "复位后,该引脚将配置为输入", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "28", + "nome": "SD_DATA_2", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO9", + "SPIHD", + "HS1_DATA2", + "SD_DATA2", + "U1RXD" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "29", + "nome": "SD_DATA_3", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO10", + "SPIWP", + "HS1_DATA3", + "SD_DATA3", + "U1TXD" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "30", + "nome": "SD_CMD", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO11", + "SPICS0", + "HS1_CMD", + "SD_CMD", + "U1RTS" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "31", + "nome": "SD_CLK", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO6", + "SPICLK", + "HS1_CLK", + "SD_CLK", + "U1CTS" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "32", + "nome": "SD_DATA_0", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO7", + "SPIQ", + "HS1_DATA0", + "SD_DATA0", + "U2RTS" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "33", + "nome": "SD_DATA_1", + "tipo": "io", + "alimentacao": ["VDD_SDIO"], + "funcoes": [ + "GPIO8", + "SPID", + "HS1_DATA1", + "SD_DATA1", + "U2CTS" + ], + "categorias": [ + "GPIO", + "SPI", + "SD", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "专用于内部 Flash/PSRAM 通信,不建议用于其他功能" + ] + }, + { + "numero": "34", + "nome": "GPIO5", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO5", + "VSPICS0", + "HS1_DATA6", + "EMAC_RX_CLK" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于控制 SDIO Slave 时序(详见数据手册第 3.4 节)" + ] + }, + { + "numero": "35", + "nome": "GPIO18", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO18", + "VSPICLK", + "HS1_DATA7" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "36", + "nome": "GPIO23", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO23", + "VSPID", + "HS1_STROBE" + ], + "categorias": [ + "GPIO", + "SPI" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "37", + "nome": "VDD3P3_CPU", + "tipo": "power", + "funcoes": ["数字域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:1.8V", + "建议最大电压:3.6V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "38", + "nome": "GPIO19", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO19", + "VSPIQ", + "U0CTS", + "EMAC_TXD0" + ], + "categorias": [ + "GPIO", + "SPI", + "UART", + "Ethernet" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "39", + "nome": "GPIO22", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO22", + "VSPIWP", + "U0RTS", + "EMAC_TXD1" + ], + "categorias": [ + "GPIO", + "SPI", + "UART", + "Ethernet" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "40", + "nome": "U0RXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO3", + "CLK_OUT2", + "U0RXD" + ], + "categorias": [ + "GPIO", + "时钟", + "UART" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "41", + "nome": "U0TXD", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO1", + "CLK_OUT3", + "U0TXD", + "EMAC_RXD2" + ], + "categorias": [ + "GPIO", + "时钟", + "UART", + "Ethernet" + ], + "avisos": [ + "复位期间,该引脚将配置为输入并启用内部上拉", + "复位后,该引脚将配置为输入并启用内部上拉", + "用于调试的引脚" + ] + }, + { + "numero": "42", + "nome": "GPIO21", + "tipo": "io", + "alimentacao": ["VDD3P3_CPU"], + "funcoes": [ + "GPIO21", + "VSPIHD", + "EMAC_TX_EN" + ], + "categorias": [ + "GPIO", + "SPI", + "Ethernet" + ], + "avisos": ["复位后,该引脚将配置为输入"] + }, + { + "numero": "43", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "44", + "nome": "XTAL_N", + "tipo": "analog", + "alimentação": ["VDDA"], + "funcoes": ["时钟负输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "45", + "nome": "XTAL_P", + "tipo": "analog", + "alimentação": ["VDDA"], + "funcoes": ["时钟正输入/输出"], + "categorias": ["时钟"], + "avisos": ["有关模拟引脚的更多详情,详见数据手册第 2.4 节"] + }, + { + "numero": "46", + "nome": "VDDA", + "tipo": "power", + "funcoes": ["模拟域电源输入"], + "categorias": ["电源"], + "avisos": [ + "建议电压:3.3V", + "建议最小电压:2.3V 或 3.0V", + "建议最大电压:3.6V", + "对于集成 Flash 或 PSRAM 的芯片,建议最低电压为 3.0V", + "对于未集成 Flash 或 PSRAM 的芯片,建议最低电压为 2.3V", + "有关芯片电源的更多详情,详见数据手册第 2.5 节" + ] + }, + { + "numero": "47", + "nome": "CAP2", + "tipo": "analog", + "alimentação": ["VDDA"], + "funcoes": ["滤波电容"], + "categorias": ["电源"], + "avisos": [ + "将一个 3.3nF(10%)电容和一个 20kΩ 电阻与 CAP1 并联", + "详见数据手册第 2.2 节" + ] + }, + { + "numero": "48", + "nome": "CAP1", + "tipo": "analog", + "alimentação": ["VDDA"], + "funcoes": ["滤波电容"], + "categorias": ["电源"], + "avisos": [ + "将一个 10nF 电容与 GND 串联", + "详见数据手册第 2.2 节" + ] + }, + { + "numero": "49", + "nome": "GND", + "tipo": "ground", + "funcoes": ["电路电气参考(地)"], + "categorias": ["GND"] + } +] diff --git a/data/zh-CN/frameworks.json b/data/zh-CN/frameworks.json new file mode 100644 index 0000000..3c79df6 --- /dev/null +++ b/data/zh-CN/frameworks.json @@ -0,0 +1,394 @@ +{ + "ESP-IDF": { + "nome": "ESP-IDF", + "icone": "⚙️", + "nome_completo": "Espressif IoT Development Framework", + "descricao": "乐鑫官方原生框架,适用于所有 ESP32 SoC。基于多核 FreeRTOS 和 CMake,可完全控制芯片、外设、射频和模块化组件架构。", + "linguagem": "C / C++", + "tipo": "官方基础框架", + "funcao_principal": "工业级高性能开发,可直接访问寄存器、实时 RTOS 和完整协议栈", + "caracteristicas": [ + "实时操作系统(FreeRTOS SMP 多核)", + "通过 idf_component.yml 原生支持 ESP Component Registry", + "完整的 Wi-Fi 4/6、BLE 5.x、Zigbee 和 Thread 连接协议栈", + "支持所有 SoC(ESP32、S2、S3、C2、C3、C6、H2、P4)", + "高级电源管理和 Deep Sleep 模式", + "强大的安全性:Secure Boot v2、Flash Encryption 和 Crypto HW", + "带自动回滚的加密 OTA 更新", + "现代 Clang/GCC 工具链,支持 C++23 和 JTAG OpenOCD 调试" + ], + "casos_uso": [ + "商业和工业 IoT 产品", + "对电池和功耗有严格要求的设备", + "带中断控制的实时应用", + "使用硬件加密的安全系统", + "高性能多协议网关" + ], + "exemplo": "/exemplos/esp-idf.c", + "exemplos": "https://github.com/espressif/esp-idf/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-idf/en/latest/", + "repositorio": "https://github.com/espressif/esp-idf", + "cor": "#E74C3C" + }, + "ESP-RainMaker": { + "nome": "ESP-RainMaker", + "icone": "☁️", + "nome_completo": "ESP RainMaker AIoT Cloud Platform", + "descricao": "乐鑫面向联网产品的完整云和固件平台。无需从零开发后端或移动应用即可创建 IoT 设备。", + "linguagem": "C / C++", + "tipo": "云端与 AIoT 框架", + "funcao_principal": "借助移动应用(iOS/Android)、AWS Serverless 云和语音控制(Alexa/Google Home)加速智能产品构建", + "caracteristicas": [ + "通过官方应用辅助进行 Wi-Fi 和 BLE 配网", + "根据固件参数在应用中动态生成界面", + "原生集成 Amazon Alexa 和 Google Assistant", + "同时支持本地控制(通过 mDNS/HTTP 的 Local Control)和云端", + "用于设备群和 OTA 管理的管理面板(RainMaker Dashboard)", + "原生兼容 Matter 节点和设备桥接", + "通过 ESP Component Registry 集成的库(espressif/esp_rainmaker)" + ], + "casos_uso": [ + "面向终端消费者的家电和智能照明", + "缩短上市时间(Time-to-Market)的 IoT 产品", + "需要移动应用控制且无需自建基础设施成本的设备", + "带集中式 OTA 更新的远程监控系统" + ], + "exemplo": "/exemplos/esp-rainmaker.c", + "exemplos": "https://github.com/espressif/esp-rainmaker/tree/master/examples", + "documentacao": "https://rainmaker.espressif.com/docs/", + "repositorio": "https://github.com/espressif/esp-rainmaker", + "cor": "#3B82F6" + }, + "ESP-Matter": { + "nome": "ESP-Matter", + "icone": "🏠", + "nome_completo": "ESP Matter SDK", + "descricao": "乐鑫面向 Matter 通用智能家居标准(原 Project CHIP)的官方 SDK。让你的设备可与 Apple HomeKit、Google Home、Amazon Alexa 和 Home Assistant 互操作。", + "linguagem": "C++", + "tipo": "智能家居框架", + "funcao_principal": "开发兼容 Wi-Fi 和 Thread 上统一 Matter 标准的智能设备和桥接", + "caracteristicas": [ + "Matter 规范集群的完整实现", + "支持基于 Wi-Fi 和 Thread 的传输(ESP32-H2 和 ESP32-C6 上的 802.15.4)", + "通过 BLE 或 On-Network 简化调试入网", + "同时兼容 Apple Home、Google Home、Alexa 和 SmartThings", + "基于设备认证证书(DAC)的安全机制", + "支持 Matter Bridge(将传统 Zigbee/BLE 设备接入 Matter)", + "直接集成 ESP-IDF 和 ESP Component Registry" + ], + "casos_uso": [ + "可互操作的灯具、插座、开关和调光器", + "人体存在、温度、湿度和门磁传感器", + "电子锁和窗帘执行器", + "Matter 边界路由器和住宅桥接" + ], + "exemplo": "/exemplos/esp-matter.c", + "exemplos": "https://github.com/espressif/esp-matter/tree/main/examples", + "documentacao": "https://docs.espressif.com/projects/esp-matter/en/latest/", + "repositorio": "https://github.com/espressif/esp-matter", + "cor": "#F59E0B" + }, + "ESP-ADF": { + "nome": "ESP-ADF", + "icone": "🎵", + "nome_completo": "ESP Audio Development Framework", + "descricao": "面向 ESP32 SoC 的高质量数字音频处理、串流和播放专用框架。", + "linguagem": "C / C++", + "tipo": "音频与语音框架", + "funcao_principal": "创建灵活的音频流水线,包含解码器、网络串流、均衡和声学效果", + "caracteristicas": [ + "模块化音频流水线架构(Audio Elements 与 Audio Stream)", + "支持多种编解码器:MP3、AAC、FLAC、WAV、OGG、Opus 和 AMR", + "通过 HTTP、HTTPS、HLS、RTSP 和 WebSockets 进行音频串流", + "支持 Bluetooth A2DP(Sink/Source)和 Bluetooth Handsfree(HFP)", + "声学处理算法(AEC、AGC、NS、参数均衡器)", + "支持 ESP32-LyraT 和 ESP32-S3-Korvo 等专用开发板" + ], + "casos_uso": [ + "智能音箱和网络收音机", + "对讲机、walkie-talkie 和 VoIP 对讲系统", + "带 PSRAM 的音乐播放器", + "楼宇自动化背景音乐系统" + ], + "exemplo": "/exemplos/esp-adf.c", + "exemplos": "https://github.com/espressif/esp-adf/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-adf/en/latest/", + "repositorio": "https://github.com/espressif/esp-adf", + "cor": "#0284C7" + }, + "ESP-SR": { + "nome": "ESP-SR", + "icone": "🎙️", + "nome_completo": "ESP Speech Recognition Framework", + "descricao": "本地语音识别和边缘 AI 音频处理框架,无需互联网连接即可实现语音命令。", + "linguagem": "C / C++", + "tipo": "语音与 AI 框架", + "funcao_principal": "本地语音处理、唤醒词(Wake Word)检测和实时语音命令识别", + "caracteristicas": [ + "WakeNet:精确定位本地唤醒词(如 'Hi, ESP' 和自定义词)", + "MultiNet:离线本地识别数百条语音命令,支持葡萄牙语、英语和普通话", + "AFE(音频前端):回声消除(AEC)、噪声抑制(BSS/NS)和自动增益控制(AGC)", + "支持多个麦克风和定向波束成形(Beamforming)", + "针对 ESP32-S3 和 ESP32-P4 使用 SIMD 向量加速优化", + "组件可在 ESP Component Registry 中获取(espressif/esp-sr)" + ], + "casos_uso": [ + "100% 离线且保护隐私的语音控制家电", + "语音驱动的智能家居面板", + "互动玩具和教育机器人", + "需要免手操作的医疗和工业设备" + ], + "exemplo": "/exemplos/esp-sr.c", + "exemplos": "https://github.com/espressif/esp-sr/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-sr/en/latest/", + "repositorio": "https://github.com/espressif/esp-sr", + "cor": "#6366F1" + }, + "ESP-IoT-Solution": { + "nome": "ESP-IoT-Solution", + "icone": "🧩", + "nome_completo": "ESP-IoT-Solution Driver & Peripheral Suite", + "descricao": "乐鑫官方集合,包含数十个可直接用于生产的驱动、外设组件、触摸屏、传感器和总线协议。", + "linguagem": "C / C++", + "tipo": "外设与驱动库", + "funcao_principal": "加速硬件组件集成(LCD/OLED 屏、环境/IMU 传感器、智能按键、I2C/SPI/Modbus 总线)", + "caracteristicas": [ + "完整传感器驱动(温度、湿度、压力、加速度计、光照)", + "高级物理按键、触摸矩阵和旋转编码器管理", + "LCD 和 OLED 显示屏驱动(ST7789、ILI9341、SSD1306)及触摸控制器(FT6X36、GT911)", + "工业 Modbus 协议栈(基于 RS-485 或 TCP 的 Master 和 Slave)", + "步进电机控制和可寻址 LED 驱动(WS2812/SK6812)", + "在 ESP Component Registry 中完全模块化" + ], + "casos_uso": [ + "带触摸屏和电容按键的人机界面(IHM / HMI)", + "气象站和工业传感器监测", + "通过 RS-485 Modbus 集成的工业自动化设备", + "使用复杂 RGB LED 灯带和矩阵的项目" + ], + "exemplo": "/exemplos/esp-iot-solution.c", + "exemplos": "https://github.com/espressif/esp-iot-solution/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-iot-solution/en/latest/", + "repositorio": "https://github.com/espressif/esp-iot-solution", + "cor": "#10B981" + }, + "ESP-NOW": { + "nome": "ESP-NOW & Mesh", + "icone": "📡", + "nome_completo": "ESP-NOW Protocol & Mesh-Lite", + "descricao": "乐鑫开发的超低延迟无线通信协议,工作在 2.4 GHz 频段,无需传统 Wi-Fi 路由器。", + "linguagem": "C / C++", + "tipo": "网络与 Mesh 协议", + "funcao_principal": "数十块 ESP32 开发板之间的点对点消息、广播和轻量网状组网", + "caracteristicas": [ + "无需路由器或接入点(AP)的直接通信", + "毫秒级传输延迟和即时连接", + "使用 AES-128 密钥的原生加密", + "极其节能,非常适合电池供电节点", + "支持遥控器配对和向多个节点广播", + "支持 Mesh-Lite 进行带 IP 跳转的网状路由" + ], + "casos_uso": [ + "无线遥控器和电池供电墙壁开关", + "田间分布式农业传感器网络", + "舞台灯光和无人机的实时同步", + "住宅报警器和紧急按钮" + ], + "exemplo": "/exemplos/esp-now.c", + "exemplos": "https://github.com/espressif/esp-now/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html", + "repositorio": "https://github.com/espressif/esp-now", + "cor": "#8B5CF6" + }, + "ESP-Zigbee-SDK": { + "nome": "ESP-Zigbee-SDK", + "icone": "🐝", + "nome_completo": "ESP Zigbee SDK (ZCL & ZBOSS)", + "descricao": "官方 SDK,用于在支持 802.15.4 射频的 ESP32 SoC(如 ESP32-H2 和 ESP32-C6)上开发 Zigbee 3.0 节点、路由器和协调器。", + "linguagem": "C / C++", + "tipo": "智能家居与 Mesh", + "funcao_principal": "构建基于 Zigbee 3.0 标准的超轻量、超低功耗楼宇自动化网络", + "caracteristicas": [ + "基于 ZBOSS 协议栈的 Zigbee 3.0 认证实现", + "支持协调器(ZC)、路由器(ZR)和终端设备(ZED / Sleepy End Device)角色", + "丰富的 ZCL 集群库(开/关、亮度、颜色、温度、电能计量)", + "深度睡眠期间功耗仅为微安级,传感器可依靠电池运行多年", + "原生兼容 Zigbee 桥接(Home Assistant ZHA/Zigbee2MQTT、Philips Hue)" + ], + "casos_uso": [ + "由纽扣电池供电的人体存在、门窗和漏水传感器", + "Zigbee 3.0 网络中的智能灯和插座", + "Zigbee 转 Wi-Fi 或 Zigbee 转 Ethernet 网关和桥接", + "高节点密度的商业楼宇自动化" + ], + "exemplo": "/exemplos/esp-zigbee.c", + "exemplos": "https://github.com/espressif/esp-zigbee-sdk/tree/main/examples", + "documentacao": "https://docs.espressif.com/projects/esp-zigbee-sdk/en/latest/", + "repositorio": "https://github.com/espressif/esp-zigbee-sdk", + "cor": "#EC4899" + }, + "ESP-WHO": { + "nome": "ESP-WHO", + "icone": "📷", + "nome_completo": "ESP Image Processing & Vision Framework", + "descricao": "乐鑫面向边缘图像处理和计算机视觉(Edge Vision)的框架,可连接 ESP32 摄像头。", + "linguagem": "C / C++", + "tipo": "计算机视觉与 AI", + "funcao_principal": "人脸检测、生物识别、人体检测和视频流处理", + "caracteristicas": [ + "实时人脸检测和人脸关键点(Landmarks)提取", + "使用已注册用户数据库的本地人脸识别", + "人体存在检测和人数统计(Human Detection)", + "针对 ESP32-S3 和 ESP32-P4 使用 AI 向量指令优化", + "支持 DVP 和 MIPI-CSI 摄像头传感器(OV2640、OV3660、OV5640、SC030IOT)" + ], + "casos_uso": [ + "人脸生物识别门禁", + "智能门铃和安全摄像头(Smart Doorbells)", + "房间和办公室占用智能传感器", + "人体跟随机器人和互动玩具" + ], + "exemplo": "/exemplos/esp-who.c", + "exemplos": "https://github.com/espressif/esp-who/tree/master/examples", + "documentacao": "https://github.com/espressif/esp-who", + "repositorio": "https://github.com/espressif/esp-who", + "cor": "#F97316" + }, + "ESP-NN": { + "nome": "ESP-NN", + "icone": "🧠", + "nome_completo": "ESP Neural Network Acceleration Library", + "descricao": "针对 ESP32 芯片 Xtensa 和 RISC-V 架构高度优化的神经网络内核与运算库。", + "linguagem": "C / C++", + "tipo": "专用 AI 库", + "funcao_principal": "利用向量 SIMD 指令,对深度神经网络进行 INT8 和 INT16 量化推理加速", + "caracteristicas": [ + "优化运算:2D 卷积、Depthwise Conv、Fully Connected 和 Pooling", + "官方加速后端,集成 TensorFlow Lite for Microcontrollers(TFLM)", + "高效的 8 位和 16 位量化,大幅降低 RAM 和 Flash 占用", + "在 ESP32-S3 和 ESP32-P4 上利用专用向量指令实现极致加速", + "无实时操作系统开销的执行" + ], + "casos_uso": [ + "音频分类和工业振动信号分析(预测性维护)", + "使用 TinyML 模型进行传感器异常检测", + "通过 IMU 进行手势识别", + "微控制器上的超轻量计算机视觉" + ], + "exemplo": "/exemplos/esp-nn.c", + "exemplos": "https://github.com/espressif/esp-nn/tree/master/test_app", + "documentacao": "https://github.com/espressif/esp-nn", + "repositorio": "https://github.com/espressif/esp-nn", + "cor": "#14B8A6" + }, + "ESP-DSP": { + "nome": "ESP-DSP", + "icone": "📊", + "nome_completo": "ESP Digital Signal Processing Library", + "descricao": "面向 ESP32 系列的官方数字信号处理库,提供硬件加速的数学算法。", + "linguagem": "C / C++", + "tipo": "专用信号处理库", + "funcao_principal": "以最高速度执行 FFT、变换、数字滤波和矩阵运算等繁重数学计算", + "caracteristicas": [ + "以汇编优化的快速傅里叶变换(实数和复数 FFT)", + "IIR、FIR 数字滤波器和卡尔曼估计器", + "矩阵、向量和标量积运算", + "支持浮点数和定点数(Radix-2 和 Radix-4)", + "针对 Xtensa 双核和 RISC-V 架构的定制优化" + ], + "casos_uso": [ + "实时音频和振动频谱分析", + "生物医学(ECG/EMG)和工业传感器的抗噪滤波器", + "高精度电机控制和 FOC 算法", + "边缘端数据压缩与编码" + ], + "exemplo": "/exemplos/esp-dsp.c", + "exemplos": "https://github.com/espressif/esp-dsp/tree/master/examples", + "documentacao": "https://docs.espressif.com/projects/esp-dsp/en/latest/", + "repositorio": "https://github.com/espressif/esp-dsp", + "cor": "#A855F7" + }, + "Rust-ESP": { + "nome": "Rust on ESP32", + "icone": "🦀", + "nome_completo": "ESP-RS Rust Ecosystem for ESP32", + "descricao": "面向 ESP32 系列的现代 Rust 语言开发生态,兼具内存安全(Memory Safety)、稳健并发和高性能。", + "linguagem": "Rust", + "tipo": "现代语言与框架", + "funcao_principal": "安全高性能固件开发,既支持裸机模式(通过 esp-hal 使用 no_std),也支持完整协议栈(通过 esp-idf-svc 使用 std)", + "caracteristicas": [ + "裸机 `no_std` 模式配合 `esp-hal` 库:无 RTOS 的完全控制和超快启动", + "`std` 模式配合 `esp-idf-svc`:访问 Rust 标准库、Wi-Fi、BLE、HTTP、MQTT 和线程", + "在编译期保证防止内存损坏和 Data Race", + "支持 Xtensa(ESP32、S2、S3)和原生 RISC-V(C2、C3、C6、H2、P4)目标", + "与 `embedded-hal` crate 生态集成,并使用 `embassy` 的 async/await", + "官方工具:用于烧录和串口监视的 `espflash`,以及用于模板的 `esp-generate`" + ], + "casos_uso": [ + "不允许内存故障(Null Pointer、Buffer Overflow)的关键系统", + "具有简洁异步并发的现代 IoT 应用", + "需要高安全级别的工业设备", + "现代机器人和仪器仪表项目" + ], + "exemplo": "/exemplos/rust-esp.rs", + "exemplos": "https://github.com/esp-rs/esp-hal/tree/main/examples", + "documentacao": "https://esp-rs.github.io/book/", + "repositorio": "https://github.com/esp-rs", + "cor": "#E44D26" + }, + "Arduino": { + "nome": "Arduino Core", + "icone": "🛠️", + "nome_completo": "Arduino Core for ESP32", + "descricao": "ESP-IDF 上的 Arduino 框架官方实现(3.x+ 版本基于 ESP-IDF v5.1+),兼具极高易用性和 ESP32 高级特性。", + "linguagem": "C++", + "tipo": "热门替代框架", + "funcao_principal": "利用庞大的 Arduino 库生态进行快速原型设计、教育项目和加速开发", + "caracteristicas": [ + "经典 `setup()` 和 `loop()` 语法,兼容数十万个库", + "作为官方 ESP-IDF 上的 FreeRTOS 任务运行", + "完整支持 Wi-Fi、Bluetooth Classic/BLE、WebServer 和 WebSockets", + "兼容 Arduino IDE 2.x、PlatformIO 和 VS Code", + "更新支持所有主流 SoC(ESP32、S2、S3、C3、C6)", + "需要时可访问 ESP-IDF 原生功能" + ], + "casos_uso": [ + "快速原型设计和概念验证(PoC)", + "教育、创客和学术项目", + "带仪表盘的简单 IoT 系统(Blynk、Adafruit IO、ThingSpeak)", + "业余机器人和 DIY 家庭自动化" + ], + "exemplo": "/exemplos/arduino.ino", + "exemplos": "https://github.com/espressif/arduino-esp32/tree/master/docs/en/tutorials", + "documentacao": "https://docs.espressif.com/projects/arduino-esp32/en/latest/", + "repositorio": "https://github.com/espressif/arduino-esp32", + "cor": "#00979D" + }, + "MicroPython": { + "nome": "MicroPython", + "icone": "🐍", + "nome_completo": "MicroPython for ESP32", + "descricao": "精简高效的 Python 3 实现,针对 ESP32 CPU 直接运行优化,并提供实时解释器。", + "linguagem": "Python", + "tipo": "动态语言与解释器", + "funcao_principal": "使用 Python 进行交互式开发和敏捷原型设计,提供交互式 REPL 控制台和即时硬件操作", + "caracteristicas": [ + "完整的 Python 3 解释器,可编译为 RAM 中的字节码", + "通过串口的交互式 REPL 控制台和通过 Wi-Fi 的 WebREPL", + "集成文件系统(LittleFS / FAT),无需重新编译即可上传 `.py` 脚本", + "原生模块 `machine`、`network`、`bluetooth`、`espnow` 和 `asyncio`", + "非常适合用真实硬件教授编程和算法" + ], + "casos_uso": [ + "实体计算教学和大学实验室", + "敏捷原型设计和传感器快速台架测试", + "台架测试自动化脚本", + "IoT 数据采集实验应用" + ], + "exemplo": "/exemplos/micropython.py", + "exemplos": "https://github.com/micropython/micropython/tree/master/examples", + "documentacao": "https://docs.micropython.org/en/latest/esp32/", + "repositorio": "https://github.com/micropython/micropython", + "cor": "#2B2B2B" + } +} diff --git a/data/zh-CN/series.json b/data/zh-CN/series.json new file mode 100644 index 0000000..e782093 --- /dev/null +++ b/data/zh-CN/series.json @@ -0,0 +1,732 @@ +{ + "ESP32": { + "nome_completo": "ESP32(经典版)", + "icone": "🔷", + "descricao": "初代型号,双核处理器,外设丰富", + "arquitetura": "Xtensa® LX6 32 位双核", + "nucleos": "1(单核)或 2(双核)", + "frequencia": "最高 240 MHz", + "coprocessador_ulp": "是", + "seguranca": { + "aes": "AES-128/192/256", + "sha": "SHA-1/256/384/512", + "rsa": "是(RSA/MPI 最高 4096 位)", + "ecc": "否", + "ecdsa": "否", + "hmac": "否", + "assinatura_digital": "否", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "是(AES-256,旧方案)", + "secure_boot": "V1(AES,旧方案);自 v3.0 版本(ECO3)起为 V2(RSA-3072、RSA-PSS)", + "protecao_dpa": "否" + }, + "wifi": "IEEE 802.11 b/g/n(2.4 GHz,最高 150 Mbps)", + "bluetooth": "Bluetooth 4.2 BR/EDR(经典蓝牙)和 Bluetooth LE(双模)", + "ethernet": "是(集成 Ethernet MAC)", + "memoria_sram": "520 KB", + "memoria_sram_rtc": "16 KB(分为 RTC FAST 和 RTC SLOW)", + "memoria_rom": "448 KB(用于启动和核心功能)", + "flash_externa": "通过 QSPI,最高 16 MB", + "psram_externa": "通过 QSPI,最高 8 MB(特定模组如 WROVER)", + "gpio": "34", + "adc": "2 个 12 位 SAR ADC,最高 18 通道", + "dac": "2 个 8 位 DAC", + "touch": "10 个电容式通道", + "uart": "3", + "spi": "4(SPI、HSPI、VSPI,其中 2 个可用于 Flash/PSRAM)", + "i2c": "2", + "i2s": "2", + "pwm": "LED PWM(最高 16 通道)、电机 PWM", + "ethernet_mac": "1(需外接 PHY)", + "can": "1(CAN 2.0,TWAI®)", + "sdio": "1(SD/SDIO/MMC 主机),1(SDIO/SPI 从机)", + "sensor_hall": "1(内部)", + "sensor_temperatura": "否(2018 年从数据手册中移除;ESP-IDF 无驱动)", + "consumo_energia": { + "active_cpu_240mhz": "30-68 mA", + "active_wifi_tx": "180-240 mA", + "modem_sleep": "20-44 mA", + "light_sleep": "0.8 mA", + "deep_sleep": "10-150 µA", + "hibernation": "5 µA" + }, + "temperatura_operacao": "-40°C 至 125°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "外部 JTAG(需调试探针,例如 ESP-PROG)", + "esp_idf_minimo": "自初始版本起(v3.x 及更早)", + "arduino_core": "是(官方核心中有 147 个板卡定义)", + "encapsulamento": "QFN48(6×6 mm)和 QFN48(5×5 mm)", + "modulos": "ESP32-MINI-1、ESP32-PICO-MINI-02、ESP32-PICO-V3、ESP32-PICO-V3-02 等 11 款", + "datasheet": "https://documentation.espressif.com/esp32_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html", + "placa": "/placas/esp32.png", + "cor": "#007bff" + }, + "ESP32-S2": { + "nome_completo": "ESP32-S2", + "icone": "🔒", + "descricao": "专注安全与低功耗,具备原生 USB 和家族中唯一 13 位输出的 ADC", + "arquitetura": "Xtensa® LX7 32 位单核", + "nucleos": "1(单核)", + "frequencia": "最高 240 MHz", + "coprocessador_ulp": "是(RISC-V)", + "seguranca": { + "aes": "AES-128/192/256(GCM)", + "sha": "SHA-1/224/256/384/512", + "rsa": "是(RSA/MPI 最高 4096 位)", + "ecc": "否", + "ecdsa": "否", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "V2(RSA-3072)", + "protecao_dpa": "否" + }, + "wifi": "IEEE 802.11 b/g/n(2.4 GHz,最高 150 Mbps)", + "bluetooth": "否", + "memoria_sram": "320 KB", + "memoria_sram_rtc": "16 KB", + "memoria_rom": "128 KB", + "flash_externa": "通过 QSPI,最高 1 GB", + "psram_externa": "通过 QSPI/八线 SPI,最高 1 GB", + "gpio": "43", + "adc": "2 个 SAR ADC,最高 20 通道:13 位输出(0–8191,家族中唯一),自 v1.0 版本起有效分辨率为 12 位(勘误 ADC-112)", + "dac": "2 个 8 位 DAC", + "touch": "14 个电容式通道", + "uart": "2", + "spi": "4(SPI0/1 用于 Flash,SPI2/3 用于通用)", + "i2c": "2", + "i2s": "1", + "pwm": "LED PWM(最高 8 通道)", + "usb": "1(USB OTG 1.1 全速)", + "lcd": "8/16 位 LCD 接口", + "camera": "8/16 位 DVP 接口", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active_wifi_tx": "160-310 mA", + "modem_sleep_cpu_160mhz": "14-24 mA", + "light_sleep": "750 µA", + "deep_sleep": "20-190 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "外部 JTAG(需调试探针,例如 ESP-PROG)", + "esp_idf_minimo": "v4.2", + "arduino_core": "是(官方核心中有 26 个板卡定义)", + "encapsulamento": "QFN56(7×7 mm)", + "modulos": "ESP32-S2-MINI-1、ESP32-S2-MINI-2、ESP32-S2-SOLO、ESP32-S2-SOLO-2 等 4 款", + "datasheet": "https://documentation.espressif.com/esp32-s2_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-s2_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html", + "placa": "/placas/esp32-s2.png", + "cor": "#28a745" + }, + "ESP32-S3": { + "nome_completo": "ESP32-S3", + "icone": "🤖", + "descricao": "双核处理器,集成 AI 和信号处理加速器", + "arquitetura": "Xtensa® LX7 32 位双核", + "nucleos": "2(双核)", + "frequencia": "最高 240 MHz", + "coprocessador_ulp": "是(RISC-V)", + "aceleradores_ia": "是(面向 AI 的向量指令)", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256/384/512", + "rsa": "是(RSA/MPI 最高 4096 位)", + "ecc": "否", + "ecdsa": "否", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "V2(RSA-3072)", + "protecao_dpa": "否" + }, + "wifi": "IEEE 802.11 b/g/n(2.4 GHz,最高 150 Mbps)", + "bluetooth": "Bluetooth 5(LE)和 Bluetooth Mesh", + "memoria_sram": "512 KB", + "memoria_sram_rtc": "16 KB", + "memoria_rom": "384 KB", + "flash_externa": "通过 QSPI/八线 SPI,最高 1 GB", + "psram_externa": "通过 QSPI/八线 SPI,最高 1 GB", + "gpio": "45", + "adc": "2 个 12 位 SAR ADC,最高 20 通道", + "dac": "否", + "touch": "14 个电容式通道", + "uart": "3", + "spi": "4(SPI0/1 用于 Flash,SPI2/3 用于通用)", + "i2c": "2", + "i2s": "2", + "pwm": "LED PWM(最高 8 通道)、电机 PWM(6 通道)", + "usb": "1(USB OTG 1.1 全速)+ 1(USB Serial/JTAG)", + "lcd": "8/16 位 RGB LCD 接口", + "camera": "8/16 位 DVP 接口", + "sdio": "1(SD/SDIO/MMC 主机)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "78 mW(约 24 mA @3.3V)", + "modem_sleep": "13-42 mA(40-80 MHz,视负载而定)", + "light_sleep": "240 µA(另有 PSRAM 的 40 至 200 µA)", + "deep_sleep": "7 µA" + }, + "temperatura_operacao": "-40°C 至 65/85/105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v4.4", + "arduino_core": "是(官方核心中有 158 个板卡定义)", + "encapsulamento": "QFN56(7×7 mm)", + "modulos": "ESP32-S3-MINI-1、ESP32-S3-WROOM-1、ESP32-S3-WROOM-2", + "datasheet": "https://documentation.espressif.com/esp32-s3_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-s3_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/index.html", + "placa": "/placas/esp32-s3.png", + "cor": "#fd7e14" + }, + "ESP32-S31": { + "nome_completo": "ESP32-S31", + "icone": "🌀", + "descricao": "高性能 320MHz 双核 RISC-V 处理器,支持 Wi-Fi 6、Bluetooth 5.4 和经典蓝牙、Zigbee/Thread、Matter 及 AI 加速", + "arquitetura": "32 位双核 RISC-V(HP)+ RISC-V 单核(LP)", + "nucleos": "2(双核 HP)+ 1(单核 LP)", + "frequencia": "最高 320 MHz", + "coprocessador_ulp": "是(RISC-V,40 MHz LP CPU)", + "aceleradores_ia": "是(自定义 AI 和 DSP 扩展 XespV)", + "seguranca": { + "aes": "AES-128/256(GCM)", + "sha": "SHA-1/224/256/384/512", + "rsa": "是(RSA/MPI 最高 4096 位)", + "ecc": "是(P-192、P-256、P-384)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "是", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "V2(RSA-3072)", + "protecao_dpa": "是" + }, + "wifi": "Wi-Fi 6(802.11ax)2.4 GHz", + "bluetooth": "Bluetooth 5.4 LE 和经典蓝牙", + "zigbee_thread": "IEEE 802.15.4(Zigbee 3.0、Thread 1.4)", + "matter": "是", + "memoria_sram": "512 KB(HP SRAM)", + "memoria_sram_rtc": "32 KB(LP SRAM)", + "memoria_rom": "320 KB", + "flash_externa": "通过 QSPI,最高 256 MB", + "psram_externa": "16 MB 或 32 MB 八线 DDR,仅限封装内部(NRV16、NRV32)", + "gpio": "60", + "adc": "2 个 12 位 SAR ADC,最高 16 通道", + "dac": "是(2 个 10 位 DAC 和 2 个 12 位 DAC)", + "touch": "14 个电容式通道", + "uart": "5(4 个 UART + 1 个 LP UART)", + "spi": "7(6 个 SPI + 1 个 LP SPI)", + "i2c": "3(2 个 I2C + 1 个 LP I2C)", + "i2s": "2", + "pwm": "LED PWM(最高 8 通道)、电机 PWM(MCPWM)", + "usb": "1(USB 2.0 高速 OTG 和 USB Serial/JTAG)", + "can": "是(CAN FD 控制器)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "可配置的高性能优化功耗", + "light_sleep": "0.1-0.8 mA", + "deep_sleep": "低功耗,LP CPU 保持运行" + }, + "temperatura_operacao": "-40°C 至 85°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v6.1 预览版;自 v6.1.1 起正式支持", + "arduino_core": "arduino-esp32 核心尚不支持", + "encapsulamento": "QFN80(8×8 mm)", + "modulos": "ESP32-S31-WROOM-1、ESP32-S31-WROOM-3", + "datasheet": "https://documentation.espressif.com/esp32-s31_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-s31_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s31/get-started/index.html", + "placa": "/placas/esp32-s31.png", + "cor": "#ff2a5f", + "sdio": "1(SDIO 3.0 主机)" + }, + "ESP32-C2": { + "nome_completo": "ESP32-C2(ESP8684)", + "icone": "🌱", + "descricao": "超低成本、低功耗 RISC-V 微控制器,支持 Wi-Fi 4 和 Bluetooth 5.3 LE", + "arquitetura": "32 位单核 RISC-V", + "nucleos": "1(单核)", + "frequencia": "最高 120 MHz", + "seguranca": { + "aes": "否", + "sha": "SHA-1/224/256", + "rsa": "否", + "ecc": "是(P-192、P-256)", + "ecdsa": "否", + "hmac": "否", + "assinatura_digital": "否", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128", + "secure_boot": "V2(ECDSA P-192 或 P-256)", + "protecao_dpa": "否" + }, + "wifi": "IEEE 802.11 b/g/n(2.4 GHz,最高 72.2 Mbps)", + "bluetooth": "Bluetooth 5.3 LE(认证)", + "memoria_sram": "272 KB(16 KB 用于缓存)", + "memoria_sram_rtc": "否", + "memoria_rom": "576 KB", + "flash_externa": "通过 QSPI,最高 16 MB,但已售变体不可用(ESP8684H2X/H4X 封装内有 2 MB 或 4 MB,且不引出 Flash 引脚)", + "psram_externa": "否", + "gpio": "14", + "adc": "1 个 12 位 SAR ADC,最高 5 通道", + "dac": "否", + "touch": "否", + "uart": "2", + "spi": "3(SPI0/1 用于内部 Flash,SPI2 用于通用)", + "i2c": "1(仅主机)", + "i2s": "否", + "pwm": "LED PWM(最高 6 通道)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active_cpu_120mhz": "10,7-15,6 mA(modem sleep)", + "light_sleep": "140 µA", + "deep_sleep": "5 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "外部 JTAG(需调试探针,例如 ESP-PROG)", + "esp_idf_minimo": "v5.0", + "arduino_core": "是(官方核心中有 1 个板卡定义)", + "encapsulamento": "QFN24(4×4 mm)", + "modulos": "ESP8684-MINI-1、ESP8684-WROOM-01C、ESP8684-WROOM-02C、ESP8684-WROOM-02UC 等 5 款", + "datasheet": "https://documentation.espressif.com/esp32-c2_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-c2_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c2/get-started/index.html", + "placa": "/placas/esp32-c2.png", + "cor": "#8c52ff" + }, + "ESP32-C3": { + "nome_completo": "ESP32-C3", + "icone": "💎", + "descricao": "超低功耗 RISC-V 处理器", + "arquitetura": "32 位单核 RISC-V", + "nucleos": "1(单核)", + "frequencia": "最高 160 MHz", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256", + "rsa": "是(RSA/MPI 最高 3072 位)", + "ecc": "否", + "ecdsa": "否", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128", + "secure_boot": "V2(RSA-3072),自 v0.3 版本(ECO3)起", + "protecao_dpa": "否" + }, + "wifi": "IEEE 802.11 b/g/n(2.4 GHz,最高 150 Mbps)", + "bluetooth": "Bluetooth 5(LE)和 Bluetooth Mesh", + "memoria_sram": "400 KB", + "memoria_sram_rtc": "8 KB", + "memoria_rom": "384 KB", + "flash_externa": "通过 QSPI,最高 16 MB", + "psram_externa": "否", + "gpio": "22", + "adc": "2 个 12 位 SAR ADC,最高 6 通道", + "dac": "否", + "touch": "否", + "uart": "2", + "spi": "3(SPI0/1 用于 Flash,SPI2 用于通用)", + "i2c": "1", + "i2s": "1", + "pwm": "LED PWM(最高 6 通道)", + "usb": "1(USB Serial/JTAG)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active_cpu_160mhz": "20 mA", + "active_wifi_tx_peak": "335 mA", + "modem_sleep_cpu_160mhz": "16-28 mA", + "light_sleep": "130 µA", + "deep_sleep": "5 µA" + }, + "temperatura_operacao": "-40°C 至 105°C(ESP32-C3FN4 为 85°C)", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v4.3", + "arduino_core": "是(官方核心中有 29 个板卡定义)", + "encapsulamento": "QFN32(5×5 mm)和 QFN28(4×4 mm)", + "modulos": "ESP32-C3-MINI-1、ESP32-C3-WROOM-02", + "datasheet": "https://documentation.espressif.com/esp32-c3_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-c3_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/index.html", + "placa": "/placas/esp32-c3.png", + "cor": "#20c997" + }, + "ESP32-C5": { + "nome_completo": "ESP32-C5", + "icone": "📶", + "descricao": "首款支持双频 Wi-Fi 6 和 Bluetooth 6.0,配备 RISC-V CPU 和 ULP 协处理器", + "arquitetura": "32 位单核 RISC-V(HP)+ RISC-V 单核(LP)", + "nucleos": "1(单核 HP)+ 1(单核 LP)", + "frequencia": "最高 240 MHz", + "coprocessador_ulp": "是(RISC-V,48 MHz LP CPU)", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256/384/512", + "rsa": "是(RSA/MPI 最高 3072 位)", + "ecc": "是(P-192、P-256、P-384)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "是", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "V2(RSA-3072 或 ECDSA P-256/P-384)", + "protecao_dpa": "是" + }, + "wifi": "Wi-Fi 6(802.11ax)双频 2.4 GHz 和 5 GHz", + "bluetooth": "Bluetooth 5(LE)(Bluetooth Core 6.0 认证)", + "zigbee_thread": "IEEE 802.15.4(Zigbee 3.0、Thread 1.4)", + "matter": "是", + "memoria_sram": "384 KB", + "memoria_sram_rtc": "16 KB", + "memoria_rom": "320 KB", + "flash_externa": "通过 QSPI,最高 16 MB", + "psram_externa": "是,通过 SPI(带缓存的 Flash/PSRAM 控制器)", + "gpio": "29", + "adc": "1 个 12 位 SAR ADC,最高 6 通道", + "dac": "否", + "touch": "否", + "uart": "3(2 个 UART + 1 个 LP UART)", + "spi": "3", + "i2c": "2(1 个 I2C + 1 个 LP I2C)", + "i2s": "1", + "pwm": "LED PWM(最高 6 通道)、电机 PWM", + "usb": "1(USB Serial/JTAG)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active_wifi": "最高 377 mA(5 GHz TX)", + "light_sleep": "60-250 µA", + "deep_sleep": "12 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v5.5.2", + "arduino_core": "是(官方核心中有 10 个板卡定义)", + "encapsulamento": "QFN48(6×6 mm)", + "modulos": "ESP32-C5-MINI-1、ESP32-C5-WROOM-1", + "datasheet": "https://documentation.espressif.com/esp32-c5_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-c5_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c5/get-started/index.html", + "placa": "/placas/esp32-c5.png", + "cor": "#6f42c1", + "sdio": "1(SDIO 从机,v1.0 版本起)", + "can": "2(CAN FD)" + }, + "ESP32-C6": { + "nome_completo": "ESP32-C6", + "icone": "🌐", + "descricao": "高级安全特性,支持 Wi-Fi 6、Bluetooth 6.0、Zigbee 和 Thread(兼容 Matter)", + "arquitetura": "32 位单核 RISC-V(HP)+ RISC-V 单核(LP)", + "nucleos": "1(单核 HP)+ 1(单核 LP)", + "frequencia": "最高 160 MHz", + "coprocessador_ulp": "是(RISC-V,20 MHz LP CPU)", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256", + "rsa": "是(RSA/MPI 最高 3072 位)", + "ecc": "是(P-192、P-256)", + "ecdsa": "否", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128", + "secure_boot": "V2(RSA-3072 或 ECDSA)", + "protecao_dpa": "是" + }, + "wifi": "Wi-Fi 6(802.11ax)2.4 GHz", + "bluetooth": "Bluetooth 5(LE)(Bluetooth 5.3 认证)", + "zigbee_thread": "IEEE 802.15.4(Zigbee 3.0、Thread 1.3)", + "matter": "是", + "memoria_sram": "512 KB", + "memoria_sram_rtc": "16 KB", + "memoria_rom": "320 KB", + "flash_externa": "通过 QSPI,最高 16 MB", + "psram_externa": "否", + "gpio": "30", + "adc": "1 个 12 位 SAR ADC,最高 7 通道", + "dac": "否", + "touch": "否", + "uart": "3(2 个 UART + 1 个 LP UART)", + "spi": "3", + "i2c": "2(1 个 I2C + 1 个 LP I2C)", + "i2s": "1", + "pwm": "LED PWM(最高 6 通道)、电机 PWM", + "usb": "1(USB Serial/JTAG)", + "sdio": "1(SDIO 2.0 从机)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active_wifi6": "252-354 mA(TX)", + "light_sleep": "35-180 µA", + "deep_sleep": "7 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v5.1", + "arduino_core": "是(官方核心中有 21 个板卡定义)", + "encapsulamento": "QFN40(5×5 mm)和 QFN32(5×5 mm)", + "modulos": "ESP32-C6-MINI-1、ESP32-C6-WROOM-1", + "datasheet": "https://documentation.espressif.com/esp32-c6_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-c6_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/get-started/index.html", + "placa": "/placas/esp32-c6.png", + "cor": "#17a2b8" + }, + "ESP32-C61": { + "nome_completo": "ESP32-C61", + "icone": "🛰️", + "descricao": "高性价比 160MHz RISC-V 微控制器,支持 Wi-Fi 6、Bluetooth 6.0 LE,封装内支持 Flash/PSRAM", + "arquitetura": "32 位单核 RISC-V", + "nucleos": "1(单核)", + "frequencia": "最高 160 MHz", + "seguranca": { + "aes": "否", + "sha": "SHA-1/224/256", + "rsa": "否", + "ecc": "是(P-192、P-256)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "否", + "assinatura_digital": "否", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128", + "secure_boot": "V2(ECDSA)", + "protecao_dpa": "是" + }, + "wifi": "Wi-Fi 6(802.11ax)2.4 GHz", + "bluetooth": "Bluetooth 5(LE)(Bluetooth Core 6.0 认证)", + "zigbee_thread": "否", + "matter": "是(通过 Wi-Fi)", + "memoria_sram": "320 KB", + "memoria_sram_rtc": "否", + "memoria_rom": "256 KB", + "flash_externa": "通过 QSPI,最高 16 MB(部分型号封装内集成 4 MB 或 8 MB)", + "psram_externa": "通过 QSPI,最高 16 MB(部分型号封装内集成 2 MB 或 8 MB)", + "gpio": "30", + "adc": "1 个 12 位 SAR ADC,最高 4 通道", + "dac": "否", + "touch": "否", + "uart": "3", + "spi": "3(2 个用于 Flash/PSRAM,1 个通用)", + "i2c": "1", + "i2s": "1", + "pwm": "LED PWM(最高 6 通道)", + "usb": "1(USB Serial/JTAG)", + "sdio": "1(SDIO 2.0 从机)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "240-360 mA(TX)", + "light_sleep": "50-200 µA", + "deep_sleep": "10 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v5.5.2", + "arduino_core": "是(官方核心中有 1 个板卡定义)", + "encapsulamento": "QFN40(5×5 mm)或 LGA40(5×5 mm)", + "modulos": "ESP32-C61-MINI-1、ESP32-C61-WROOM-1", + "datasheet": "https://documentation.espressif.com/esp32-c61_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-c61_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c61/get-started/index.html", + "placa": "/placas/esp32-c61.png", + "cor": "#0dcaf0" + }, + "ESP32-P4": { + "nome_completo": "ESP32-P4", + "icone": "⚡", + "descricao": "高性能:400MHz 双核 RISC-V 处理器、AI 加速器和丰富的多媒体接口", + "arquitetura": "32 位 RISC-V 高性能双核(HP)+ 低功耗单核(LP)", + "nucleos": "2(双核 HP)+ 1(单核 LP)", + "frequencia": "最高 400 MHz(HP,v3.x 版本;v1.x 为 360 MHz);LP 最高 40 MHz", + "coprocessador_ulp": "是(RISC-V,40 MHz LP CPU)", + "aceleradores_ia": "是(向量指令、AI 加速器)", + "seguranca": { + "aes": "AES-128/256(GCM)", + "sha": "SHA-1/224/256/384/512", + "rsa": "是(RSA/MPI 最高 4096 位)", + "ecc": "是(P-192、P-256、P-384)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "是", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "V2(RSA-3072 或 ECDSA)", + "protecao_dpa": "否" + }, + "wifi": "否", + "bluetooth": "否", + "ethernet": "是(集成 Ethernet MAC)", + "memoria_sram": "768 KB", + "memoria_sram_rtc": "32 KB", + "memoria_rom": "128 KB(HP ROM)+ 16 KB(LP ROM)", + "flash_externa": "通过 QSPI/八线 SPI,最高 128 MB", + "psram_externa": "16 MB 或 32 MB 集成于封装内(OPI/HPI,1,8 V)", + "gpio": "55", + "adc": "2 个 12 位 SAR ADC,最高 14 通道", + "dac": "否", + "touch": "是(电容式触摸传感器)", + "uart": "6(5 个 UART + 1 个 LP UART)", + "spi": "3", + "i2c": "3(2 个 I2C + 1 个 LP I2C)", + "i2s": "4(3 个 I2S + 1 个 LP I2S)", + "pwm": "LED PWM(最高 8 通道)、电机 PWM(6 通道)", + "usb": "USB 2.0 高速 OTG + USB 2.0 全速 OTG + USB Serial/JTAG", + "mipi_csi": "摄像头 MIPI CSI 接口", + "mipi_dsi": "显示屏 MIPI DSI 接口", + "lcd": "8/16/24 位 LCD 接口", + "camera": "8/16 位 DVP 接口", + "sdio": "1 个 SD/MMC 主机控制器(SDHOST)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "15-150 mA(40 至 400 MHz,视负载而定)", + "light_sleep": "75-800 µA", + "deep_sleep": "12 µA" + }, + "temperatura_operacao": "-40°C 至 85°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v5.3", + "arduino_core": "是(官方核心中有 7 个板卡定义)", + "encapsulamento": "QFN104(10×10 mm)", + "modulos": "官方产品目录中无模组(仅裸芯片)", + "datasheet": "https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/get-started/index.html", + "placa": "/placas/esp32-p4.png", + "cor": "#ffc107" + }, + "ESP32-H2": { + "nome_completo": "ESP32-H2", + "icone": "🔋", + "descricao": "专注于超低功耗,支持 Bluetooth 6.0、Zigbee 和 Thread,但不支持 Wi-Fi", + "arquitetura": "32 位单核 RISC-V", + "nucleos": "1(单核)", + "frequencia": "最高 96 MHz", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256", + "rsa": "是(RSA/MPI 最高 3072 位)", + "ecc": "是(P-192、P-256)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "是", + "assinatura_digital": "是", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128", + "secure_boot": "V2(RSA-3072 或 ECDSA)", + "protecao_dpa": "是" + }, + "wifi": "否", + "bluetooth": "Bluetooth 5(LE)(Bluetooth 5.3 认证)", + "zigbee_thread": "IEEE 802.15.4(Zigbee 3.0、Thread 1.4)", + "matter": "是", + "memoria_sram": "320 KB", + "memoria_sram_rtc": "4 KB(LP 存储)", + "memoria_rom": "128 KB", + "flash_externa": "通过 QSPI,最高 16 MB", + "psram_externa": "否", + "gpio": "19", + "adc": "1 个 12 位 SAR ADC,最高 5 通道", + "dac": "否", + "touch": "否", + "uart": "2", + "spi": "3", + "i2c": "2", + "i2s": "1", + "pwm": "LED PWM(最高 6 通道)", + "usb": "1(USB Serial/JTAG)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "24-140 mA(射频,-24 至 20 dBm)", + "light_sleep": "25-85 µA", + "deep_sleep": "7 µA" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "-40°C 至 150°C", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v5.1", + "arduino_core": "是(官方核心中有 3 个板卡定义)", + "encapsulamento": "QFN32(4×4 mm)", + "modulos": "ESP32-H2-MINI-1、ESP32-H2-WROOM-02C", + "datasheet": "https://documentation.espressif.com/esp32-h2_datasheet_en.html", + "manual_tecnico": "https://documentation.espressif.com/esp32-h2_technical_reference_manual_en.html", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32h2/get-started/index.html", + "placa": "/placas/esp32-h2.png", + "cor": "#6c757d" + }, + "ESP32-H4": { + "nome_completo": "ESP32-H4", + "icone": "🛡️", + "descricao": "超高能效双核 RISC-V SoC,支持 Bluetooth 5.4 LE(LE Audio)和 IEEE 802.15.4,适用于 Thread、Zigbee 和 Matter,不支持 Wi-Fi", + "status_documentacao": "初步文档:乐鑫尚未发布 ESP32-H4 的数据手册和技术参考手册。以下数据来自产品官方公告和 ESP-IDF 硬件定义(soc_caps),发布前可能变更。", + "arquitetura": "32 位双核 RISC-V", + "nucleos": "2(双核)", + "frequencia": "最高 96 MHz", + "seguranca": { + "aes": "AES-128/256", + "sha": "SHA-1/224/256/384/512", + "rsa": "否", + "ecc": "是(P-192、P-256、P-384)", + "ecdsa": "是(确定性模式,RFC 6979)", + "hmac": "是", + "assinatura_digital": "否", + "key_manager": "否", + "rng": "是(硬件 TRNG)", + "criptografia_flash": "XTS-AES-128/256", + "secure_boot": "硬件支持;ESP-IDF 尚未启用", + "protecao_dpa": "否" + }, + "wifi": "否", + "bluetooth": "Bluetooth 5.4 LE(Bluetooth 6.0 认证;LE Audio、BIS/CIS 同步通道、PAwR、Connection Subrating 和 AoA/AoD 测向)", + "zigbee_thread": "IEEE 802.15.4(Zigbee 3.0、Thread 1.4)", + "matter": "是", + "memoria_sram": "384 KB", + "memoria_sram_rtc": "是(LP SRAM)", + "memoria_rom": "128 KB", + "flash_externa": "是,通过 QSPI(ESP32-H4HF4 封装内集成 4 MB)", + "psram_externa": "是(ESP32-H4HR2 封装内集成 2 MB)", + "gpio": "40", + "adc": "1 个 12 位 SAR ADC,最高 5 通道", + "dac": "否", + "touch": "15 个电容式通道(版本 3,支持防水和接近检测)", + "uart": "2", + "spi": "3", + "i2c": "2", + "i2s": "1", + "pwm": "LED PWM(最高 8 通道)、电机 PWM(MCPWM)", + "can": "1(CAN 2.0,TWAI®)", + "usb": "1(USB OTG 1.1)+ 1(USB Serial/JTAG)", + "sensor_temperatura": "1(内部)", + "consumo_energia": { + "active": "未公布(初步文档)" + }, + "temperatura_operacao": "-40°C 至 105°C", + "temperatura_armazenamento": "未公布(初步文档)", + "depuracao": "USB 集成 JTAG(无需外部探针)", + "esp_idf_minimo": "v6.0 预览版(无稳定支持)", + "arduino_core": "arduino-esp32 核心尚不支持", + "encapsulamento": "QFN56(6×6 mm)", + "modulos": "ESP32-H4-WROOM-1", + "guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32h4/get-started/index.html", + "cor": "#e83e8c" + } +} diff --git a/lib/data/zh-CN/componentes.js b/lib/data/zh-CN/componentes.js new file mode 100644 index 0000000..2d7f80c --- /dev/null +++ b/lib/data/zh-CN/componentes.js @@ -0,0 +1,858 @@ +/** + * 官方精选数据库:ESP Component Registry 与 IDF Component Manager + * + * ESP Component Registry(https://components.espressif.com)是面向 + * ESP-IDF v4.4+ / v5.x+ 的模块化库的核心分发生态。 + */ + +export const CATEGORIAS_COMPONENTES = [ + { + id: "todos", + nome: "全部组件", + icone: "Layers", + descricao: "浏览完整的精选库与驱动目录" + }, + { + id: "ui_display", + nome: "UI、显示屏与图形", + icone: "Monitor", + descricao: "图形库(LVGL)、LCD/OLED 显示驱动、触摸与解码器" + }, + { + id: "cloud_conectividade", + nome: "云与网络连接", + icone: "Cloud", + descricao: "ESP RainMaker、AWS IoT、MQTT、WebSocket、Mesh-Lite 与 ESP-Hosted 协处理" + }, + { + id: "audio_voz_ia", + nome: "音频、语音与 AI", + icone: "Brain", + descricao: "ESP-SR 语音识别、DSP 处理、编解码器、DVP 摄像头与 TinyML" + }, + { + id: "smart_home_mesh", + nome: "智能家居与 Mesh", + icone: "Home", + descricao: "Matter SDK、Zigbee 3.0(ZBOSS)协议栈、Thread 与 ESP-NOW 网络" + }, + { + id: "drivers_perifericos", + nome: "驱动与传感器", + icone: "Cpu", + descricao: "按键、编码器、RGB LED、以太网(W5500/CH390)、原生 USB 以及环境/IMU 传感器" + }, + { + id: "bsp_placas", + nome: "BSP(板级支持包)", + icone: "CircuitBoard", + descricao: "对 ESP-BOX-3、Korvo、EYE 和 M5Stack 等官方开发板的直接支持包" + }, + { + id: "sistema_utilitarios", + nome: "系统与工具", + icone: "Wrench", + descricao: "LittleFS 文件系统、现代 C++ 封装、CBOR 与网络工具" + } +]; + +export const COMPONENTES_REGISTRY = [ + // ========================================== + // 1. UI, Displays & Gráficos + // ========================================== + { + id: "espressif-esp_lvgl_port", + namespace: "espressif", + name: "esp_lvgl_port", + versao: "^2.4.0", + categoria: "ui_display", + oficial: true, + popular: true, + titulo: "ESP LVGL Port", + descricao: "官方的线程安全 LVGL(Light and Versatile Graphics Library)移植,面向 ESP-IDF,支持硬件加速和多显示屏。", + tags: ["LVGL", "GUI", "显示屏", "触摸", "人机界面"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-P4", "ESP32-C3", "ESP32-C6"], + dependenciasSugeridas: ["lvgl/lvgl^9.1.0"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_lvgl_port", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/components/esp_lvgl_port", + exemploYaml: `dependencies: + espressif/esp_lvgl_port: "^2.4.0" + lvgl/lvgl: "^9.1.0"` + }, + { + id: "lvgl-lvgl", + namespace: "lvgl", + name: "lvgl", + versao: "^9.1.0", + categoria: "ui_display", + oficial: false, + popular: true, + titulo: "LVGL Graphics Library Core", + descricao: "嵌入式系统中最流行的 C 语言开源图形库。提供丰富的控件、流畅的动画和现代化的布局支持。", + tags: ["LVGL 9", "Graphics", "Widgets", "GUI", "Embedded UI"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-P4", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/lvgl/lvgl", + urlRepo: "https://github.com/lvgl/lvgl", + exemploYaml: `dependencies: + lvgl/lvgl: "^9.1.0"` + }, + { + id: "espressif-esp32_display_panel", + namespace: "espressif", + name: "esp32_display_panel", + versao: "^0.2.0", + categoria: "ui_display", + oficial: true, + popular: true, + titulo: "ESP32 Display Panel Driver", + descricao: "统一的 LCD 控制器(RGB、SPI、QSPI、MIPI-DSI)与电容触摸驱动,专为 ESP32-S3 和 ESP32-P4 设计。", + tags: ["LCD", "MIPI-DSI", "QSPI", "Touch", "ST7789", "ILI9341"], + chips: ["ESP32-S3", "ESP32-P4", "ESP32-S2", "ESP32"], + urlRegistry: "https://components.espressif.com/components/espressif/esp32_display_panel", + urlRepo: "https://github.com/esp-arduino-libs/ESP32_Display_Panel", + exemploYaml: `dependencies: + espressif/esp32_display_panel: "^0.2.0"` + }, + { + id: "espressif-esp_lcd_touch", + namespace: "espressif", + name: "esp_lcd_touch", + versao: "^1.1.2", + categoria: "ui_display", + oficial: true, + popular: true, + titulo: "ESP LCD Touch Framework", + descricao: "触摸屏 LCD 触摸面板的核心抽象组件。支持坐标校准、多点触控读取,并可直接与 LVGL 集成。", + tags: ["触摸屏", "电容式", "电阻式", "I2C 触摸", "坐标"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-P4", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_lcd_touch", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/display/touch_panel/esp_lcd_touch", + exemploYaml: `dependencies: + espressif/esp_lcd_touch: "^1.1.2"` + }, + { + id: "espressif-esp_lcd_touch_gt911", + namespace: "espressif", + name: "esp_lcd_touch_gt911", + versao: "^1.1.2", + categoria: "ui_display", + oficial: true, + popular: true, + titulo: "GT911 电容触摸驱动", + descricao: "专用于 Goodix GT911 电容触摸控制器的 I2C 驱动,广泛用于 ESP32-S3 和 P4 的 4.3\"、5\" 和 7\" 显示屏。", + tags: ["GT911", "Goodix", "电容触摸", "多点触控", "I2C"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-S2"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_lcd_touch_gt911", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/display/touch_panel/esp_lcd_touch_gt911", + exemploYaml: `dependencies: + espressif/esp_lcd_touch_gt911: "^1.1.2"` + }, + { + id: "espressif-esp_lcd_touch_ft5x06", + namespace: "espressif", + name: "esp_lcd_touch_ft5x06", + versao: "^1.1.0", + categoria: "ui_display", + oficial: true, + popular: false, + titulo: "FocalTech FT5x06 / FT6x36 触摸驱动", + descricao: "面向 FocalTech 控制器(FT5206、FT5316、FT5436、FT6236、FT6336)的电容触摸面板驱动,支持手势和中断。", + tags: ["FT6236", "FT5x06", "FocalTech", "触摸", "I2C"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-S2", "ESP32-C3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_lcd_touch_ft5x06", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/display/touch_panel/esp_lcd_touch_ft5x06", + exemploYaml: `dependencies: + espressif/esp_lcd_touch_ft5x06: "^1.1.0"` + }, + { + id: "espressif-esp_jpeg", + namespace: "espressif", + name: "esp_jpeg", + versao: "^1.3.0", + categoria: "ui_display", + oficial: true, + popular: false, + titulo: "ESP JPEG Decoder (TJpgDec)", + descricao: "高速 JPEG 编解码器,带有汇编 SIMD 优化,可在显示屏上无延迟地显示图像和摄像头视频流。", + tags: ["JPEG", "TJpgDec", "摄像头", "图像", "SIMD"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-C3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_jpeg", + urlRepo: "https://github.com/espressif/esp-jpeg", + exemploYaml: `dependencies: + espressif/esp_jpeg: "^1.3.0"` + }, + + // ========================================== + // 2. Cloud & Conectividade + // ========================================== + { + id: "espressif-esp_rainmaker", + namespace: "espressif", + name: "esp_rainmaker", + versao: "^1.4.0", + categoria: "cloud_conectividade", + oficial: true, + popular: true, + titulo: "ESP RainMaker Agent", + descricao: "乐鑫 ESP RainMaker AIoT 云平台的官方固件代理。支持手机 App、Alexa、Google Home 控制以及 OTA。", + tags: ["RainMaker", "AWS Cloud", "iOS/Android App", "Alexa", "Google Home", "OTA"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_rainmaker", + urlRepo: "https://github.com/espressif/esp-rainmaker", + exemploYaml: `dependencies: + espressif/esp_rainmaker: "^1.4.0"` + }, + { + id: "espressif-mesh_lite", + namespace: "espressif", + name: "mesh_lite", + versao: "^1.2.0", + categoria: "cloud_conectividade", + oficial: true, + popular: true, + titulo: "ESP Mesh-Lite Network Stack", + descricao: "轻量级 Wi-Fi Mesh 网络,每个节点都有独立的 IP 连接,可在局域网内直接通信,并通过多跳访问云端。", + tags: ["Mesh", "Wi-Fi Mesh", "Mesh 网络", "分布式 IoT", "IP Layer"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/mesh_lite", + urlRepo: "https://github.com/espressif/esp-mesh-lite", + exemploYaml: `dependencies: + espressif/mesh_lite: "^1.2.0"` + }, + { + id: "espressif-esp_modbus", + namespace: "espressif", + name: "esp_modbus", + versao: "^1.0.15", + categoria: "cloud_conectividade", + oficial: true, + popular: true, + titulo: "ESP-Modbus Industrial Stack", + descricao: "完整的工业 Modbus 协议栈(主站/从站),支持 RS-485(RTU/ASCII)以及以太网/Wi-Fi(Modbus TCP)接口。", + tags: ["Modbus", "RS-485", "Modbus TCP", "工业自动化", "PLC"], + chips: ["ESP32", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_modbus", + urlRepo: "https://github.com/espressif/esp-modbus", + exemploYaml: `dependencies: + espressif/esp_modbus: "^1.0.15"` + }, + { + id: "espressif-net_connect", + namespace: "espressif", + name: "net_connect", + versao: "^1.0.0", + categoria: "cloud_conectividade", + oficial: true, + popular: false, + titulo: "Unified Network Connect", + descricao: "统一的网络连接管理组件,可透明地切换并初始化 Wi-Fi、以太网、Thread 或移动 PPP。", + tags: ["Network", "Wi-Fi", "Ethernet", "故障切换", "自动连接"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/net_connect", + urlRepo: "https://github.com/espressif/esp-idf/tree/master/components", + exemploYaml: `dependencies: + espressif/net_connect: "^1.0.0"` + }, + { + id: "espressif-esp_hosted", + namespace: "espressif", + name: "esp_hosted", + versao: "^0.0.10", + categoria: "cloud_conectividade", + oficial: true, + popular: false, + titulo: "ESP-Hosted Coprocessor", + descricao: "把 ESP32 变成无线通信协处理器(Wi-Fi + BLE),供 Linux 主机(Raspberry Pi、i.MX)或通过 SPI/SDIO/UART 连接的微控制器使用。", + tags: ["协处理器", "SDIO", "SPI", "Linux Wi-Fi", "Raspberry Pi"], + chips: ["ESP32", "ESP32-S3", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_hosted", + urlRepo: "https://github.com/espressif/esp-hosted", + exemploYaml: `dependencies: + espressif/esp_hosted: "^0.0.10"` + }, + { + id: "espressif-esp-now", + namespace: "espressif", + name: "esp-now", + versao: "^2.5.0", + categoria: "cloud_conectividade", + oficial: true, + popular: true, + titulo: "ESP-NOW Enhanced & Provisioning", + descricao: "ESP-NOW 协议的扩展,提供遥控配对、AES-128 安全以及多设备控制等高级功能。", + tags: ["ESP-NOW", "无线", "低延迟", "广播", "遥控"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-now", + urlRepo: "https://github.com/espressif/esp-now", + exemploYaml: `dependencies: + espressif/esp-now: "^2.5.0"` + }, + + // ========================================== + // 3. Áudio, Voz & IA + // ========================================== + { + id: "espressif-esp-sr", + namespace: "espressif", + name: "esp-sr", + versao: "^1.5.0", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ESP-SR Speech Recognition", + descricao: "100% 离线的语音识别框架,包含 WakeNet(唤醒词)、MultiNet(本地命令)和 AFE 声学算法。", + tags: ["语音", "WakeNet", "MultiNet", "语音识别", "离线", "AEC"], + chips: ["ESP32-S3", "ESP32-P4", "ESP32"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-sr", + urlRepo: "https://github.com/espressif/esp-sr", + exemploYaml: `dependencies: + espressif/esp-sr: "^1.5.0"` + }, + { + id: "espressif-esp_codec_dev", + namespace: "espressif", + name: "esp_codec_dev", + versao: "^1.3.0", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ESP Audio Codec Device HAL", + descricao: "统一的 I2S/I2C 音频编解码器抽象层(ES8311、ES8388、ES7210、ES7243、TAS5805M),用于立体声输入输出。", + tags: ["Audio Codec", "I2S", "ES8311", "ES8388", "麦克风 DAC"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_codec_dev", + urlRepo: "https://github.com/espressif/esp-codec-dev", + exemploYaml: `dependencies: + espressif/esp_codec_dev: "^1.3.0"` + }, + { + id: "espressif-es8311", + namespace: "espressif", + name: "es8311", + versao: "^1.0.0", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ES8311 音频编解码器驱动", + descricao: "面向 Everest ES8311 编解码器(单声道 DAC + 麦克风 ADC)的专用低功耗驱动,见于 ESP32-S3-BOX 和 IoT 开发板。", + tags: ["ES8311", "音频", "DAC", "麦克风", "I2S"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-C3"], + urlRegistry: "https://components.espressif.com/components/espressif/es8311", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/components/es8311", + exemploYaml: `dependencies: + espressif/es8311: "^1.0.0"` + }, + { + id: "espressif-esp32-camera", + namespace: "espressif", + name: "esp32-camera", + versao: "^2.0.12", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ESP32 Camera Driver", + descricao: "官方 CMOS 摄像头驱动(OV2640、OV3660、OV5640、OV7670、GC0308),支持 DMA、DMA-2D、JPEG 捕获,以及通过 HTTP/RTSP 的 MJPEG 流。", + tags: ["摄像头", "OV2640", "OV5640", "DVP", "MIPI-CSI", "视频"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-S2"], + urlRegistry: "https://components.espressif.com/components/espressif/esp32-camera", + urlRepo: "https://github.com/espressif/esp32-camera", + exemploYaml: `dependencies: + espressif/esp32-camera: "^2.0.12"` + }, + { + id: "espressif-esp-dsp", + namespace: "espressif", + name: "esp-dsp", + versao: "^1.5.1", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ESP-DSP Signal Processing", + descricao: "面向 ESP32 SoC 的官方数字信号处理库(FFT、FIR/IIR 数字滤波器、矩阵与加速的线性代数)。", + tags: ["DSP", "FFT", "滤波器", "数学", "SIMD", "汇编"], + chips: ["ESP32", "ESP32-S3", "ESP32-P4", "ESP32-C3", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-dsp", + urlRepo: "https://github.com/espressif/esp-dsp", + exemploYaml: `dependencies: + espressif/esp-dsp: "^1.5.1"` + }, + { + id: "espressif-esp-nn", + namespace: "espressif", + name: "esp-nn", + versao: "^1.2.0", + categoria: "audio_voz_ia", + oficial: true, + popular: true, + titulo: "ESP-NN Neural Network Kernels", + descricao: "用向量汇编优化的内核,在 ESP32 芯片上加速神经网络和 TensorFlow Lite Micro 模型。", + tags: ["TinyML", "TensorFlow Lite", "神经网络", "推理", "Edge AI"], + chips: ["ESP32-S3", "ESP32-P4", "ESP32"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-nn", + urlRepo: "https://github.com/espressif/esp-nn", + exemploYaml: `dependencies: + espressif/esp-nn: "^1.2.0"` + }, + + // ========================================== + // 4. Smart Home & Mesh + // ========================================== + { + id: "espressif-esp-matter", + namespace: "espressif", + name: "esp-matter", + versao: "^1.3.0", + categoria: "smart_home_mesh", + oficial: true, + popular: true, + titulo: "ESP Matter SDK", + descricao: "官方 SDK,用于创建可在 Wi-Fi 和 Thread 上与 Apple Home、Google Home、Amazon Alexa 和 Home Assistant 互操作的设备。", + tags: ["Matter", "智能家居", "Apple HomeKit", "Google Home", "Thread", "CHIP"], + chips: ["ESP32", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-matter", + urlRepo: "https://github.com/espressif/esp-matter", + exemploYaml: `dependencies: + espressif/esp-matter: "^1.3.0"` + }, + { + id: "espressif-esp-zigbee-lib", + namespace: "espressif", + name: "esp-zigbee-lib", + versao: "^1.6.0", + categoria: "smart_home_mesh", + oficial: true, + popular: true, + titulo: "ESP Zigbee 3.0 Library", + descricao: "经过认证的 Zigbee 3.0 协议栈(ZBOSS),用于在 802.15.4 芯片上创建低功耗的协调器、路由器和终端设备节点。", + tags: ["Zigbee 3.0", "ZBOSS", "802.15.4", "Home Automation", "电池供电"], + chips: ["ESP32-H2", "ESP32-C6"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-zigbee-lib", + urlRepo: "https://github.com/espressif/esp-zigbee-sdk", + exemploYaml: `dependencies: + espressif/esp-zigbee-lib: "^1.6.0"` + }, + { + id: "espressif-esp_rcp_update", + namespace: "espressif", + name: "esp_rcp_update", + versao: "^1.0.0", + categoria: "smart_home_mesh", + oficial: true, + popular: false, + titulo: "ESP RCP Thread/Zigbee Gateway", + descricao: "用于更新 802.15.4 射频协处理器(RCP)的组件,用来构建 Thread 边界路由器和多协议 Zigbee 网关。", + tags: ["Thread Border Router", "OpenThread", "RCP", "Zigbee Gateway"], + chips: ["ESP32-H2", "ESP32-C6", "ESP32-S3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_rcp_update", + urlRepo: "https://github.com/espressif/esp-thread-br", + exemploYaml: `dependencies: + espressif/esp_rcp_update: "^1.0.0"` + }, + + // ========================================== + // 5. Drivers & Sensores + // ========================================== + { + id: "espressif-led_indicator", + namespace: "espressif", + name: "led_indicator", + versao: "^1.2.0", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "LED Indicator Driver", + descricao: "智能的 LED 灯效控制驱动(快闪、呼吸/渐变、错误码和 RGB),不会阻塞主循环。", + tags: ["LED", "PWM", "RGB", "闪烁", "视觉反馈"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C2", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/led_indicator", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/led/led_indicator", + exemploYaml: `dependencies: + espressif/led_indicator: "^1.2.0"` + }, + { + id: "espressif-button", + namespace: "espressif", + name: "button", + versao: "^3.4.0", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "IoT Button Handler (iot_button)", + descricao: "完整的按键管理器,支持消抖、单击、双击、多击、长按事件以及矩阵键盘。", + tags: ["按键", "消抖", "Long Press", "Double Click", "GPIO"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/button", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/button", + exemploYaml: `dependencies: + espressif/button: "^3.4.0"` + }, + { + id: "espressif-led_strip", + namespace: "espressif", + name: "led_strip", + versao: "^2.5.4", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "Addressable LED Strip (WS2812/SK6812)", + descricao: "高性能驱动,使用 RMT 或 SPI 外设控制 WS2812、WS2813 和 SK6812 可寻址 LED 灯带与灯阵。", + tags: ["WS2812B", "Neopixel", "SK6812", "RMT", "LED 灯带", "RGB"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/led_strip", + urlRepo: "https://github.com/espressif/idf-extra-components/tree/master/led_strip", + exemploYaml: `dependencies: + espressif/led_strip: "^2.5.4"` + }, + { + id: "espressif-esp_tinyusb", + namespace: "espressif", + name: "esp_tinyusb", + versao: "^1.5.0", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "ESP Native USB Device (TinyUSB)", + descricao: "乐鑫为 ESP32-S2、ESP32-S3 和 ESP32-P4 提供的官方 TinyUSB 扩展,可模拟 USB CDC 串口、HID 键盘/鼠标、MSC 优盘、DFU 和 WebUSB。", + tags: ["原生 USB", "TinyUSB", "USB CDC", "USB HID", "WebUSB", "MSC"], + chips: ["ESP32-S2", "ESP32-S3", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_tinyusb", + urlRepo: "https://github.com/espressif/esp-tinyusb", + exemploYaml: `dependencies: + espressif/esp_tinyusb: "^1.5.0"` + }, + { + id: "espressif-w5500", + namespace: "espressif", + name: "w5500", + versao: "^1.2.0", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "WIZnet W5500 SPI Ethernet Driver", + descricao: "通过 SPI 总线驱动 WIZnet W5500 以太网芯片的官方驱动,把物理接口无缝接入 ESP-IDF 原生 TCP/IP 协议栈(lwIP)。", + tags: ["W5500", "Ethernet", "SPI Ethernet", "RJ45", "lwIP", "有线网络"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/w5500", + urlRepo: "https://github.com/espressif/esp-eth-drivers/tree/master/w5500", + exemploYaml: `dependencies: + espressif/w5500: "^1.2.0"` + }, + { + id: "espressif-ch390", + namespace: "espressif", + name: "ch390", + versao: "^1.0.0", + categoria: "drivers_perifericos", + oficial: true, + popular: false, + titulo: "CH390 SPI Ethernet Driver", + descricao: "面向 WCH CH390 控制器的 SPI 10/100M 以太网驱动,适合在 ESP32-C3、S3 或 P4 开发板上低成本添加 RJ45 网口。", + tags: ["CH390", "Ethernet", "WCH", "SPI Ethernet", "RJ45"], + chips: ["ESP32", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/ch390", + urlRepo: "https://github.com/espressif/esp-eth-drivers/tree/master/ch390", + exemploYaml: `dependencies: + espressif/ch390: "^1.0.0"` + }, + { + id: "espressif-usb_host_uvc", + namespace: "espressif", + name: "usb_host_uvc", + versao: "^1.0.4", + categoria: "drivers_perifericos", + oficial: true, + popular: false, + titulo: "USB Host UVC (Webcam Driver)", + descricao: "USB Host 驱动,可把标准 USB UVC 网络摄像头直接接到 ESP32-S2、ESP32-S3 或 ESP32-P4 的原生 USB 口。", + tags: ["USB Host", "UVC", "Webcam", "USB 摄像头", "视频"], + chips: ["ESP32-S2", "ESP32-S3", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/usb_host_uvc", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/usb/usb_host_uvc", + exemploYaml: `dependencies: + espressif/usb_host_uvc: "^1.0.4"` + }, + { + id: "espressif-sensor_hub", + namespace: "espressif", + name: "sensor_hub", + versao: "^1.0.0", + categoria: "drivers_perifericos", + oficial: true, + popular: false, + titulo: "ESP Sensor Hub Manager", + descricao: "统一的框架,用于管理异构传感器(I2C/SPI),支持周期采样、数据融合以及由事件/中断触发。", + tags: ["传感器", "Sensor Hub", "I2C", "事件", "周期采集"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/sensor_hub", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/sensors/sensor_hub", + exemploYaml: `dependencies: + espressif/sensor_hub: "^1.0.0"` + }, + { + id: "espressif-bmi270_sensor", + namespace: "espressif", + name: "bmi270_sensor", + versao: "^1.0.1", + categoria: "drivers_perifericos", + oficial: true, + popular: false, + titulo: "Bosch BMI270 IMU 传感器驱动", + descricao: "面向 Bosch BMI270 六轴惯性 IMU 传感器(加速度计 + 陀螺仪)的官方驱动,支持运动手势和计步检测。", + tags: ["BMI270", "IMU", "加速度计", "陀螺仪", "Bosch", "手势"], + chips: ["ESP32", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/bmi270_sensor", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/sensors/imu/bmi270", + exemploYaml: `dependencies: + espressif/bmi270_sensor: "^1.0.1"` + }, + { + id: "espressif-ds18b20", + namespace: "espressif", + name: "ds18b20", + versao: "^1.0.0", + categoria: "drivers_perifericos", + oficial: true, + popular: true, + titulo: "DS18B20 温度传感器驱动", + descricao: "面向 Dallas/Maxim DS18B20 单总线(1-Wire)温度传感器的数字驱动,通过 RMT 总线支持在同一个 GPIO 引脚上挂接多个传感器。", + tags: ["DS18B20", "1-Wire", "温度", "传感器", "Dallas"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/ds18b20", + urlRepo: "https://github.com/espressif/esp-iot-solution/tree/master/components/sensors/temperature/ds18b20", + exemploYaml: `dependencies: + espressif/ds18b20: "^1.0.0"` + }, + { + id: "esp-idf-lib-scd4x", + namespace: "esp-idf-lib", + name: "scd4x", + versao: "^1.0.0", + categoria: "drivers_perifericos", + oficial: false, + popular: true, + titulo: "Sensirion SCD40/SCD41 CO2 传感器驱动", + descricao: "面向 Sensirion SCD40 和 SCD41 光声式 CO2、温度和相对湿度传感器的高精度 I2C 驱动,带自动校准。", + tags: ["SCD40", "SCD41", "Sensirion", "CO2", "空气质量", "I2C"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/esp-idf-lib/scd4x", + urlRepo: "https://github.com/UncleRus/esp-idf-lib/tree/master/components/scd4x", + exemploYaml: `dependencies: + esp-idf-lib/scd4x: "^1.0.0"` + }, + + // ========================================== + // 6. BSPs (Board Support Packages) + // ========================================== + { + id: "espressif-esp-box-3", + namespace: "espressif", + name: "esp-box-3", + versao: "^1.2.0", + categoria: "bsp_placas", + oficial: true, + popular: true, + titulo: "BSP ESP32-S3-BOX-3", + descricao: "面向 ESP32-S3-BOX-3 AI 开发板的完整支持包,只需一个函数即可初始化触摸屏、音频编解码器、双麦克风、运动传感器和 LED。", + tags: ["BSP", "ESP-BOX-3", "触摸显示屏", "麦克风", "音频 ES8311", "I2C/SPI"], + chips: ["ESP32-S3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-box-3", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/bsp/esp-box-3", + exemploYaml: `dependencies: + espressif/esp-box-3: "^1.2.0"` + }, + { + id: "espressif-esp32_s3_korvo_2", + namespace: "espressif", + name: "esp32_s3_korvo_2", + versao: "^1.1.0", + categoria: "bsp_placas", + oficial: true, + popular: false, + titulo: "BSP ESP32-S3-Korvo-2", + descricao: "面向 ESP32-S3-Korvo-2 音频与语音识别开发套件的板级支持包(Board Support Package),支持 I2S 麦克风和触摸按键。", + tags: ["BSP", "Korvo", "音频", "麦克风阵列", "ESP-SR"], + chips: ["ESP32-S3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp32_s3_korvo_2", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_s3_korvo_2", + exemploYaml: `dependencies: + espressif/esp32_s3_korvo_2: "^1.1.0"` + }, + { + id: "espressif-esp32_s3_eye", + namespace: "espressif", + name: "esp32_s3_eye", + versao: "^1.1.0", + categoria: "bsp_placas", + oficial: true, + popular: true, + titulo: "BSP ESP32-S3-EYE", + descricao: "面向官方计算机视觉开发板 ESP32-S3-EYE 的板级支持包,配置 OV2640 摄像头、圆形 SPI LCD 显示屏和数字麦克风。", + tags: ["BSP", "ESP32-S3-EYE", "摄像头", "计算机视觉", "显示屏"], + chips: ["ESP32-S3"], + urlRegistry: "https://components.espressif.com/components/espressif/esp32_s3_eye", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_s3_eye", + exemploYaml: `dependencies: + espressif/esp32_s3_eye: "^1.1.0"` + }, + { + id: "espressif-m5stack_core_s3", + namespace: "espressif", + name: "m5stack_core_s3", + versao: "^1.0.0", + categoria: "bsp_placas", + oficial: true, + popular: true, + titulo: "BSP M5Stack CoreS3", + descricao: "面向 M5Stack CoreS3 设备的官方板级支持包,初始化触摸屏、AXP2101 电源管理芯片、GC0308 摄像头和 I2S 扬声器。", + tags: ["BSP", "M5Stack", "CoreS3", "Display ILI9342C", "AXP2101", "摄像头"], + chips: ["ESP32-S3"], + urlRegistry: "https://components.espressif.com/components/espressif/m5stack_core_s3", + urlRepo: "https://github.com/espressif/esp-bsp/tree/master/bsp/m5stack_core_s3", + exemploYaml: `dependencies: + espressif/m5stack_core_s3: "^1.0.0"` + }, + { + id: "waveshare-esp32_p4_wifi6_touch_lcd_7b", + namespace: "waveshare", + name: "esp32_p4_wifi6_touch_lcd_7b", + versao: "^1.0.0", + categoria: "bsp_placas", + oficial: false, + popular: true, + titulo: "BSP Waveshare ESP32-P4 Touch LCD 7\"", + descricao: "面向高性能 Waveshare ESP32-P4 开发板的支持包,配备 7 英寸电容触摸屏(MIPI-DSI 1024x600)和 Wi-Fi 6 协处理器。", + tags: ["BSP", "ESP32-P4", "MIPI-DSI", "Waveshare", "7 英寸屏", "触摸"], + chips: ["ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/waveshare/esp32_p4_wifi6_touch_lcd_7b", + urlRepo: "https://github.com/waveshare/ESP32-P4-WiFi6-Touch-LCD-7B", + exemploYaml: `dependencies: + waveshare/esp32_p4_wifi6_touch_lcd_7b: "^1.0.0"` + }, + + // ========================================== + // 7. Sistema & Utilitários + // ========================================== + { + id: "joltwallet-littlefs", + namespace: "joltwallet", + name: "littlefs", + versao: "^1.14.8", + categoria: "sistema_utilitarios", + oficial: false, + popular: true, + titulo: "LittleFS Filesystem for ESP-IDF", + descricao: "面向 SPI 闪存的 LittleFS 文件系统的稳健移植,带动态磨损均衡和防断电损坏保护。", + tags: ["LittleFS", "Flash", "Filesystem", "Wear Leveling", "NVS"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/joltwallet/littlefs", + urlRepo: "https://github.com/joltwallet/esp_littlefs", + exemploYaml: `dependencies: + joltwallet/littlefs: "^1.14.8"` + }, + { + id: "espressif-esp-idf-cxx", + namespace: "espressif", + name: "esp-idf-cxx", + versao: "^1.2.0", + categoria: "sistema_utilitarios", + oficial: true, + popular: true, + titulo: "ESP-IDF C++ Idiomatic Wrappers", + descricao: "现代 C++(C++17/C++20/C++23)类与封装集合,采用 RAII 语义,覆盖 GPIO、Wi-Fi、定时器、FreeRTOS 队列和信号量。", + tags: ["C++", "C++20", "RAII", "Modern C++", "面向对象", "FreeRTOS"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/esp-idf-cxx", + urlRepo: "https://github.com/espressif/esp-idf-cxx", + exemploYaml: `dependencies: + espressif/esp-idf-cxx: "^1.2.0"` + }, + { + id: "espressif-cbor", + namespace: "espressif", + name: "cbor", + versao: "^0.6.0", + categoria: "sistema_utilitarios", + oficial: true, + popular: false, + titulo: "TinyCBOR Serialization", + descricao: "超轻量级库,用于 CBOR(Concise Binary Object Representation)二进制格式的数据序列化与反序列化。", + tags: ["CBOR", "序列化", "二进制", "IoT Protocol", "紧凑 JSON"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-H2", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/cbor", + urlRepo: "https://github.com/espressif/tinycbor", + exemploYaml: `dependencies: + espressif/cbor: "^0.6.0"` + }, + { + id: "espressif-esp_websocket_client", + namespace: "espressif", + name: "esp_websocket_client", + versao: "^1.2.4", + categoria: "sistema_utilitarios", + oficial: true, + popular: true, + titulo: "ESP WebSocket Client", + descricao: "支持 TLS/SSL(WSS)、自动重连、子协议和 ping/pong 心跳的实时双向 WebSocket 客户端。", + tags: ["WebSocket", "WSS", "TLS", "实时", "Sockets", "JSON"], + chips: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4"], + urlRegistry: "https://components.espressif.com/components/espressif/esp_websocket_client", + urlRepo: "https://github.com/espressif/esp-protocols/tree/master/components/esp_websocket_client", + exemploYaml: `dependencies: + espressif/esp_websocket_client: "^1.2.4"` + } +]; + +export const GUIA_COMPONENT_MANAGER = { + titulo: "如何在 ESP-IDF 中使用 ESP Component Registry", + resumo: "从 ESP-IDF v4.4 开始,并在 v5.x 及以后版本中趋于成熟,乐鑫采用了由 IDF Component Manager 管理的模块化包架构。不用再处理复杂的 git 子模块:现在只需在项目的 idf_component.yml 清单文件中声明所需的库。", + vantagens: [ + { + titulo: "自动安装,彼此解耦", + descricao: "在执行 'idf.py build' 或 'idf.py reconfigure' 时,编译系统会自动下载、编译并管理库的版本。" + }, + { + titulo: "严格的语义化版本", + descricao: "通过版本运算符精确控制何时更新(^ 表示兼容次版本,~ 表示补丁版本,也可以固定为精确版本)。" + }, + { + titulo: "项目更轻量、更整洁", + descricao: "项目仓库保持干净,Git 历史中不会混入第三方代码。" + }, + { + titulo: "面向企业或社区的共享", + descricao: "可以把你自己的组件发布到乐鑫的公共云,也可以发布到公司内部的私有注册中心。" + } + ], + comandosCli: [ + { + comando: 'idf.py add-dependency "namespace/componente^versao"', + exemplo: 'idf.py add-dependency "espressif/esp_lvgl_port^2.4.0"', + explicacao: "自动创建或更新 'main/idf_component.yml' 文件,并加入指定的依赖。" + }, + { + comando: "idf.py reconfigure", + exemplo: "idf.py reconfigure", + explicacao: "强制 CMake 和 Component Manager 重新解析依赖树,并下载尚未获取的包。" + }, + { + comando: "compote component upload --name --namespace ", + exemplo: "compote component upload --name meu_driver_sensor --namespace minhadiv", + explicacao: "使用官方的 Compote CLI 工具,把你的开源或专有组件发布到 ESP Component Registry。" + } + ], + sintaxeManifesto: `# 典型的文件结构:main/idf_component.yml +dependencies: + # 从乐鑫官方注册中心下载 + espressif/esp_lvgl_port: "^2.4.0" + espressif/button: "~3.4.0" + + # 精确版本 + espressif/led_indicator: "1.2.0" + + # 社区依赖 + joltwallet/littlefs: "^1.14.8" + + # 本地磁盘上的依赖(可选) + # meu_driver_local: + # path: "../../components/meu_driver"` +}; diff --git a/lib/data/zh-CN/diagnostico.js b/lib/data/zh-CN/diagnostico.js new file mode 100644 index 0000000..cac37a7 --- /dev/null +++ b/lib/data/zh-CN/diagnostico.js @@ -0,0 +1,744 @@ +/** + * ESP32 故障诊断、常见错误与问题排查指南的结构化数据。 + * 涵盖 6 个技术类别,包含根因分析、最佳实践与临时凑合方案的对比, + * 以及 Arduino C++、ESP-IDF(C)和 MicroPython 的代码示例。 + * 代码示例中的注释为中文,串口日志字符串保持英文,以免终端显示乱码。 + */ + +export const categoriasDiagnostico = [ + { + id: "alimentacao", + nome: "供电与硬件", + icone: "Zap", + cor: "amber", + descricao: "Wi-Fi/BLE 射频峰值引起的电压跌落、冲突的 Strapping 引脚、电磁噪声以及 LDO 问题。", + }, + { + id: "cpu-panics", + nome: "CPU 异常与 Guru Meditation", + icone: "Cpu", + cor: "red", + descricao: "空指针、内存访问违规(Load/StoreProhibited)、非法指令以及 ISR 中的缓存异常。", + }, + { + id: "freertos", + nome: "FreeRTOS 与多任务", + icone: "Layers", + cor: "purple", + descricao: "任务看门狗(TWDT)、中断看门狗(IWDT)、栈溢出(Stack Overflow)以及调度器阻塞。", + }, + { + id: "memoria", + nome: "内存、堆与 PSRAM", + icone: "Activity", + cor: "blue", + descricao: "堆碎片化、内存泄漏(Memory Leaks)、DMA 内存分配以及 PSRAM 的限制。", + }, + { + id: "boot-flash", + nome: "引导加载程序与烧录", + icone: "Terminal", + cor: "emerald", + descricao: "串口通信失败(DTR/RTS)、SPI 闪存读取错误、时钟不匹配与分区问题。", + }, + { + id: "conectividade", + nome: "网络连接与协议", + icone: "Wifi", + cor: "cyan", + descricao: "Wi-Fi Beacon 超时、缺少 SNTP 时钟导致的 TLS/HTTPS 握手失败,以及信号不稳定。", + }, +]; + +export const sintomasRapidos = [ + { id: "bootloop", rotulo: "🔄 反复重启(Bootloop)", categoria: "todos" }, + { id: "wifi-crash", rotulo: "📶 开启 Wi-Fi/BLE 时死机", categoria: "alimentacao" }, + { id: "upload-fail", rotulo: "🔌 烧录代码失败(Upload)", categoria: "boot-flash" }, + { id: "random-freeze", rotulo: "⏱️ 运行数分钟/数小时后死机", categoria: "memoria" }, + { id: "null-pointer", rotulo: "💥 Guru Meditation(崩溃)", categoria: "cpu-panics" }, + { id: "wdt-reset", rotulo: "🐕 Watchdog Triggered", categoria: "freertos" }, + { id: "tls-fail", rotulo: "🔒 HTTPS / SSL 失败", categoria: "conectividade" }, +]; + +export const errosCatalogo = [ + { + id: "brownout-reset", + titulo: "Brownout Detector 复位(电压跌落)", + categoria: "alimentacao", + sintomas: ["bootloop", "wifi-crash"], + gravidade: "高", + logSerial: "Brownout detector was triggered\n\nrst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)", + resumo: "ESP32 的供电电压跌到了安全工作阈值以下(约 2.8V ~ 2.43V)。", + causaRaiz: + "开启 Wi-Fi 或 BLE 射频时,功率放大级(PA)会在不到 1 毫秒内产生超过 500mA 的快速电流脉冲。如果电源、又长又细的 USB 线、面包板电源轨或 LDO 稳压器无法以低阻抗提供瞬时电流,芯片 3V3 引脚上的电压就会瞬间塌陷,触发内部的 Brownout 比较电路,以避免闪存数据损坏和不确定状态。", + gambiarra: { + titulo: "通过软件关闭 Brownout", + descricao: "调用 WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0),在代码里让错误不再出现。", + consequencia: "极其危险:ESP32 会在欠压下继续执行指令,损坏 SPI 闪存、锁死寄存器,并在现场出现无预警的不可预测行为。", + }, + solucaoEngenharia: { + titulo: "合理设计硬件与去耦", + passos: [ + "在尽可能靠近 ESP32 的 3V3 和 GND 引脚处,并联一个 10µF 到 100µF 的低 ESR(Low-ESR)钽电容或陶瓷电容,以及一个 100nF 陶瓷电容。", + "使用峰值电流不低于 600mA 至 1A、瞬态响应优秀的 LDO 稳压器(例如 AP2112K、ME6211、TPS73733 或可靠的 XC6206)。避免使用老款 AMS1117 的劣质仿品。", + "当 Wi-Fi 以最大功率发射时,避免用很长的面包板电源轨加细杜邦线给 ESP32 供电。", + ], + }, + codigoArduino: `// 不要关闭 Brownout!如果测试时需要降低峰值: +#include + +void setup() { + Serial.begin(115200); + + // 可选:把 Wi-Fi 最大发射功率从 20dBm 略降到 17dBm, + // 可使电流峰值降低约 20% + WiFi.setTxPower(WIFI_POWER_17dBm); + WiFi.begin("SSID", "PASSWORD"); +}`, + codigoEspIdf: `// ESP-IDF 中的配置: +#include "esp_wifi.h" +#include "esp_log.h" + +void app_main(void) { + // 在 menuconfig 中:Component config -> ESP32-specific -> Hardware Brownout Reset(始终保持开启) + // 在有功率限制的环境中降低峰值: + esp_wifi_set_max_tx_power(68); // 68 = 17dBm(单位为 0.25dBm) +}`, + codigoMicroPython: `# MicroPython 中带稳定等待的安全 Wi-Fi 连接: +import network +import time + +wlan = network.WLAN(network.STA_IF) +wlan.active(True) + +# 等待供电稳定后再开始发射 +time.sleep_ms(200) +wlan.connect("SSID", "PASSWORD") + +tentativas = 0 +while not wlan.isconnected() and tentativas < 30: + time.sleep_ms(200) + tentativas += 1 + +if wlan.isconnected(): + print("Wi-Fi connected! IP:", wlan.ifconfig()[0]) +else: + print("[ERROR] Failed to connect to Wi-Fi")`, + dicaPro: "如果你在设计自己的 PCB,请在模组下方铺设完整的地平面,并让电源走线宽度至少为 0.5mm 到 1mm,以承受电流浪涌而不产生阻性压降(IR drop)。", + }, + { + id: "strapping-pins", + titulo: "启动时 Strapping 引脚冲突", + categoria: "alimentacao", + sintomas: ["bootloop", "upload-fail"], + gravidade: "严重", + logSerial: "rst:0x1 (POWERON_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)\nflash read err, 1000\nwaiting for download", + resumo: "ESP32 无法从闪存启动固件,或意外进入下载模式,原因是某个 Strapping 引脚在复位时被强制到了错误的逻辑电平。", + causaRaiz: + "在 EN/CHIP_PU 引脚拉高(上电复位)的瞬间,CPU 会对特定引脚(Strapping 引脚)的状态采样,以配置闪存电压(1.8V 或 3.3V)、启动模式(UART 下载或 SPI 闪存)和时钟输出。如果你在这些引脚上接了带上拉/下拉的传感器、继电器或 LED,微控制器读到的就是无效逻辑电平,启动随之卡住。", + gambiarra: { + titulo: "在代码里加延时,或每次上电都手动拔线", + descricao: "试图在 setup() 里用软件解决问题,或依赖每次重启前手动断开连线。", + consequencia: "没用:Strapping 引脚由硬件读取,此时 CPU 还没有加载你的代码或引导加载程序中的任何一行。", + }, + solucaoEngenharia: { + titulo: "安全的 GPIO 分配与复位期间隔离", + passos: [ + "经典 ESP32:避免使用 GPIO 0(Boot)、GPIO 2(闪存启动时必须为 LOW 或悬空)、GPIO 12(决定闪存电压:复位时若被拉高,会损坏或卡死 3.3V 闪存)以及 GPIO 15(为 LOW 时屏蔽启动日志)。", + "ESP32-C3:避免在复位时把 GPIO 8 或 GPIO 9 拉低。", + "ESP32-S3:注意 GPIO 0、GPIO 45(VDD_SPI 电压)和 GPIO 46。", + "如果必须把这些引脚用于外设,请用三极管或缓冲器隔离,直到 EN 信号完全稳定。", + ], + }, + codigoArduino: `// 安全引脚分配建议(经典 ESP32): +// 适合 I2C / SPI / 一般传感器的引脚: +// SDA: GPIO 21 | SCL: GPIO 22 +// SPI: MOSI 23 | MISO 19 | SCK 18 | CS 5 + +// 注意:GPIO 34、35、36 (VP)、39 (VN) 只能作输入(没有内部上拉)。 +// 不要对它们使用 pinMode(..., OUTPUT),也不要用于 I2C/SPI。`, + codigoEspIdf: `// 在 ESP-IDF 中,通过 eFuse 固定闪存电压设置(注意:不可逆): +// 如果你使用经典 ESP32 且需要释放 GPIO12,可以烧写 3.3V 的 eFuse: +// espefuse.py --port /dev/ttyUSB0 set_flash_voltage 3.3V +// 这会永久关闭 GPIO12 上的硬件采样。`, + codigoMicroPython: `# MicroPython 中正确的引脚配置: +from machine import Pin + +# ✅ 可安全用于输出和带内部上拉按键的引脚: +led = Pin(2, Pin.OUT) # GPIO 2 +botao = Pin(4, Pin.IN, Pin.PULL_UP) # GPIO 4(安全) + +# ⚠️ 引脚 34、35、36、39 只能作输入,且没有内部上拉: +sensor_analogico = Pin(36, Pin.IN) # 正确(若用作按键,需要外接电阻)`, + dicaPro: "请始终记住:“仅输入”引脚(经典 ESP32 的 GPI 34 到 39)在芯片内没有上拉/下拉电路,也没有输出三极管。在这些引脚上接模拟传感器或按键,需要外接上拉电阻。", + }, + { + id: "guru-load-prohibited", + titulo: "Guru Meditation:LoadProhibited / StoreProhibited", + categoria: "cpu-panics", + sintomas: ["bootloop", "null-pointer"], + gravidade: "严重", + logSerial: "Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.\nCore 0 register dump:\nPC : 0x400d14bc PS : 0x00060830 A0 : 0x800d1512 A1 : 0x3ffb1f20 \nEXCVADDR: 0x00000000", + resumo: "CPU 试图读取(Load)或写入(Store)一个不可访问或无效的内存地址,通常是空地址 0x00000000。", + causaRaiz: + "这是典型的空指针解引用(Null Pointer Dereference)或野指针(Dangling Pointer)。EXCVADDR 寄存器给出了引发故障的地址:如果 EXCVADDR 为 0x00000000 或非常接近零(例如 0x00000008,即结构体成员的偏移),就说明你访问了一个未初始化、或 malloc/创建失败的对象/指针的成员。", + gambiarra: { + titulo: "随便加延时,或在循环里不处理就重启", + descricao: "以为是时序问题,在代码里堆满 delay(),或者不查原因就屏蔽自动重启。", + consequencia: "空指针条件再次出现时,系统在量产环境中仍会随机崩溃。", + }, + solucaoEngenharia: { + titulo: "防御式校验与 Backtrace 解码", + passos: [ + "在访问返回值的成员之前,始终检查分配或查找类函数(malloc、WiFi.client()、JSON 解析、xQueueReceive)是否返回了 NULL。", + "在你的 IDE(Arduino IDE / PlatformIO)中安装“Espressif Exception Decoder”,或使用命令 'xtensa-esp32-elf-addr2line -pfia -e firmware.elf 0x400d14bc',精确找到崩溃发生在 .c/.cpp 的哪一行。", + "在 ESP-IDF 中运行 'idf.py monitor',它会实时自动解码栈回溯。", + ], + }, + codigoArduino: `// 防御式编程: +struct SensorData { + float temperatura; + float umidade; +}; + +void processarSensor(SensorData* sensor) { + // 防止 LoadProhibited 的必要检查: + if (sensor == nullptr) { + Serial.println("[ERROR] Null sensor pointer!"); + return; + } + + Serial.printf("Temp: %.1f C\\n", sensor->temperatura); +}`, + codigoEspIdf: `// 在 ESP-IDF 中使用 ESP_ERROR_CHECK 或显式断言: +#include "esp_log.h" +#include "esp_check.h" + +static const char* TAG = "SENSOR"; + +esp_err_t ler_dado(char* buffer, size_t max_len) { + ESP_RETURN_ON_FALSE(buffer != NULL, ESP_ERR_INVALID_ARG, TAG, "Null buffer provided!"); + // 安全的操作... + return ESP_OK; +}`, + codigoMicroPython: `# 在 MicroPython 中防止 NoneType 和对象异常: +import json + +def processar_sensor(dados_raw): + # 防御式处理空 payload: + if dados_raw is None: + print("[ERROR] Null data received!") + return None + + try: + obj = json.loads(dados_raw) + # 安全使用带默认值的 .get(),避免 KeyError + temperatura = obj.get("temp", 0.0) + return temperatura + except (ValueError, AttributeError) as e: + print("Error processing object:", e) + return None`, + dicaPro: "如果 EXCVADDR 类似 0x3fxxxxxx 或 0x40xxxxxx 但你的代码仍然出错,可能是数组越界访问(buffer overflow)覆盖了内存中的指针。", + }, + { + id: "guru-iram-cache", + titulo: "ISR 中的 Cache Error / InstructionFetchError", + categoria: "cpu-panics", + sintomas: ["bootloop", "null-pointer"], + gravidade: "高", + logSerial: "Guru Meditation Error: Core 0 panic'ed (Cache disabled but cached memory region accessed)\nGuru Meditation Error: Core 0 panic'ed (InstructionFetchError)", + resumo: "中断服务例程(ISR)试图在 SPI 闪存因读写操作而被禁用时,执行闪存中的代码或读取其中的数据。", + causaRaiz: + "默认情况下,ESP32 的代码存放在外部闪存中,并通过内部缓存(Cache)按需加载给 CPU。当 ESP32 向闪存写入数据(如写入 NVS、LittleFS、SPIFFS 或 OTA 升级)时,控制器会暂时关闭指令缓存。如果此刻触发了硬件中断(定时器、GPIO 等),而 ISR 函数位于闪存中,CPU 就取不到下一条指令,立即陷入异常。", + gambiarra: { + titulo: "写闪存前关闭中断", + descricao: "不加区分地用 noInterrupts() 包住所有文件写入操作。", + consequencia: "会丢失高速传感器的脉冲,导致系统定时器不稳定,并可能引发看门狗溢出。", + }, + solucaoEngenharia: { + titulo: "把 ISR 与常量放进 IRAM / DRAM", + passos: [ + "给每一个中断回调函数都加上 IRAM_ATTR 属性(或 IRAM_ATTR static void...)。", + "确保 ISR 中访问的变量或字符串也位于 DRAM 中(在 ESP-IDF 中,避免在 ISR 里直接使用没有 DRAM_ATTR 标记的字符串字面量)。", + "不要在 ISR 里调用外部库的重型函数(如 Serial.print 或大量浮点计算)。", + ], + }, + codigoArduino: `// 正确放入 IRAM 的 ISR: +volatile uint32_t contadorPulsos = 0; + +void IRAM_ATTR tratarInterrupcaoGPIO() { + contadorPulsos++; +} + +void setup() { + pinMode(4, INPUT_PULLUP); + attachInterrupt(digitalPinToInterrupt(4), tratarInterrupcaoGPIO, FALLING); +}`, + codigoEspIdf: `// 在 ESP-IDF 中: +#include "esp_attr.h" +#include "driver/gpio.h" + +static volatile uint32_t pulsos = 0; + +// 显式放入内部 IRAM 的函数: +static void IRAM_ATTR gpio_isr_handler(void* arg) { + pulsos++; +} + +void app_main(void) { + gpio_install_isr_service(ESP_INTR_FLAG_IRAM); + gpio_isr_handler_add(GPIO_NUM_4, gpio_isr_handler, NULL); +}`, + codigoMicroPython: `# MicroPython 中安全的中断(ISR)处理: +import micropython +from machine import Pin + +# 分配应急缓冲区,用于调试 ISR 内部的异常: +micropython.alloc_emergency_exception_buf(100) + +contador_pulsos = 0 + +# 中断回调:不要分配内存(不要创建字符串,不要产生新的浮点数) +def tratar_pulso(pin): + global contador_pulsos + contador_pulsos += 1 + +sensor = Pin(4, Pin.IN, Pin.PULL_UP) +sensor.irq(trigger=Pin.IRQ_FALLING, handler=tratar_pulso)`, + dicaPro: "如果在 ESP-IDF 中注册中断时传入了 ESP_INTR_FLAG_IRAM,那么该中断调用的任何函数(包括 FreeRTOS 函数)都必须支持 IRAM(例如 xQueueSendFromISR)。", + }, + { + id: "freertos-twdt", + titulo: "任务看门狗定时器(TWDT)超时", + categoria: "freertos", + sintomas: ["bootloop", "wdt-reset"], + gravidade: "严重", + logSerial: "E (10532) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:\nE (10532) task_wdt: - IDLE0 (CPU 0)\nTask watchdog got triggered. System will be reset.", + resumo: "一个高优先级任务陷入阻塞式循环,没有让出 CPU 时间,使 IDLE 任务无法喂狗。", + causaRaiz: + "ESP32 上的 FreeRTOS 在每个 CPU 内核上都运行一个优先级为 0 的关键任务,名为 IDLE。任务看门狗会监测 IDLE 任务能否周期性运行(默认每 5 秒)。如果你创建了一个优先级 >= 1 的任务,其中有 while(1) 循环却没有任何阻塞调用(vTaskDelay、读队列、信号量),CPU 就会 100% 被占满,看门狗随即触发紧急复位。", + gambiarra: { + titulo: "在 menuconfig 里关闭任务看门狗,或把它调到 60 秒", + descricao: "关掉 TWDT,让代码不再重启。", + consequencia: "如果代码陷入死循环或死锁,微控制器会永远冻结,只能有人跑到现场拔电源。", + }, + solucaoEngenharia: { + titulo: "事件驱动架构与让出 CPU(Yield)", + passos: [ + "在 FreeRTOS 任务中,不要使用空的忙等待循环 while(!condicao);。", + "始终加入 vTaskDelay(pdMS_TO_TICKS(10)),或通过带超时的 xQueueReceive()、ulTaskNotifyTake() 或 xSemaphoreTake() 等待事件。", + "如果必须持续进行繁重的数学运算,请用 esp_task_wdt_reset() 显式喂狗。", + ], + }, + codigoArduino: `// Arduino 搭配 FreeRTOS 的正确写法: +void minhaTarefa(void *pvParameters) { + for (;;) { + // 读取传感器 + float valor = analogRead(36); + + // 把 CPU 让给 FreeRTOS 和 IDLE 任务: + vTaskDelay(pdMS_TO_TICKS(100)); // 以非阻塞方式等待 100ms + } +}`, + codigoEspIdf: `// ESP-IDF 中使用任务看门狗: +#include "esp_task_wdt.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +void tarefa_processamento(void *pvParameters) { + // 可选:把当前任务注册到 TWDT + esp_task_wdt_add(NULL); + + while (1) { + // 处理... + + // 如果这段处理很长,就喂狗: + esp_task_wdt_reset(); + vTaskDelay(pdMS_TO_TICKS(50)); + } +}`, + codigoMicroPython: `# MicroPython 中使用 uasyncio 的看门狗与非阻塞循环: +from machine import WDT +import uasyncio as asyncio + +# 初始化硬件看门狗,超时 5 秒 +wdt = WDT(timeout=5000) + +async def tarefa_sensor(): + while True: + # 每个正常周期都喂狗: + wdt.feed() + + # 把控制权交还给协作式调度器: + await asyncio.sleep_ms(100) + +async def main(): + asyncio.create_task(tarefa_sensor()) + while True: + await asyncio.sleep(1) + +asyncio.run(main())`, + dicaPro: "在 Arduino 中,delay(ms) 函数内部其实调用的是 FreeRTOS 的 vTaskDelay。但使用 delayMicroseconds() 的循环或纯 CPU 运算不会让出时间,持续数秒以上就可能触发 TWDT。", + }, + { + id: "freertos-stack-overflow", + titulo: "栈溢出(Stack Overflow)", + categoria: "freertos", + sintomas: ["bootloop", "null-pointer"], + gravidade: "严重", + logSerial: "Guru Meditation Error: Core 1 panic'ed (Unhandled debug exception).\nDebug exception reason: Stack canary watchpoint triggered (minha_tarefa)", + resumo: "任务消耗的栈(Stack)内存超过了创建时分配的大小,破坏了 RTOS 的保护金丝雀(canary)。", + causaRaiz: + "FreeRTOS 中的每个任务都会得到一块固定的连续内存,用来存放局部变量、函数参数和调用的返回地址。如果你声明了大数组(如 char buffer[2048];)、实例化了较大的 JSON 缓冲区(如 DynamicJsonDocument doc(4096);),或在默认栈为 2048 字节的任务里做很深的递归调用,栈就会越界并覆盖系统的关键区域。", + gambiarra: { + titulo: "不加考虑地给所有任务都设 64KB 栈", + descricao: "分配巨大的栈,免得操心溢出。", + consequencia: "ESP32 的内部 SRAM(实际可用约 320KB)很快会耗尽,导致 Wi-Fi 初始化和堆分配失败。", + }, + solucaoEngenharia: { + titulo: "有意识地确定大小,并用 HighWaterMark 监控", + passos: [ + "使用 uxTaskGetStackHighWaterMark() 函数测量栈的实际消耗。它返回自启动以来栈剩余空闲字节/字数的最小值。", + "把体积大的缓冲区从栈移到动态堆(临时使用 malloc/free),如果会被重复使用,则在函数作用域外声明为 static。", + "使用 TLS/HTTPS 安全连接或 SSL 的 MQTT 的任务,由于 MbedTLS 加密例程很复杂,至少需要 6KB 到 8KB 的栈。", + ], + }, + codigoArduino: `// 在 Arduino 中监控栈: +void tarefaSensor(void *pvParameters) { + for (;;) { + // 任务代码... + + // 检查栈的最小剩余空间(经典 FreeRTOS 以 Word 为单位,ESP32 以字节为单位) + UBaseType_t espacoLivre = uxTaskGetStackHighWaterMark(NULL); + Serial.printf("[STACK] Minimum free space: %d bytes\\n", (int)espacoLivre); + + vTaskDelay(pdMS_TO_TICKS(5000)); + } +} + +void setup() { + Serial.begin(115200); + // 合理地分配 4096 字节(4KB): + xTaskCreatePinnedToCore(tarefaSensor, "tarefaSensor", 4096, NULL, 1, NULL, 1); +}`, + codigoEspIdf: `// 在 menuconfig 中启用栈的双重检查: +// Component config -> FreeRTOS -> Set a end of stack check -> Option 2 (Check by Stack Canary) +// 这样能在运行时数据被破坏之前就检测到溢出。`, + codigoMicroPython: `# MicroPython 中监控内存与栈: +import gc +import micropython + +# 输出 Python 虚拟机的 RAM 与栈统计: +micropython.mem_info() + +# 运行垃圾回收,释放孤立的内存块: +gc.collect() +print("Free heap:", gc.mem_free(), "bytes") +print("Allocated heap:", gc.mem_alloc(), "bytes")`, + dicaPro: "如果函数只是偶尔处理一次 JSON 或 HTTP 数据包,请只在处理期间把缓冲区分配在堆上,用完立刻释放,而不是撑大任务的常驻栈。", + }, + { + id: "memoria-fragmentacao-heap", + titulo: "堆碎片化与内存泄漏", + categoria: "memoria", + sintomas: ["random-freeze", "tls-fail"], + gravidade: "高", + logSerial: "E (45892) mbedtls: mbedtls_ssl_setup returned -0x7f00\nE (45892) esp-tls: create_ssl_handle failed\nE (45893) HTTP_CLIENT: Connection failed, out of memory", + resumo: "微控制器分配内存失败,尽管报告的空闲内存总量看起来还很多。", + causaRaiz: + "当长时间发生成千上万次大小不一的分配与释放时(在 Arduino 中对 String 对象在循环里不断拼接文本时非常常见),堆就会碎片化。堆被分割成许多被占用块隔开的小空闲块。当 Wi-Fi 驱动或 TLS 库需要一块连续的 40KB 作为 SSL 加密缓冲区时,即便分散的空闲内存总共有 100KB,malloc 也会失败。", + gambiarra: { + titulo: "每隔 X 小时用 ESP.restart() 定期重启 ESP32", + descricao: "安排每天重启一次,以清理碎片化的内存。", + consequencia: "只是掩盖缺陷:在请求高峰时,设备会远早于计划的重启就崩溃。", + }, + solucaoEngenharia: { + titulo: "避免动态字符串,使用预先分配的静态缓冲区", + passos: [ + "在 Arduino 中避免使用 String 类。使用 C 风格的字符缓冲区(char buffer[128];)和 snprintf() 这类安全函数。", + "通过对照空闲内存总量(heap_caps_get_free_size)与最大连续空闲块(heap_caps_get_largest_free_block)来监控碎片化。", + "在复杂的 ESP-IDF 固件中,启用堆内存追踪(Heap Memory Tracing,CONFIG_HEAP_TRACING),精确列出是哪些文件和行忘了调用 free()。", + ], + }, + codigoArduino: `// 对比: +// ❌ 避免(会造成严重的堆碎片化): +// String json = "{\\"temp\\":"; +// json += String(temperatura) + "}"; + +// ✅ 正确(不在堆上动态分配): +char payload[64]; +snprintf(payload, sizeof(payload), "{\\"temp\\":%.2f,\\"umid\\":%.2f}", temperatura, umidade); + +// 监控: +Serial.printf("Free heap: %u | Largest block: %u\\n", + ESP.getFreeHeap(), + ESP.getMaxAllocHeap());`, + codigoEspIdf: `// ESP-IDF 中的堆监控: +#include "esp_heap_caps.h" +#include "esp_log.h" + +void inspecionar_memoria(void) { + size_t livre_total = heap_caps_get_free_size(MALLOC_CAP_8BIT); + size_t maior_bloco = heap_caps_get_largest_free_block(MALLOC_CAP_8BIT); + + ESP_LOGI("HEAP", "Total free: %d bytes | Largest contiguous block: %d bytes", livre_total, maior_bloco); +}`, + codigoMicroPython: `# MicroPython 中预防堆碎片化: +import gc + +# 1. 启用自动回收 +gc.enable() + +# 2. 预先分配 bytearray 并复用,而不是创建新字符串: +buffer_leitura = bytearray(256) + +def ler_sensor_sem_alocacao(stream): + # 复用同一块内存读取(零分配,Zero-Allocation): + bytes_lidos = stream.readinto(buffer_leitura) + return buffer_leitura[:bytes_lidos] + +# 3. 在建立重量级连接(如 HTTPS / TLS)之前触发 GC: +gc.collect() +print(f"Free heap: {gc.mem_free()} B | Allocated: {gc.mem_alloc()} B")`, + dicaPro: "如果最大连续空闲块小于 35KB ~ 40KB,现代 HTTPS/TLS 连接会在证书握手期间失败。", + }, + { + id: "memoria-dma-psram", + titulo: "在外部内存(PSRAM)中分配 DMA 失败", + categoria: "memoria", + sintomas: ["bootloop", "random-freeze"], + gravidade: "高", + logSerial: "E (1204) spi_master: spi_bus_initialize: DMA channel not compatible with external RAM buffer\nESP_ERROR_CHECK failed: esp_err_t 0x102 (ESP_ERR_INVALID_ARG)", + resumo: "固件试图把分配在外部 PSRAM 中的缓冲区交给带 DMA 的外设(SPI、I2S、LCD、SDMMC),而这些外设只能访问内部 SRAM。", + causaRaiz: + "在 ESP32 系列芯片中(尤其是采用标准总线的经典 ESP32、ESP32-S2 和 ESP32-S3),外设的 DMA 控制器没有直接访问通过 SPI/QSPI 连接的外部 PSRAM 的物理总线。DMA 要求收发缓冲区必须位于芯片的内部 SRAM 中。", + gambiarra: { + titulo: "关闭外设的 DMA", + descricao: "把 SPI/I2S 总线配置为不用 DMA 的轮询模式。", + consequencia: "传输速率大幅下降,向显示屏发送帧或进行音频流传输时 CPU 被 100% 占满。", + }, + solucaoEngenharia: { + titulo: "用 MALLOC_CAP_DMA 和 MALLOC_CAP_INTERNAL 显式分配", + passos: [ + "始终使用 heap_caps_malloc(大小, MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL) 函数分配专用于 DMA 的缓冲区。", + "把体积大的非 DMA 数据(如解码后的图像、机器学习模型和待播放的音频)保留在 PSRAM 中,并按需把较小的块复制到内部的 DMA 缓冲区(乒乓缓冲,ping-pong buffering)。", + ], + }, + codigoArduino: `// 在 Arduino ESP32 中分配 DMA 缓冲区: +#include + +uint8_t* dmaBuffer = nullptr; + +void setup() { + size_t tamanho = 4096; + // 确保缓冲区位于支持 DMA 的内部 SRAM 中: + dmaBuffer = (uint8_t*) heap_caps_malloc(tamanho, MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL); + + if (dmaBuffer == nullptr) { + Serial.println("[ERROR] Failed to allocate DMA buffer in internal memory!"); + } +}`, + codigoEspIdf: `// ESP-IDF: +#include "esp_heap_caps.h" + +uint8_t* alocar_buffer_spi(size_t len) { + return (uint8_t*) heap_caps_aligned_alloc(4, len, MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL); +}`, + codigoMicroPython: `# 在 MicroPython 中,检查可用的 PSRAM 内存: +import gc +import esp32 + +# 如果固件编译时带有 SPIRAM 支持(例如名称含 'SPIRAM' 的固件): +print("Total memory accessible in MicroPython:", gc.mem_free() + gc.mem_alloc(), "bytes") + +# 对外设做快速操作时,使用连续的 bytearray: +buffer_spi = bytearray(1024)`, + dicaPro: "在 ESP32-P4 上,先进的 AXI 总线架构允许在某些外部区域使用 DMA,但对整个 ESP32/S2/S3/C3 系列,必须使用内部 SRAM 的规则是严格的。", + }, + { + id: "boot-failed-connect", + titulo: "Failed to connect to ESP32: Timed out waiting for packet header", + categoria: "boot-flash", + sintomas: ["upload-fail"], + gravidade: "中", + logSerial: "A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header\nesptool.py v4.6\nConnecting...................", + resumo: "烧录工具(esptool / Arduino IDE / PlatformIO)无法让微控制器进入 UART 引导加载模式。", + causaRaiz: + "开始烧录固件时,USB 转串口芯片(CH340、CP2102、FTDI)会通过 DTR 和 RTS 线把 GPIO 0 引脚拉低,同时让 EN/RST 引脚先拉低再拉高。在许多常见开发板上,EN 引脚的 RC(电阻电容)延时电路电容量不足,无法在 DTR 信号变化期间保持复位。", + gambiarra: { + titulo: "每次烧录都用手指按住 BOOT 按钮", + descricao: "每次编译器生成完二进制文件后,都要按一下物理 BOOT/GPIO0 按钮。", + consequencia: "不利于敏捷开发,对于封装好的或装在外壳内的板子则根本做不到。", + }, + solucaoEngenharia: { + titulo: "在 EN 引脚加 10µF 电容,或检查数据线", + passos: [ + "在板子的 EN(RST)引脚和 GND 之间接一个 10µF(或 1µF 到 10µF)的电解电容或陶瓷电容,以稳定自动复位的上升斜坡。", + "检查 USB 线的数据线(D+ 和 D-)是否正常。许多便宜的手机充电线只有 VBUS 和 GND 两根电源线。", + "在 Linux 上,确认你的用户属于 'dialout' 组(sudo usermod -a -G dialout $USER),并且 'brltty' 服务没有占用串口。", + ], + }, + codigoArduino: `// 用 esptool 测试串口通信的命令行提示: +// python -m esptool --port /dev/ttyUSB0 chip_id +// 如果返回了 MAC 地址和芯片型号,说明物理通信完全正常。`, + codigoEspIdf: `// 在 ESP-IDF 中: +// idf.py -p /dev/ttyUSB0 -b 460800 flash +// 如果高速烧录失败,请把波特率降到 115200: +// idf.py -p /dev/ttyUSB0 -b 115200 flash`, + codigoMicroPython: `# 通过终端把官方 MicroPython 固件烧录到 ESP32: +# 1. 擦除闪存: +# esptool.py --port /dev/ttyUSB0 erase_flash + +# 2. 以稳妥的波特率写入二进制文件: +# esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-*.bin`, + dicaPro: "如果你使用的是带原生 USB(Direct USB-JTAG)的 ESP32-S3 或 C3 模组,请确认选择的是 CDC/JTAG 端口,而不是传统的 UART 端口。", + }, + { + id: "tls-sntp-clock-fail", + titulo: "时钟不同步导致 TLS/HTTPS 握手失败", + categoria: "conectividade", + sintomas: ["tls-fail", "random-freeze"], + gravidade: "高", + logSerial: "E (15420) esp-tls-mbedtls: mbedtls_ssl_handshake returned -0x2700\nE (15420) esp-tls: Failed to verify peer certificate!\nE (15421) esp-tls: Verification info: The certificate is not yet valid (or has expired)", + resumo: "HTTPS 安全连接、AWS IoT、带 TLS 的 MQTT 或 Web API 失败,原因是 ESP32 的内部时钟停在默认日期 1970 年 1 月 1 日。", + causaRaiz: + "数字安全证书(X.509 SSL/TLS)有严格的有效期(Not Before 和 Not After)。由于 ESP32 默认没有外部 RTC 电池,上电时内部时钟总是从 Unix 纪元零点(1970 年)开始。MbedTLS 客户端校验服务器证书的日期时,会认为证书“尚未生效”(因为相对 1970 年,2026 年是未来),并立刻以错误 -0x2700(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED)中止加密连接。", + gambiarra: { + titulo: "关闭 SSL 证书校验(Insecure / No-Verify)", + descricao: "在 Arduino 中使用 client.setInsecure(),或在 ESP-IDF 中关闭 CA 检查。", + consequencia: "开了一个非常严重的安全缺口:设备易受中间人攻击(MitM),攻击者可以截获密码和固件。", + }, + solucaoEngenharia: { + titulo: "在 TLS 连接之前,必须通过 SNTP 同步日期和时间", + passos: [ + "在 Wi-Fi 获得 IP 之后,立即启动 SNTP 客户端,指向可靠的服务器(如 pool.ntp.org、time.google.com)。", + "等待时钟状态变为已同步,再发起第一次 HTTPS/MQTT 连接。", + "配置正确的时区(Timezone),让日志显示准确的时间。", + ], + }, + codigoArduino: `// Arduino 中 HTTPS 之前先做 SNTP 同步: +#include +#include + +void sincronizarRelogio() { + // 配置 NTP 服务器(pool.ntp.org 和 Google) + configTime(8 * 3600, 0, "pool.ntp.org", "time.google.com"); + + Serial.print("Waiting for time sync"); + time_t now = time(nullptr); + // 2020 年的 Unix 时间是 1577836800。如果更小,说明仍停在 1970 年: + while (now < 1577836800) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println("\\n[OK] Time synchronized! TLS connections enabled."); +}`, + codigoEspIdf: `// ESP-IDF 中的 SNTP: +#include "esp_sntp.h" +#include "esp_log.h" + +void inicializar_sntp(void) { + ESP_LOGI("SNTP", "Starting SNTP client..."); + esp_sntp_setoperatingmode(SNTP_OPMODE_POLL); + esp_sntp_setservername(0, "pool.ntp.org"); + esp_sntp_init(); + + // 等待时钟同步... +}`, + codigoMicroPython: `# MicroPython 中的 SNTP 同步与 HTTPS 请求: +import ntptime +import time +import urequests + +def sincronizar_e_requisitar(): + try: + print("Syncing clock via NTP...") + ntptime.host = "pool.ntp.org" + ntptime.settime() # 通过 NTP 更新 ESP32 的内部 RTC + print("Synchronized UTC time:", time.localtime()) + + # 现在 TLS 握手可以正常校验证书,不会再出现 -0x2700 错误: + resposta = urequests.get("https://api.github.com") + print("HTTPS response:", resposta.status_code) + resposta.close() + except Exception as e: + print("[TLS/NTP ERROR]:", e)`, + dicaPro: "如果你的项目运行在无法访问外部互联网的环境(隔离的局域网),请在路由器上配置本地 NTP 服务器,或通过 I2C 添加 DS3231 之类的实体 RTC 模块。", + }, +]; + +export const regrasDecodificadorLog = [ + { + padrao: /Brownout detector was triggered/i, + titulo: "Brownout Detector(严重欠压)", + tipo: "供电 / 硬件", + explicacao: + "ESP32 的 3V3 引脚电压跌到了安全水平以下(通常是 Wi-Fi/BLE 射频的电流峰值,或电源容量不足所致)。", + acaoRecomendada: + "在 VCC 处加一个 10µF 到 100µF 的低 ESR 电容,使用稳定的电源,并检查 LDO 稳压器。", + }, + { + padrao: /LoadProhibited|StoreProhibited/i, + titulo: "Guru Meditation:Load/StoreProhibited(空指针或无效指针)", + tipo: "CPU 异常 / 异常", + explicacao: + "试图读取或写入内存中的无效地址(几乎总是 NULL 指针解引用或数组越界)。", + acaoRecomendada: + "用 Exception Decoder 或 'addr2line' 解码 Backtrace,找到确切的行。加入防御式检查 `if (ptr != NULL)`。", + }, + { + padrao: /Cache disabled but cached memory region accessed|InstructionFetchError/i, + titulo: "中断中的 Cache Error(ISR 不在 IRAM 中)", + tipo: "CPU 异常 / 闪存", + explicacao: + "中断服务例程(ISR)试图从闪存运行,而此时闪存正忙于写入数据(NVS、LittleFS 或 OTA)。", + acaoRecomendada: + "给中断函数加上 `IRAM_ATTR` 属性,并确保它不会访问闪存中没有 DRAM_ATTR 的变量。", + }, + { + padrao: /Task watchdog got triggered/i, + titulo: "任务看门狗定时器(TWDT)超时", + tipo: "FreeRTOS / 多任务", + explicacao: + "一个高优先级任务独占 CPU 而不让出时间(没有 vTaskDelay 或阻塞),使 IDLE 任务的看门狗无法喂狗。", + acaoRecomendada: + "在长循环中加入 `vTaskDelay(pdMS_TO_TICKS(10))`,或使用队列/信号量来代替持续的 `while(1)` 循环。", + }, + { + padrao: /Stack canary watchpoint triggered/i, + titulo: "栈溢出(任务栈溢出)", + tipo: "FreeRTOS / 内存", + explicacao: + "任务超出了创建时分配的栈(Stack)内存量,破坏了保护金丝雀。", + acaoRecomendada: + "在 `xTaskCreate` 中增大栈的大小(例如从 2048 增加到 4096 字节),并把大数组移到堆或静态变量中。", + }, + { + padrao: /Timed out waiting for packet header|Failed to connect to ESP32/i, + titulo: "UART / 烧录连接失败", + tipo: "引导加载程序 / 连接", + explicacao: + "电脑无法通过 DTR/RTS 让 ESP32 进入烧录模式,或 USB 线没有数据线。", + acaoRecomendada: + "在 EN 引脚和 GND 之间接一个 10µF 电容,换一根带数据线的 USB 线,并在连接时尝试按住 BOOT 按钮。", + }, + { + padrao: /The certificate is not yet valid|-0x2700/i, + titulo: "SSL/TLS 证书失败(时钟停在 1970 年)", + tipo: "网络连接 / TLS", + explicacao: + "ESP32 试图在日期仍为 Unix 纪元零点(1970 年 1 月 1 日)的情况下验证 HTTPS/TLS 证书。", + acaoRecomendada: + "在发起安全的 HTTPS 请求之前,通过 SNTP 同步时间(Arduino 中用 `configTime`,MicroPython 中用 `ntptime.settime()`)。", + }, + { + padrao: /rst:0x1 \(POWERON_RESET\),boot:0x[0-9a-fA-F]+/i, + titulo: "上电复位 / Strapping 引脚", + tipo: "硬件 / 启动", + explicacao: + "微控制器重启并报告了 Strapping 引脚寄存器。如果之后卡住,可能是某个启动引脚处于错误的逻辑电平。", + acaoRecomendada: + "检查 GPIO 0、2、12、15(ESP32)或 8、9(C3)是否连着在启动时会强制出错误电平的电阻或外设。", + }, +]; diff --git a/lib/data/zh-CN/glossario.js b/lib/data/zh-CN/glossario.js new file mode 100644 index 0000000..8344638 --- /dev/null +++ b/lib/data/zh-CN/glossario.js @@ -0,0 +1,408 @@ +/** + * ESP32 技术术语表的结构化数据。 + * 涵盖乐鑫全部芯片系列(ESP32、S2、S3、S31、C2、C3、C5、C6、C61、H2、H4、P4) + * 及其硬件、外设、无线、安全与软件特性。 + */ + +export const categoriasGlossario = [ + { + id: "processamento", + nome: "处理器、CPU 与芯片", + icone: "Cpu", + emoji: "🧠", + cor: "blue", + descricao: "Xtensa 与 RISC-V 架构、内核、ULP 协处理器、AI 向量加速器和浮点运算单元。", + termos: [ + { + termo: "Xtensa 与 RISC-V 架构", + definicao: "处理器的基础指令集。经典 ESP32、S2 和 S3 使用 Tensilica 的专有 Xtensa 内核(LX6/LX7);较新的 C 系列(C2、C3、C5、C6、C61)、H 系列(H2、H4)和 P 系列(P4)则采用开放、模块化且高能效的 32 位 RISC-V 架构。", + exemplo: "ESP32-S3 使用双核 Xtensa LX7,ESP32-C6 使用单核 RISC-V,ESP32-P4 使用 400 MHz 的双核 RISC-V。", + }, + { + termo: "CPU 内核(双核与单核)", + definicao: "彼此独立的中央处理单元。双核芯片可以让一个内核(Core 0)专门负责 Wi-Fi/蓝牙射频和 FreeRTOS 调度,把第二个内核(Core 1)完全留给用户应用和计算。", + exemplo: "ESP32、ESP32-S3 和 ESP32-P4 是双核;ESP32-S2、C2、C3、C6 和 H2 是单核。", + }, + { + termo: "时钟频率(MHz)", + definicao: "以兆赫兹(MHz)衡量的处理速度。ESP-IDF 会动态调整频率(动态频率调节,DFS),在空闲时节省电能。", + exemplo: "ESP32-C2 最高运行在 120 MHz;ESP32、S2、S3 和 C6 可达 160/240 MHz;ESP32-P4 可达 400 MHz。", + }, + { + termo: "ULP(超低功耗协处理器)", + definicao: "独立的超低功耗辅助处理器。在主内核处于深度睡眠(Deep Sleep)时,它仍可继续执行指令,读取模拟传感器(ADC)、I2C 和 GPIO 引脚。", + exemplo: "初代 ESP32 带有 ULP FSM;ESP32-S2、S3 和 C6 带有可用 C 语言编程的 ULP RISC-V;ESP32-P4 带有专用的低功耗 ULP。", + }, + { + termo: "AI 向量扩展(Vector Extension / ESP-NN)", + definicao: "芯片中的专用指令,可并行执行整数(int8/int16)向量与矩阵运算,加速卷积神经网络(CNN)和信号处理。", + exemplo: "ESP32-S3 和 ESP32-P4 可加速人脸识别、语音检测以及 TensorFlow Lite for Microcontrollers 模型的推理。", + }, + { + termo: "FPU(浮点运算单元)", + definicao: "硬件浮点运算单元,可在一个时钟周期内完成小数(`float`)的加、乘、除运算,没有软件开销。", + exemplo: "ESP32 和 ESP32-S3 的 Xtensa 内核带有 FPU,ESP32-P4 的高性能 RISC-V 内核同样带有。", + }, + { + termo: "PPA(像素处理加速器)", + definicao: "ESP32-P4 独有的 2D 图形硬件加速器,用于加速图像处理:帧旋转、缩放、Alpha 通道混合和颜色转换(RGB565、ARGB8888、YUV420)。", + exemplo: "以 60 FPS 渲染复杂图形界面(LVGL),且不占用主 CPU 内核的时间。", + }, + ], + }, + { + id: "seguranca", + nome: "安全、加密与 eFuse", + icone: "ShieldCheck", + emoji: "🔒", + cor: "red", + descricao: "防篡改 eFuse、安全启动 V2(Secure Boot V2)、XTS-AES 闪存加密、密钥管理器(Key Manager)、ECC 以及 DPA 防护。", + termos: [ + { + termo: "eFuse(电子熔丝)", + definicao: "由微型硅熔丝构成、只能一次性且不可逆写入的存储(OTP,一次性可编程)。用于保存加密密钥、出厂 MAC 地址,并在商用产品中锁定调试接口。", + exemplo: "配合 `espefuse.py` 工具烧写安全启动密钥,并在产品出货前禁用 JTAG 端口。", + }, + { + termo: "安全启动(Secure Boot,V1 与 V2)", + definicao: "一种安全启动协议:ROM 代码先对引导加载程序和固件的 RSA-3072 或 ECDSA 签名做密码学校验,通过后才允许执行,从而阻止被篡改的代码注入。", + exemplo: "经典 ESP32 使用安全启动 V1;从 ESP32-S2 起全部采用支持多组签名密钥的安全启动 V2。", + }, + { + termo: "闪存加密(Flash Encryption)", + definicao: "硬件机制,使用 XTS-AES 算法对外部 SPI 闪存的内容进行实时加密和解密。即使开发板被盗或闪存被拆焊,也无法直接读取固件。", + exemplo: "大多数芯片使用 XTS-AES-128;ESP32-S3、C5、P4 和 H4 还支持 XTS-AES-256。", + }, + { + termo: "密钥管理器(Key Manager)", + definicao: "高级安全模块,在芯片内部生成、存储并使用密钥,密钥不会暴露给 SRAM 或固件,因此即使软件存在漏洞也无法提取密钥。", + exemplo: "见于 ESP32-S31、ESP32-C5 和 ESP32-P4 等高安全性系列。", + }, + { + termo: "硬件 ECC 与 ECDSA", + definicao: "在芯片中实现的椭圆曲线加速器(如 P-256 和 P-384)和 ECDSA 数字签名算法,对于快速安全地连接云端以及满足 Matter 标准的认证要求至关重要。", + exemplo: "ESP32-S31、C5、C61、P4、H2 和 H4 带有 ECDSA 硬件加速器。", + }, + { + termo: "HMAC 与数字签名(DS)", + definicao: "密码学认证外设,使用烧写在 eFuse 中、对固件不可见的密钥来计算 HMAC 并对消息签名。", + exemplo: "无需以明文保存证书,即可与 AWS IoT Core 和 Microsoft Azure IoT 进行安全、快速的认证。", + }, + { + termo: "TRNG(真随机数发生器)", + definicao: "基于射频与硅电路的模拟热噪声的真随机数发生器,对于在 TLS/HTTPS 握手中生成会话密钥至关重要。", + exemplo: "ESP32 全系列均提供,为 HTTPS/MbedTLS 连接提供可靠的熵源。", + }, + { + termo: "DPA 防护(差分功耗分析)", + definicao: "硬件层面的物理机制,通过在芯片电流消耗中加入噪声并做平衡,防止攻击者用示波器测量功耗来推断密钥。", + exemplo: "见于 ESP32-C5、C6、C61 和 H2 系列。", + }, + ], + }, + { + id: "memoria", + nome: "内存、总线与存储", + icone: "Database", + emoji: "💾", + cor: "purple", + descricao: "内部 SRAM、启动 ROM、SPI 闪存、QSPI/Octal PSRAM、RTC 内存与 DMA 分配。", + termos: [ + { + termo: "内部 SRAM", + definicao: "直接集成在 CPU 芯片内的超高速易失性存储器,用于程序变量、FreeRTOS 数据结构、驱动缓冲区和运行栈。断电后数据丢失。", + exemplo: "经典 ESP32 有 520 KB SRAM;ESP32-S3 为 512 KB;ESP32-C3 为 400 KB;ESP32-C6 为 512 KB;ESP32-P4 为 768 KB。", + }, + { + termo: "启动 ROM", + definicao: "乐鑫在出厂时永久写入的只读存储器,包含一级引导加载程序(First-Stage Bootloader)、数学表和基础初始化例程,永远无法修改。", + exemplo: "上电后 ROM 最先运行,检查 Strapping 引脚,然后从闪存加载用户的引导加载程序。", + }, + { + termo: "SPI 闪存(Quad-SPI 与 Octal-SPI)", + definicao: "存放应用固件的外部非易失性存储器。通过 4 线(Quad SPI / QSPI)或 8 位数据线(Octal SPI / OPI / OSPI)连接,后者的带宽和传输速率是前者的两倍。", + exemplo: "ESP32-S3 和 ESP32-P4 支持最高 120 MHz 的 Octal SPI 闪存与 PSRAM,可获得最快的纹理和代码加载速度。", + }, + { + termo: "PSRAM(外部伪静态 RAM)", + definicao: "通过 SPI/QSPI/OPI 连接的高密度外部 RAM,可把微控制器的内存扩展到数十 MB,适用于需要超大缓冲区的应用。", + exemplo: "ESP32-WROVER 和 ESP32-S3-WROOM-1 配备 8 MB 外部 PSRAM,用于摄像头的 JPEG 解码和 TFT 显示屏的图形缓冲。", + }, + { + termo: "RTC 快速与慢速 SRAM", + definicao: "专属于实时时钟(RTC)供电域的 SRAM 块。在深度睡眠(Deep Sleep)期间保持供电,用于存放 ULP 代码和标记为 `RTC_DATA_ATTR` 的变量。", + exemplo: "在 ESP32 以 10 µA 的功耗进入深度睡眠期间,保持读数计数器或校准数据不丢失。", + }, + { + termo: "DMA 内存分配(MALLOC_CAP_DMA)", + definicao: "兼容直接内存访问(DMA)的内存,使外设(SPI、I2S、LCD、SDMMC)可以直接向 RAM 传输数据,而不占用 CPU 时间。", + exemplo: "在大多数 ESP32 芯片上,DMA 必须通过 `MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL` 标志在内部 SRAM 中分配。", + }, + { + termo: "堆碎片化(Heap Fragmentation)", + definicao: "经过多次分配与释放后,动态内存被拆成零散的小块(使用 Arduino 的 `String` 对象时很常见),导致无法为 TLS/Wi-Fi 分配大块连续内存。", + exemplo: "在 ESP-IDF 中通过 `heap_caps_get_largest_free_block()` 监测,以避免 HTTPS 连接失败。", + }, + ], + }, + { + id: "conectividade", + nome: "无线连接与协议", + icone: "Wifi", + emoji: "📡", + cor: "emerald", + descricao: "Wi-Fi 4/6、5 GHz 双频、OFDMA、TWT、经典蓝牙、BLE 5.x、LE Audio、Zigbee 3.0、Thread 与 Matter。", + termos: [ + { + termo: "Wi-Fi 6(802.11ax)", + definicao: "新一代无线网络标准,支持 OFDMA(并行通信,延迟更低)、1024-QAM 调制,以及 TWT(目标唤醒时间)功能,可大幅延长 IoT 传感器的电池寿命。", + exemplo: "见于 ESP32-C6、ESP32-C61 和 ESP32-C5。", + }, + { + termo: "Wi-Fi 双频(2.4 GHz 与 5 GHz)", + definicao: "既能工作在传统的 2.4 GHz 频段,也能工作在电磁拥塞更少的 5 GHz 频段,支持 20 MHz / 40 MHz 信道,连接更稳定。", + exemplo: "ESP32-C5 是乐鑫首款集成 Wi-Fi 6 双频射频的芯片。", + }, + { + termo: "OFDMA(正交频分多址)", + definicao: "Wi-Fi 6 的技术,把单个射频信道划分为几十个更小的子载波(资源单元,Resource Unit),让路由器同时服务多个 ESP32 设备而不产生冲突。", + exemplo: "在有数十个节点相连的密集家庭或工业环境中,降低响应延迟。", + }, + { + termo: "TWT(目标唤醒时间)", + definicao: "Wi-Fi 6 的协议:ESP32 与路由器约定好交换数据包的确切时间,使微控制器可以长时间完全关闭射频,同时不断开网络连接。", + exemplo: "由电池供电的 ESP32-C6 传感器可连接 Wi-Fi 6 运行数年,且不丢失同步。", + }, + { + termo: "经典蓝牙(Bluetooth Classic,BR/EDR)", + definicao: "传统蓝牙协议,用于连续传输立体声音频(A2DP)、虚拟串口(SPP),以及需要持续高传输速率的设备。", + exemplo: "在经典 ESP32 上实现蓝牙音箱、音频接收器和 HID 键盘。", + }, + { + termo: "低功耗蓝牙(BLE 5.0 至 5.4)", + definicao: "蓝牙的低功耗版本,支持 2 Mbps 速率(2M PHY)、可达数百米的远距离(Coded PHY / Long Range)、广播扩展以及蓝牙 Mesh 网络。", + exemplo: "ESP32-S3 支持 BLE 5.0;ESP32-C6 和 ESP32-H2 支持蓝牙 5.4 LE。", + }, + { + termo: "蓝牙 LE Audio 与 Auracast", + definicao: "新一代高保真、超低功耗的蓝牙音频,采用 LC3 编解码器,并支持向多个听众同时广播音频(Broadcast Audio / Auracast)。", + exemplo: "ESP32-H4 系列支持,面向新的音频生态和智能耳机。", + }, + { + termo: "IEEE 802.15.4(Zigbee 3.0 与 Thread)", + definicao: "2.4 GHz 的低功耗、低数据速率射频标准,是 Zigbee 3.0 和 Thread 1.3 这类工业与家用 Mesh 网络的物理层基础。", + exemplo: "ESP32-C6、ESP32-H2 和 ESP32-H4 在芯片内集成了 IEEE 802.15.4 收发器。", + }, + { + termo: "Matter 协议", + definicao: "由 CSA 维护的通用开放式智能家居连接标准,可运行在 Wi-Fi、以太网和 Thread 网络上,原生兼容 Apple Home、Google Home、Alexa 和 Home Assistant。", + exemplo: "使用 ESP-Matter 在 ESP32-C6 或 ESP32-H2 上开发智能灯泡和插座,无需依赖专有云。", + }, + ], + }, + { + id: "perifericos", + nome: "输入输出与外设", + icone: "Sliders", + emoji: "🔌", + cor: "amber", + descricao: "GPIO 引脚、Strapping 引脚、ADC/DAC 转换器、PWM/LEDC、MCPWM、RMT、PCNT、TWAI®/CAN、I2C、SPI 与 I2S。", + termos: [ + { + termo: "GPIO(通用输入输出)", + definicao: "多功能引脚,可配置为数字输入或输出,带有可选的内部上拉/下拉电阻,任意引脚都支持外部中断。", + exemplo: "用 `gpio_set_level()` 或 `digitalWrite()` 读取按键、控制继电器和 LED。", + }, + { + termo: "Strapping 引脚", + definicao: "特定的 GPIO 引脚,芯片在复位释放的那一毫秒由硬件采样,以决定启动模式(UART 下载与 SPI 闪存启动)和电压电平。", + exemplo: "经典 ESP32/S3 的 GPIO 0 或 ESP32-C3 的 GPIO 9:复位期间若被拉低,芯片会进入固件烧录模式。", + }, + { + termo: "ADC(模数转换器)", + definicao: "把连续的模拟电压(0 至 3.3V)转换为 12 位数字值的转换器(ESP32-S2 输出 13 位,其中 12 位有效),可通过衰减器配置(0dB、2.5dB、6dB、11dB/12dB)。", + exemplo: "读取 LDR 光敏电阻、电位器、热敏电阻,以及测量锂电池电量。", + }, + { + termo: "DAC(数模转换器)", + definicao: "根据软件生成的数字值产生连续比例模拟电压的转换器,无需外部电路。", + exemplo: "经典 ESP32 和 ESP32-S2 提供,可合成模拟音频或直接输出控制信号。", + }, + { + termo: "LEDC(LED PWM 控制器)", + definicao: "专用于产生多路脉宽调制(PWM)信号的外设,可控制频率,分辨率最高 14-20 位,并支持硬件渐变(fade),不占用 CPU。", + exemplo: "平滑调节 RGBW LED 灯带的亮度,以及舵机定位。", + }, + { + termo: "MCPWM(电机控制 PWM)", + definicao: "为驱动电机设计的高级 PWM 控制器,适用于三相变频器、可配置死区时间(dead-time)的 H 桥,并可采集正交编码器信号。", + exemplo: "在经典 ESP32、S3 和 P4 上精确控制无刷电机(BLDC)和移动机器人。", + }, + { + termo: "RMT(远程控制外设)", + definicao: "可精确到微秒级时序的脉冲收发与生成器,最初为红外遥控(NEC、RC5、Sony)设计,被广泛用于驱动 WS2812B / NeoPixel 数字 LED 灯带。", + exemplo: "刷新数百颗 NeoPixel LED,而无需关闭系统中断。", + }, + { + termo: "PCNT(脉冲计数器)", + definicao: "硬件脉冲计数器,可对外部高频信号的上升/下降沿计数,而无需软件为 CPU 产生中断。", + exemplo: "读取工业旋转编码器、转速计和水流量计。", + }, + { + termo: "TWAI®(双线汽车接口 / CAN 总线)", + definicao: "芯片内集成的、符合 ISO 11898-1 标准的 CAN 2.0B 车载与工业总线控制器,只需外接一个物理收发器(如 SN65HVD230)。", + exemplo: "OBD-II 汽车诊断、电动车遥测以及稳健的工业自动化。", + }, + { + termo: "电容触摸(Touch)", + definicao: "专用引脚,用于测量手指靠近时静电电容的变化,可隔着玻璃或亚克力制作触摸按键和滑条。", + exemplo: "ESP32-S2 和 S3 最多提供 14 个通道,可做现代触摸控制面板。", + }, + { + termo: "PARLIO(并行 IO 控制器)", + definicao: "较新系列(C6、H2、P4)提供的可配置高速并行总线,使用自定义时钟向 LCD 显示屏、摄像头和外部传感器同步传输数据。", + exemplo: "与外围芯片进行高效并行通信,无需让 CPU 用位操作(bit-banging)模拟。", + }, + ], + }, + { + id: "multimidia", + nome: "多媒体、USB 与高级接口", + icone: "Sparkles", + emoji: "✨", + cor: "pink", + descricao: "原生 USB OTG、USB Serial/JTAG、USB 高速 480Mbps、MIPI CSI/DSI、H.264 编码器与以太网 MAC。", + termos: [ + { + termo: "原生 USB OTG(On-The-Go)", + definicao: "芯片内置的全速(12 Mbps)USB 控制器,使 ESP32 既可作为外设(HID 键盘、鼠标、Mass Storage 优盘),也可作为 USB 主机(读取优盘或外设)。", + exemplo: "ESP32-S2 和 ESP32-S3 原生提供,可用于制作自定义键盘和模拟器。", + }, + { + termo: "原生 USB Serial/JTAG", + definicao: "芯片内集成的 USB 接口,同时提供用于控制台的串口和完整的 JTAG 调试探针,无需外接转换芯片(CH340/CP2102)。", + exemplo: "在 ESP32-C3、S3、C6 和 H2 上,只需把 USB 线接到 D+/D- 引脚,就能烧录固件并在 VS Code 中用断点调试。", + }, + { + termo: "USB 2.0 高速(480 Mbps)", + definicao: "高速 USB 2.0 控制器,集成 PHY,传输速率最高 480 Mbps,带宽是全速 USB 的 40 倍。", + exemplo: "ESP32-P4 独有,用于高清视频流和大批量数据传输。", + }, + { + termo: "MIPI CSI 与 MIPI DSI", + definicao: "智能手机行业的标准高速差分串行接口:MIPI-CSI(摄像头串行接口)用于高分辨率摄像头传感器,MIPI-DSI(显示串行接口)用于触摸屏。", + exemplo: "在 ESP32-P4 SoC 上连接 1080p 屏幕和高帧率摄像头。", + }, + { + termo: "硬件 H.264 视频编码器", + definicao: "专用加速模块,可实时把摄像头的原始视频流压缩为标准 H.264(AVC)格式,分辨率最高 1080p、30 FPS,不增加 CPU 负担。", + exemplo: "在 ESP32-P4 上用高效压缩实现智能安防摄像头和电子门铃。", + }, + { + termo: "以太网 MAC 10/100 Mbps", + definicao: "芯片内集成的有线网络数据链路层(Media Access Control)控制器,只需通过 RMII 接口外接一颗物理层收发芯片(PHY,如 LAN8720 或 IP101)。", + exemplo: "在经典 ESP32 和 ESP32-P4 上,提供不受射频噪声影响、稳定的 RJ45 以太网连接,用于楼宇自动化。", + }, + { + termo: "DVP 摄像头接口(8 位 / 16 位)", + definicao: "并行总线,包含 VSYNC、HREF、PCLK 信号和数据总线,支持 DMA,可直接从常见摄像头模组(OV2640、OV5640)采集帧。", + exemplo: "用于 ESP32-CAM 和 ESP32-S3-CAM 开发板,拍照并传输 MJPEG 视频流。", + }, + ], + }, + { + id: "energia", + nome: "电源管理与睡眠模式", + icone: "BatteryCharging", + emoji: "🔋", + cor: "teal", + descricao: "Active 模式、Modem Sleep、Light Sleep、Deep Sleep、Hibernation、欠压检测器(Brownout Detector)与唤醒源。", + termos: [ + { + termo: "Active 模式", + definicao: "正常运行模式:CPU 以最高频率执行指令,所有外设和射频随时可用,电流消耗在 30 mA 到约 240 mA 之间(Wi-Fi 发射期间)。", + exemplo: "ESP32 处理音频、刷新显示屏或实时传输传感器数据。", + }, + { + termo: "Modem Sleep", + definicao: "在两次发射的间隔里暂时关闭 Wi-Fi 和蓝牙射频电路,而 CPU 继续正常运行代码,把电流降到约 20 至 40 mA。", + exemplo: "连接 Wi-Fi 的应用在等待网络事件时的默认模式,不会丢失与路由器的关联。", + }, + { + termo: "Light Sleep", + definicao: "中间级别的节能模式:CPU 时钟暂停、射频关闭,但内部 SRAM、外设和任务状态完整保留。芯片可在 1 ms 内唤醒。", + exemplo: "需要被按键中断或定时器快速唤醒的设备,电流约 0.8 mA。", + }, + { + termo: "Deep Sleep", + definicao: "深度睡眠模式:所有数字电源域和 CPU 都被关闭,仅保留 RTC 域供电(可选保留 RTC 内存和 ULP)。电流降到 5 至 15 µA,芯片唤醒后从头开始执行。", + exemplo: "由电池和太阳能板供电的远程气象站,每小时测量一次。", + }, + { + termo: "Hibernation 模式", + definicao: "芯片中功耗最低的状态:连 RTC 的晶振和慢速域都被关闭,只保留一个模拟恢复电路,可由外部按键或复位唤醒。", + exemplo: "使用 CR2032 纽扣电池、可运行数年的设备,残余电流约 5 µA。", + }, + { + termo: "唤醒源(Wakeup Sources)", + definicao: "用于把 ESP32 从深度睡眠或浅睡眠中唤醒的硬件事件:RTC 定时器、外部 GPIO 引脚(EXT0 / EXT1)、电容触摸,或 ULP 协处理器的信号。", + exemplo: "`esp_sleep_enable_timer_wakeup(60 * 1000000)` 可让芯片每 60 秒准时唤醒。", + }, + { + termo: "欠压检测器(Brownout Detector)", + definicao: "内部的模拟比较器硬件电路,监测 3V3 引脚的供电电压,当电压降到约 2.8V 以下时强制安全复位,防止闪存数据损坏。", + exemplo: "避免电源不足的供电在射频发射峰值期间引起部分复位,保护微控制器。", + }, + ], + }, + { + id: "desenvolvimento", + nome: "固件、启动与操作系统", + icone: "Code2", + emoji: "🚀", + cor: "rose", + descricao: "引导加载程序、FreeRTOS、IRAM_ATTR 宏、闪存分区、带回滚的 OTA 升级与 NVS 存储。", + termos: [ + { + termo: "引导加载程序(Bootloader,一级与二级)", + definicao: "电气复位后立即执行的代码。一级位于芯片 ROM 中;二级位于闪存中,负责校验分区表、检查安全签名,并加载用户固件。", + exemplo: "控制 OTA 分区之间的切换,并在 `app_main` 之前初始化 PSRAM 内存。", + }, + { + termo: "FreeRTOS(实时操作系统)", + definicao: "ESP-IDF 默认的抢占式多任务内核,在多个任务(Task)、消息队列(Queue)、信号量、互斥量和软件定时器之间划分 CPU,并支持优先级控制。", + exemplo: "用 `xTaskCreatePinnedToCore()` 把繁重的任务分配到指定的 CPU 内核上。", + }, + { + termo: "IRAM_ATTR 与 DRAM_ATTR", + definicao: "ESP32 的 GCC 编译器专用属性,强制函数和变量驻留在内部超高速 IRAM/DRAM 中,而不是外部闪存,对中断服务例程(ISR)是必需的。", + exemplo: "避免在闪存忙于写入数据时,中断引发崩溃(*Cache Error*)。", + }, + { + termo: "分区表(partitions.csv)", + definicao: "配置文件,把闪存的存储空间映射为多个逻辑块,分别用于引导加载程序、NVS 数据、LittleFS 文件和多个固件镜像(Factory、OTA_0、OTA_1)。", + exemplo: "可自定义,以容纳带有蓝牙、Wi-Fi 和加密库的大型固件。", + }, + { + termo: "带回滚的 OTA(空中升级)", + definicao: "无线固件升级:新版本被写入另一个分区。若新固件启动失败,系统会自动回滚(*Rollback*)到之前可用的版本。", + exemplo: "`esp_ota_mark_app_valid_cancel_rollback()` 用于确认现场的新升级运行正常。", + }, + { + termo: "NVS(非易失性存储)与 NVS 加密", + definicao: "闪存中的结构化键值机制,用于持久保存网络凭据、校准参数和计数器,并支持通过 eFuse 中的 AES 密钥进行硬件加密。", + exemplo: "保存 Wi-Fi 名称和加密后的密码,以便断电后自动重连。", + }, + { + termo: "LittleFS 与 SPIFFS", + definicao: "为闪存设计的文件系统,带磨损均衡(*wear leveling*),使应用可以读写 HTML 页面、SSL 证书和日志等文件。", + exemplo: "保存 ESP32 内置网页服务器的 HTML/CSS 页面,用于通过浏览器配置网络。", + }, + { + termo: "JTAG 与 OpenOCD", + definicao: "硬件级调试标准,可通过 USB-JTAG 探针在 VS Code 或 Eclipse 中暂停 CPU、设置断点,并实时查看寄存器和变量。", + exemplo: "调试复杂崩溃和空指针问题,而不必只依赖 `Serial.println()`。", + }, + ], + }, +]; diff --git a/messages/zh-CN.json b/messages/zh-CN.json new file mode 100644 index 0000000..6c0a3de --- /dev/null +++ b/messages/zh-CN.json @@ -0,0 +1,152 @@ +{ + "Common": { + "siteName": "ESPDocs", + "author": "Lucas Rayan Guerra", + "organization": "Ciência Embarcada", + "skipToContent": "跳到正文", + "allRightsReserved": "内容采用 MIT 许可证。为嵌入式系统社区而做。", + "backToHome": "返回首页", + "explore": "探索", + "tools": "工具", + "project": "项目", + "loading": "加载中...", + "search": "搜索...", + "officialDocumentation": "官方文档", + "community": "社区", + "mitLicense": "MIT 许可证" + }, + "Header": { + "brand": "ESPDocs", + "homeAria": "ESPDocs,首页", + "navAria": "主导航", + "mobileNavAria": "移动端导航", + "openMenu": "打开导航菜单", + "closeMenu": "关闭菜单", + "navigationTitle": "导航", + "whereToGo": "前往", + "selectChip": "选择芯片", + "selectMyChip": "选择我的芯片", + "hardware": "硬件", + "hardwareDesc": "12 款芯片的引脚与规格", + "series": "ESP32 系列", + "seriesDesc": "12 款芯片的引脚与规格", + "comparator": "对比工具", + "comparatorDesc": "最多四个系列并排对比", + "catalog": "开发板目录", + "catalogDesc": "DevKit、引脚与购买渠道", + "tools": "工具", + "selector": "智能选型", + "selectorDesc": "为你的项目找到合适的芯片", + "diagnostics": "故障诊断", + "diagnosticsDesc": "欠压、启动循环、看门狗等问题", + "components": "Component Registry", + "componentsDesc": "驱动与 idf_component.yml 清单", + "library": "资料库", + "frameworks": "框架与 SDK", + "frameworksDesc": "ESP-IDF、Arduino、Rust 与 Matter", + "glossary": "技术术语表", + "glossaryDesc": "数据手册中出现的术语", + "about": "关于本项目", + "aboutDesc": "作者、方法与开放性" + }, + "Footer": { + "ariaLabel": "ESPDocs 页脚", + "description": "ESP32 生态的独立文档。公开数据、编辑整理,并链接到官方资料来源。", + "exploreTitle": "探索", + "toolsTitle": "工具", + "projectTitle": "项目", + "authorTitle": "作者", + "reportIssue": "反馈问题", + "repository": "代码仓库", + "personalSite": "个人网站", + "linkedin": "LinkedIn" + }, + "Home": { + "badge": "ESP32 开放文档", + "titleLine1": "ESP32,", + "titleLine2": "去繁就简。", + "lede": "规格、引脚、对比与故障诊断,一次读完。少啃数据手册,多花时间在工作台上做原型。", + "chooseMyChip": "选择我的芯片", + "exploreSeries": "浏览全部 {count} 个系列", + "seriesCount": "{count} 个系列", + "frameworkCount": "{count} 个框架", + "portugueseFlag": "100% 中文", + "featuredSeries": "精选系列", + "featuredDesc": "打开数据手册之前,先看每个系列的要点。", + "fullIndex": "完整索引", + "toolsTitle": "从问题出发。", + "toolsEyebrow": "工具", + "toolsDesc": "帮助你选对芯片、诊断硬件故障并加快开发的工具。" + }, + "NotFound": { + "eyebrow": "404 错误", + "title": "该页面不存在。", + "lede": "地址可能已更改或输入有误。请从以下入口继续浏览。", + "backToHome": "返回首页", + "seriesTitle": "ESP32 系列", + "seriesDesc": "12 个系列,含引脚与规格。", + "selectorTitle": "芯片选型", + "selectorDesc": "回答八个问题,获得推荐型号。", + "comparatorTitle": "对比工具", + "comparatorDesc": "最多四个系列并排对比。", + "glossaryTitle": "术语表", + "glossaryDesc": "清晰解释硬件术语。" + }, + "Sobre": { + "label": "独立项目", + "title": "关于 ESPDocs", + "lede": "一个非官方平台,整理 ESP32 的技术信息,并直接链接到乐鑫(Espressif)官方文档。为开源硬件社区而做。", + "viewRepository": "查看代码仓库", + "features": { + "portugueseTitle": "精心整理的内容", + "portugueseDesc": "结构化的技术数据,清晰呈现,没有数据手册的冗余。", + "visualCompareTitle": "可视化对比", + "visualCompareDesc": "用表格和图示选出合适的系列,无需翻阅十份数据手册。", + "centralizedAccessTitle": "集中入口", + "centralizedAccessDesc": "直达官方文档、代码仓库与示例的链接。", + "openSourceTitle": "开源", + "openSourceDesc": "欢迎在 Gitea 上贡献。" + } + }, + "Series": { + "title": "ESP32 系列", + "description": "12 个 ESP32 系列并排对比:ESP32、S2、S3、S31、C2、C3、C5、C6、C61、P4、H2 和 H4。每个系列的架构、内存、无线、外设与引脚。", + "pinout": "引脚", + "specifications": "规格", + "peripherals": "外设", + "architecture": "架构", + "memory": "内存", + "radio": "无线", + "security": "硬件安全" + }, + "Catalogo": { + "title": "开发板目录", + "description": "官方与第三方 DevKit,含引脚、接口与购买链接。", + "filterBySeries": "按系列筛选", + "searchBoards": "搜索开发板..." + }, + "Comparacao": { + "title": "ESP32 系列对比", + "description": "最多并排对比 4 个系列,涵盖处理器、无线、内存与引脚的完整规格。" + }, + "Componentes": { + "title": "ESP Component Registry", + "description": "可直接用于 ESP-IDF 的驱动、库与 idf_component.yml 清单。" + }, + "Diagnostico": { + "title": "故障诊断与排查", + "description": "欠压、启动循环、CPU 异常、FreeRTOS 与硬件最佳实践。" + }, + "Frameworks": { + "title": "框架与 SDK", + "description": "主要开发环境的指南与概览:ESP-IDF、Arduino、MicroPython、Rust 与 ESP-Matter。" + }, + "Glossario": { + "title": "技术术语表", + "description": "对数据手册中出现的硬件、外设、无线与架构概念的实用解释。" + }, + "Seletor": { + "title": "ESP32 智能选型", + "description": "回答几个关于项目的具体问题,依据技术指标找到最合适的系列。" + } +} diff --git a/public/exemplos/zh-CN/arduino.ino b/public/exemplos/zh-CN/arduino.ino new file mode 100644 index 0000000..cb3396e --- /dev/null +++ b/public/exemplos/zh-CN/arduino.ino @@ -0,0 +1,29 @@ +#include + +// 替换为你自己的 Wi-Fi 网络信息 +const char* ssid = "NOME_DA_SUA_REDE"; +const char* password = "SENHA_DA_SUA_REDE"; + +void setup() { + Serial.begin(115200); + delay(1000); + + Serial.println("Conectando ao Wi-Fi..."); + WiFi.begin(ssid, password); + + // 等待连接 + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println(""); + Serial.println("Wi-Fi conectado com sucesso!"); + Serial.print("Endereço IP: "); + Serial.println(WiFi.localIP()); +} + +void loop() { + // 在这里放置程序的主要代码 + delay(1000); +} diff --git a/public/exemplos/zh-CN/esp-adf.c b/public/exemplos/zh-CN/esp-adf.c new file mode 100644 index 0000000..8066797 --- /dev/null +++ b/public/exemplos/zh-CN/esp-adf.c @@ -0,0 +1,72 @@ +#include "esp_log.h" +#include "audio_pipeline.h" +#include "audio_element.h" +#include "audio_event_iface.h" +#include "audio_common.h" +#include "i2s_stream.h" +#include "mp3_decoder.h" +#include "fatfs_stream.h" +#include "esp_peripherals.h" +#include "periph_sdcard.h" + +static const char *TAG = "HELLO_ADF"; + +void app_main(void) +{ + // 初始化外设(如 SD 卡) + esp_periph_config_t periph_cfg = DEFAULT_ESP_PERIPH_SET_CONFIG(); + esp_periph_set_handle_t set = esp_periph_set_init(&periph_cfg); + periph_sdcard_cfg_t sd_cfg = { + .root = "/sdcard", + }; + esp_periph_handle_t sdcard_handle = periph_sdcard_init(&sd_cfg); + esp_periph_start(set, sdcard_handle); + + // 等待 SD 卡挂载 + periph_sdcard_wait_for_ready(sdcard_handle, portMAX_DELAY); + + ESP_LOGI(TAG, "SD card montado!"); + + // 创建流水线 + audio_pipeline_handle_t pipeline; + audio_pipeline_cfg_t pipeline_cfg = DEFAULT_AUDIO_PIPELINE_CONFIG(); + pipeline = audio_pipeline_init(&pipeline_cfg); + + // 元素:文件(fatfs)、解码器(mp3)和输出(i2s) + audio_element_handle_t fatfs_stream_reader, i2s_stream_writer, mp3_decoder; + + fatfs_stream_cfg_t fatfs_cfg = FATFS_STREAM_CFG_DEFAULT(); + fatfs_cfg.type = AUDIO_STREAM_READER; + fatfs_stream_reader = fatfs_stream_init(&fatfs_cfg); + + mp3_decoder_cfg_t mp3_cfg = DEFAULT_MP3_DECODER_CONFIG(); + mp3_decoder = mp3_decoder_init(&mp3_cfg); + + i2s_stream_cfg_t i2s_cfg = I2S_STREAM_CFG_DEFAULT(); + i2s_cfg.type = AUDIO_STREAM_WRITER; + i2s_stream_writer = i2s_stream_init(&i2s_cfg); + + // 注册并连接元素 + audio_pipeline_register(pipeline, fatfs_stream_reader, "file"); + audio_pipeline_register(pipeline, mp3_decoder, "mp3"); + audio_pipeline_register(pipeline, i2s_stream_writer, "i2s"); + + audio_pipeline_link(pipeline, (const char *[]) {"file", "mp3", "i2s"}, 3); + + // 指定要播放的 MP3 文件 + audio_element_set_uri(fatfs_stream_reader, "/sdcard/test.mp3"); + + // 启动流水线 + ESP_LOGI(TAG, "Iniciando pipeline..."); + audio_pipeline_run(pipeline); + + // 保持流水线运行 + while (1) { + vTaskDelay(1000 / portTICK_PERIOD_MS); + } + + // (不会执行到这里,但这里本应是清理逻辑) + audio_pipeline_stop(pipeline); + audio_pipeline_wait_for_stop(pipeline); + audio_pipeline_terminate(pipeline); +} diff --git a/public/exemplos/zh-CN/esp-dsp.c b/public/exemplos/zh-CN/esp-dsp.c new file mode 100644 index 0000000..3be6c6d --- /dev/null +++ b/public/exemplos/zh-CN/esp-dsp.c @@ -0,0 +1,37 @@ +#include +#include "esp_dsp.h" + +#define N 8 // 向量长度 + +void app_main(void) +{ + // 输入向量(信号示例) + float x[N] = {1.0, -2.0, 3.0, -4.0, 2.5, -1.5, 0.0, 4.5}; + float y[N]; // 输出向量 + + // 初始化 ESP-DSP + esp_err_t ret = dsps_fft2r_init_fc32(NULL, CONFIG_DSP_MAX_FFT_SIZE); + if (ret != ESP_OK) { + printf("Erro ao inicializar o ESP-DSP!\n"); + return; + } + + printf("Sinal de entrada:\n"); + for (int i = 0; i < N; i++) { + printf("%f ", x[i]); + } + printf("\n"); + + // 计算每个值的平方 + dsps_mulc_f32(x, y, N, 1.0f); + dsps_mul_f32(y, y, y, N, 1, 1, 1); + + // 对所有平方值求和 + float soma = 0; + dsps_sum_f32(y, N, &soma, 1); + + // 计算幅值(平方和的平方根) + float magnitude = sqrtf(soma); + + printf("Magnitude do vetor: %f\n", magnitude); +} diff --git a/public/exemplos/zh-CN/esp-idf.c b/public/exemplos/zh-CN/esp-idf.c new file mode 100644 index 0000000..c20c868 --- /dev/null +++ b/public/exemplos/zh-CN/esp-idf.c @@ -0,0 +1,56 @@ +/* + * 面向 ESP32 的 ESP-IDF v5.x+ 示例 + * 演示系统初始化、FreeRTOS 任务管理和统一日志 + * + * 组件管理(main/idf_component.yml): + * dependencies: + * espressif/led_strip: "^2.5.0" + */ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/gpio.h" +#include "esp_log.h" +#include "esp_system.h" +#include "esp_chip_info.h" + +static const char *TAG = "main_app"; + +#define BLINK_GPIO GPIO_NUM_2 // 根据开发板 LED 引脚调整 + +static void blink_task(void *pvParameters) +{ + // 使用 ESP-IDF 新 API 配置 GPIO 引脚 + gpio_reset_pin(BLINK_GPIO); + gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); + + bool led_state = false; + + while (1) { + led_state = !led_state; + gpio_set_level(BLINK_GPIO, led_state); + + ESP_LOGI(TAG, "LED %s | Heap livre: %lu bytes", + led_state ? "LIGADO" : "DESLIGADO", + (unsigned long)esp_get_free_heap_size()); + + vTaskDelay(pdMS_TO_TICKS(1000)); + } +} + +void app_main(void) +{ + // SoC 芯片信息 + esp_chip_info_t chip_info; + esp_chip_info(&chip_info); + + ESP_LOGI(TAG, "==========================================="); + ESP_LOGI(TAG, " Iniciando ESP-IDF v5.x Modern Application "); + ESP_LOGI(TAG, " Modelo do Chip: %d | Núcleos: %d | Rev: %d", + chip_info.model, chip_info.cores, chip_info.revision); + ESP_LOGI(TAG, "==========================================="); + + // 创建一个专用的 FreeRTOS 任务 + xTaskCreate(blink_task, "blink_task", 3072, NULL, 5, NULL); +} diff --git a/public/exemplos/zh-CN/esp-iot-solution.c b/public/exemplos/zh-CN/esp-iot-solution.c new file mode 100644 index 0000000..2285010 --- /dev/null +++ b/public/exemplos/zh-CN/esp-iot-solution.c @@ -0,0 +1,72 @@ +/* + * Exemplo ESP-IoT-Solution para ESP32 + * Inicialização de Botão Inteligente com Callbacks e Driver de Display/Sensores + * + * Dependência (idf_component.yml): + * espressif/button: "^3.3.0" + * espressif/led_indicator: "^1.2.0" + */ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_log.h" +#include "iot_button.h" +#include "led_indicator.h" + +static const char *TAG = "iot_solution_app"; + +#define BUTTON_GPIO_NUM 0 // Botão BOOT nativo +#define LED_INDICATOR_GPIO 2 // LED indicador + +static led_indicator_handle_t led_handle = NULL; + +/* Callback para clique único do botão */ +static void button_single_click_cb(void *arg, void *data) +{ + ESP_LOGI(TAG, "Evento: Clique Único detectado!"); + led_indicator_start(led_handle, BLINK_DOUBLE_FAST); +} + +/* Callback para clique longo (> 3 segundos) */ +static void button_long_press_cb(void *arg, void *data) +{ + ESP_LOGW(TAG, "Evento: Pressionamento Longo! Acionando modo de reset de fábrica."); + led_indicator_start(led_handle, BLINK_BREATHE_FAST); +} + +void app_main(void) +{ + ESP_LOGI(TAG, "Iniciando ESP-IoT-Solution Component Suite"); + + // 1. Configuração do LED Indicator + led_indicator_gpio_config_t led_cfg = { + .is_active_level_high = true, + .gpio_num = LED_INDICATOR_GPIO, + }; + led_handle = led_indicator_create(&led_cfg); + + // 2. Configuração do Botão com debounce de hardware/software automático + button_config_t btn_cfg = { + .type = BUTTON_TYPE_GPIO, + .long_press_time = 3000, + .short_press_time = 180, + .gpio_button_config = { + .gpio_num = BUTTON_GPIO_NUM, + .active_level = 0, + }, + }; + + button_handle_t btn_handle = iot_button_create(&btn_cfg); + assert(btn_handle != NULL); + + // Registra callbacks para diferentes gestos + iot_button_register_cb(btn_handle, BUTTON_SINGLE_CLICK, button_single_click_cb, NULL); + iot_button_register_cb(btn_handle, BUTTON_LONG_PRESS_START, button_long_press_cb, NULL); + + ESP_LOGI(TAG, "Drivers inicializados com sucesso! Pressione o botão GPIO 0."); + + while (1) { + vTaskDelay(pdMS_TO_TICKS(1000)); + } +} diff --git a/public/exemplos/zh-CN/esp-matter.c b/public/exemplos/zh-CN/esp-matter.c new file mode 100644 index 0000000..a39b46b --- /dev/null +++ b/public/exemplos/zh-CN/esp-matter.c @@ -0,0 +1,44 @@ +#include +#include "esp_log.h" +#include "esp_matter.h" +#include "esp_matter_controller.h" +#include "nvs_flash.h" + +static const char *TAG = "esp-matter-example"; + +void app_event_cb(const esp_matter_event_t *event) +{ + switch (event->event_id) { + case ESP_MATTER_EVENT_ATTRIBUTE_UPDATE: { + const esp_matter_attr_update_t *attr_update = &event->data.attr_update; + if (attr_update->endpoint_id == 1 && attr_update->cluster_id == ESP_MATTER_ON_OFF_CLUSTER_ID) { + bool on = false; + esp_matter_attribute_get(attr_update->endpoint_id, attr_update->cluster_id, + attr_update->attribute_id, &on); + ESP_LOGI(TAG, "Lâmpada %s", on ? "ligada" : "desligada"); + } + break; + } + default: + break; + } +} + +void app_main(void) +{ + // Inicializa NVS + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ESP_ERROR_CHECK(nvs_flash_init()); + } + + // Inicializa o Matter node + esp_matter::node_t *node = esp_matter::node::create(NULL, app_event_cb); + esp_matter::endpoint_t *endpoint = esp_matter::endpoint::create(node, ESP_MATTER_ENDPOINT_TYPE_ON_OFF_LIGHT); + + // Inicia o stack Matter + ESP_ERROR_CHECK(esp_matter::start(node)); + + ESP_LOGI(TAG, "Dispositivo Matter iniciado. Aguardando comissionamento..."); +} diff --git a/public/exemplos/zh-CN/esp-nn.c b/public/exemplos/zh-CN/esp-nn.c new file mode 100644 index 0000000..9f4c1bf --- /dev/null +++ b/public/exemplos/zh-CN/esp-nn.c @@ -0,0 +1,44 @@ +#include +#include "esp_nn.h" +#include "esp_nn_defs.h" + +#define INPUT_SIZE 4 +#define OUTPUT_SIZE 3 + +void print_array(const char *label, int16_t *array, int size) { + printf("%s: ", label); + for (int i = 0; i < size; i++) { + printf("%d ", array[i]); + } + printf("\n"); +} + +void app_main(void) +{ + // Vetor de entrada (ex: saída de uma camada anterior) + int16_t input[INPUT_SIZE] = {1, 2, 3, 4}; + + // Pesos da camada densa (3x4) + int8_t weights[OUTPUT_SIZE * INPUT_SIZE] = { + 1, -1, 2, 0, + 0, 1, -1, 1, + 2, 0, 1, -2 + }; + + // Bias de cada neurônio + int16_t bias[OUTPUT_SIZE] = {10, -5, 0}; + + // Saída + int16_t output[OUTPUT_SIZE]; + + // Multiplicação da matriz: output = weights * input + bias + esp_nn_mul_mat_16x8_16(weights, input, bias, output, + OUTPUT_SIZE, INPUT_SIZE, /*shift=*/0); + + print_array("Antes da ReLU", output, OUTPUT_SIZE); + + // Aplicar função de ativação ReLU + esp_nn_relu_16(output, OUTPUT_SIZE); + + print_array("Depois da ReLU", output, OUTPUT_SIZE); +} diff --git a/public/exemplos/zh-CN/esp-now.c b/public/exemplos/zh-CN/esp-now.c new file mode 100644 index 0000000..ddfab5b --- /dev/null +++ b/public/exemplos/zh-CN/esp-now.c @@ -0,0 +1,92 @@ +/* + * Exemplo ESP-NOW para ESP32 + * Comunicação Sem Fio Ponto-a-Ponto e Broadcast sem roteador Wi-Fi + * + * Protocolo nativo integrado no ESP-IDF + */ + +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_wifi.h" +#include "esp_now.h" +#include "esp_log.h" +#include "nvs_flash.h" + +static const char *TAG = "esp_now_demo"; + +// Estrutura de dados enviada no pacote +typedef struct { + uint32_t sensor_id; + float temperatura; + float umidade; + uint32_t tempo_ms; +} __attribute__((packed)) dados_pacote_t; + +// Endereço MAC de Broadcast (envia para todos os nós ESP-NOW por perto) +static const uint8_t broadcast_mac[ESP_NOW_ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; + +/* Callback executado ao enviar um pacote */ +static void on_data_sent(const uint8_t *mac_addr, esp_now_send_status_t status) +{ + ESP_LOGI(TAG, "Envio concluído: %s", status == ESP_NOW_SEND_SUCCESS ? "SUCESSO (ACK)" : "FALHA"); +} + +/* Callback executado ao receber um pacote de outro ESP32 */ +static void on_data_recv(const esp_now_recv_info_t *recv_info, const uint8_t *data, int len) +{ + if (len == sizeof(dados_pacote_t)) { + dados_pacote_t *pct = (dados_pacote_t *)data; + ESP_LOGI(TAG, "Pacote recebido de [%02X:%02X:%02X:%02X:%02X:%02X]: Sensor #%ld | Temp: %.1f C | Umid: %.1f %%", + recv_info->src_addr[0], recv_info->src_addr[1], recv_info->src_addr[2], + recv_info->src_addr[3], recv_info->src_addr[4], recv_info->src_addr[5], + pct->sensor_id, pct->temperatura, pct->umidade); + } +} + +void app_main(void) +{ + // Inicializa NVS e Wi-Fi em modo Station + nvs_flash_init(); + esp_netif_init(); + esp_event_loop_create_default(); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + esp_wifi_init(&cfg); + esp_wifi_set_mode(WIFI_MODE_STA); + esp_wifi_start(); + + // Inicializa o protocolo ESP-NOW + ESP_ERROR_CHECK(esp_now_init()); + esp_now_register_send_cb(on_data_sent); + esp_now_register_recv_cb(on_data_recv); + + // Registra o peer de Broadcast + esp_now_peer_info_t peer_info = { + .channel = 1, + .ifidx = WIFI_IF_STA, + .encrypt = false, + }; + memcpy(peer_info.peer_addr, broadcast_mac, ESP_NOW_ETH_ALEN); + ESP_ERROR_CHECK(esp_now_add_peer(&peer_info)); + + ESP_LOGI(TAG, "ESP-NOW pronto! Enviando telemetria a cada 3 segundos..."); + + dados_pacote_t telemetria = { + .sensor_id = 101, + .temperatura = 24.8f, + .umidade = 58.2f, + }; + + while (1) { + telemetria.tempo_ms = esp_log_timestamp(); + telemetria.temperatura += ((float)(rand() % 10) - 5.0f) / 10.0f; + + esp_err_t res = esp_now_send(broadcast_mac, (uint8_t *)&telemetria, sizeof(telemetria)); + if (res != ESP_OK) { + ESP_LOGE(TAG, "Erro ao disparar envio ESP-NOW: %d", res); + } + + vTaskDelay(pdMS_TO_TICKS(3000)); + } +} diff --git a/public/exemplos/zh-CN/esp-rainmaker.c b/public/exemplos/zh-CN/esp-rainmaker.c new file mode 100644 index 0000000..19bdf01 --- /dev/null +++ b/public/exemplos/zh-CN/esp-rainmaker.c @@ -0,0 +1,76 @@ +/* + * Exemplo ESP-RainMaker para ESP32 + * Dispositivo: Interruptor Inteligente com controle via App e Nuvem + * + * Dependência (idf_component.yml): + * espressif/esp_rainmaker: "^1.4.0" + */ + +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_log.h" +#include "nvs_flash.h" + +#include +#include +#include +#include + +static const char *TAG = "app_rainmaker"; +static esp_rmaker_device_t *switch_device; + +/* Callback acionado quando o usuário altera o estado no App móvel */ +static esp_err_t write_cb(const esp_rmaker_device_t *dev, const esp_rmaker_param_val_t val, void *priv_data, esp_rmaker_write_ctx_t *ctx) +{ + if (ctx) { + ESP_LOGI(TAG, "Comando recebido via %s", esp_rmaker_device_cb_src_to_str(ctx->src)); + } + + bool state = val.val.b; + ESP_LOGI(TAG, "Estado do interruptor alterado para: %s", state ? "LIGADO" : "DESLIGADO"); + + // Atualiza o parâmetro na nuvem e no aplicativo + esp_rmaker_param_update_and_report(priv_data, val); + return ESP_OK; +} + +void app_main(void) +{ + // Inicialização da memória não-volátil (NVS) + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + err = nvs_flash_init(); + } + ESP_ERROR_CHECK(err); + + // Inicializa o provisionamento Wi-Fi + app_wifi_init(); + + // Configura o nó RainMaker + esp_rmaker_config_t rainmaker_cfg = { + .enable_time_sync = true, + }; + esp_rmaker_node_t *node = esp_rmaker_node_init(&rainmaker_cfg, "ESP32_SmartSwitch", "Switch"); + + // Cria o dispositivo padrão 'Switch' + switch_device = esp_rmaker_switch_device_create("Luz Sala", NULL, true); + + // Registra callback de escrita + esp_rmaker_device_add_cb(switch_device, write_cb, NULL); + esp_rmaker_node_add_device(node, switch_device); + + // Habilita serviços adicionais (OTA e Timezone) + esp_rmaker_ota_enable_default(); + esp_rmaker_timezone_service_enable(); + + // Inicia o agente RainMaker + esp_rmaker_start(); + + // Inicia o provisionamento Wi-Fi via BLE (abre no app oficial RainMaker) + app_wifi_start(POP_TYPE_RANDOM); + + ESP_LOGI(TAG, "Nó RainMaker pronto! Escaneie o QR Code no app ESP RainMaker."); +} diff --git a/public/exemplos/zh-CN/esp-sr.c b/public/exemplos/zh-CN/esp-sr.c new file mode 100644 index 0000000..a4cd9a1 --- /dev/null +++ b/public/exemplos/zh-CN/esp-sr.c @@ -0,0 +1,98 @@ +/* + * Exemplo ESP-SR para ESP32-S3 / ESP32-P4 + * Reconhecimento de Fala Local Offline (WakeNet + MultiNet) + * + * Dependência (idf_component.yml): + * espressif/esp-sr: "^1.5.0" + */ + +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_log.h" +#include "esp_wn_iface.h" +#include "esp_wn_models.h" +#include "esp_mn_iface.h" +#include "esp_mn_models.h" +#include "esp_afe_sr_iface.h" +#include "esp_afe_sr_models.h" + +static const char *TAG = "app_voice_sr"; + +void feed_audio_task(void *arg) +{ + esp_afe_sr_data_t *afe_data = (esp_afe_sr_data_t *)arg; + int audio_chunksize = afe_handle->get_feed_chunksize(afe_data); + int16_t *feed_buff = (int16_t *)malloc(audio_chunksize * sizeof(int16_t) * 2); + + while (1) { + // Leitura de áudio I2S dos microfones da placa + // i2s_read(I2S_NUM_0, feed_buff, ...); + + afe_handle->feed(afe_data, feed_buff); + vTaskDelay(pdMS_TO_TICKS(10)); + } + free(feed_buff); + vTaskDelete(NULL); +} + +void speech_recognition_task(void *arg) +{ + esp_afe_sr_data_t *afe_data = (esp_afe_sr_data_t *)arg; + const esp_afe_sr_iface_t *afe_handle = &ESP_AFE_SR_HANDLE; + + // Inicializa o modelo de comandos de fala (MultiNet) + const esp_mn_iface_t *multinet = &ESP_MN_HANDLE; + model_iface_data_t *model_data = multinet->create(&MULTINET_MODEL, 6000); + + ESP_LOGI(TAG, "Aguardando palavra-chave de ativação (ex: 'Hi, ESP')..."); + + while (1) { + afe_fetch_result_t *res = afe_handle->fetch(afe_data); + if (!res || res->ret_value == ESP_FAIL) { + continue; + } + + // 1. Verificação de Wake Word (Palavra de ativação) + if (res->wake_word_detected == WAKENET_DETECTED) { + ESP_LOGW(TAG, ">>> PALAVRA-CHAVE DETECTADA! Canal de escuta aberto."); + } + + // 2. Reconhecimento de comando local + if (res->raw_data_size > 0) { + esp_mn_state_t mn_state = multinet->detect(model_data, res->data); + + if (mn_state == ESP_MN_STATE_DETECTED) { + esp_mn_results_t *mn_res = multinet->get_results(model_data); + ESP_LOGI(TAG, ">>> COMANDO RECONHECIDO: ID #%d (Frase correspondente)", mn_res->command_id[0]); + + // Exemplo de ação + if (mn_res->command_id[0] == 1) { + ESP_LOGI(TAG, "Ação: Ligar Luz da Sala"); + } else if (mn_res->command_id[0] == 2) { + ESP_LOGI(TAG, "Ação: Desligar Luz da Sala"); + } + } else if (mn_state == ESP_MN_STATE_TIMEOUT) { + ESP_LOGI(TAG, "Tempo esgotado. Retornando ao modo de escuta de Wake Word."); + } + } + } + vTaskDelete(NULL); +} + +void app_main(void) +{ + ESP_LOGI(TAG, "Iniciando ESP-SR Speech Recognition Engine"); + + // Configura o pipeline de Audio Front-End (AEC, BSS, VAD, WakeNet) + afe_config_t afe_config = AFE_CONFIG_DEFAULT(); + afe_config.wakenet_init = true; + afe_config.voice_communication_init = false; + + esp_afe_sr_data_t *afe_data = ESP_AFE_SR_HANDLE.create_from_config(&afe_config); + + // Cria as tarefas de alimentação de áudio e reconhecimento + xTaskCreatePinnedToCore(feed_audio_task, "feed_task", 4096, afe_data, 5, NULL, 0); + xTaskCreatePinnedToCore(speech_recognition_task, "sr_task", 8192, afe_data, 5, NULL, 1); +} diff --git a/public/exemplos/zh-CN/esp-who.c b/public/exemplos/zh-CN/esp-who.c new file mode 100644 index 0000000..0e9150a --- /dev/null +++ b/public/exemplos/zh-CN/esp-who.c @@ -0,0 +1,71 @@ +#include "esp_camera.h" +#include "fd_forward.h" // Face Detection +#include "fr_forward.h" // Face Recognition +#include "human_face_detect_msr01.hpp" +#include "human_face_detect_mnp01.hpp" + +#define CAMERA_MODEL_AI_THINKER // ou o modelo da sua placa + +#include "camera_pins.h" + +void setup() { + Serial.begin(115200); + Serial.setDebugOutput(true); + Serial.println("Iniciando câmera..."); + + camera_config_t config; + config.ledc_channel = LEDC_CHANNEL_0; + config.ledc_timer = LEDC_TIMER_0; + config.pin_d0 = Y2_GPIO_NUM; + config.pin_d1 = Y3_GPIO_NUM; + config.pin_d2 = Y4_GPIO_NUM; + config.pin_d3 = Y5_GPIO_NUM; + config.pin_d4 = Y6_GPIO_NUM; + config.pin_d5 = Y7_GPIO_NUM; + config.pin_d6 = Y8_GPIO_NUM; + config.pin_d7 = Y9_GPIO_NUM; + config.pin_xclk = XCLK_GPIO_NUM; + config.pin_pclk = PCLK_GPIO_NUM; + config.pin_vsync = VSYNC_GPIO_NUM; + config.pin_href = HREF_GPIO_NUM; + config.pin_sscb_sda = SIOD_GPIO_NUM; + config.pin_sscb_scl = SIOC_GPIO_NUM; + config.pin_pwdn = PWDN_GPIO_NUM; + config.pin_reset = RESET_GPIO_NUM; + config.xclk_freq_hz = 20000000; + config.pixel_format = PIXFORMAT_RGB565; + config.frame_size = FRAMESIZE_QVGA; + config.fb_count = 1; + + if (esp_camera_init(&config) != ESP_OK) { + Serial.println("Falha ao iniciar a câmera!"); + return; + } + + Serial.println("Câmera inicializada com sucesso!"); +} + +void loop() { + camera_fb_t *fb = esp_camera_fb_get(); + if (!fb) { + Serial.println("Falha ao capturar imagem!"); + return; + } + + // Detecta rostos na imagem + box_array_t *faces = face_detect_msr01(fb->buf, fb->width, fb->height, fb->format); + if (faces) { + Serial.printf("Rostos detectados: %d\n", faces->len); + for (int i = 0; i < faces->len; i++) { + box_t *box = &faces->box[i]; + Serial.printf("Face %d - x:%d y:%d w:%d h:%d\n", i, box->box_p[0], box->box_p[1], + box->box_p[2] - box->box_p[0], box->box_p[3] - box->box_p[1]); + } + dl_lib_free(faces); + } else { + Serial.println("Nenhum rosto detectado."); + } + + esp_camera_fb_return(fb); + delay(1000); +} diff --git a/public/exemplos/zh-CN/esp-zigbee.c b/public/exemplos/zh-CN/esp-zigbee.c new file mode 100644 index 0000000..a3e5bb6 --- /dev/null +++ b/public/exemplos/zh-CN/esp-zigbee.c @@ -0,0 +1,97 @@ +/* + * Exemplo ESP-Zigbee-SDK para ESP32-H2 e ESP32-C6 (IEEE 802.15.4) + * Dispositivo: Lâmpada Inteligente Zigbee 3.0 (Home Automation End Device) + * + * Dependência (idf_component.yml): + * espressif/esp-zigbee-lib: "^1.6.0" + */ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "esp_zigbee_core.h" + +static const char *TAG = "zigbee_light_device"; + +#define HA_ESP_LIGHT_ENDPOINT 1 +#define ESP_ZB_PRIMARY_CHANNEL_MASK (1l << 15) // Canal 15 padrão Zigbee + +/* Callback de escrita em atributos Zigbee (ex: Liga/Desliga via Home Assistant) */ +static esp_err_t zb_attribute_handler(const esp_zb_zcl_set_attr_value_message_t *message) +{ + if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) { + if (message->attribute.id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && + message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) { + bool on_off_state = message->attribute.data.value ? *(bool *)message->attribute.data.value : false; + ESP_LOGW(TAG, ">>> COMANDO ZIGBEE RECEBIDO: Lâmpada %s", on_off_state ? "LIGADA" : "DESLIGADA"); + } + } + return ESP_OK; +} + +/* Callback de eventos da pilha Zigbee */ +void esp_zb_app_signal_handler(esp_zb_app_signal_msg_t *signal_msg) +{ + uint32_t *p_sg_p = signal_msg->p_app_signal; + esp_err_t err_status = signal_msg->esp_err_status; + esp_zb_app_signal_type_t sig_type = *p_sg_p; + + switch (sig_type) { + case ESP_ZB_ZDO_SIGNAL_SKIP_STARTUP: + ESP_LOGI(TAG, "Iniciando comissionamento na rede Zigbee..."); + esp_zb_bdb_start_top_level_commissioning(ESP_ZB_BDB_MODE_NETWORK_STEERING); + break; + case ESP_ZB_BDB_SIGNAL_STEERING: + if (err_status == ESP_OK) { + ESP_LOGI(TAG, "Conectado com sucesso à rede Zigbee 3.0!"); + } else { + ESP_LOGW(TAG, "Buscando coordenador Zigbee novamente..."); + esp_zb_scheduler_alarm((esp_zb_callback_t)esp_zb_bdb_start_top_level_commissioning, ESP_ZB_BDB_MODE_NETWORK_STEERING, 1000); + } + break; + default: + break; + } +} + +static void esp_zb_task(void *pvParameters) +{ + // Configura nó Zigbee como End Device + esp_zb_cfg_t zb_nwk_cfg = { + .esp_zb_role = ESP_ZB_DEVICE_TYPE_ED, + .install_code_policy = false, + .nwk_cfg.zed_cfg = { + .ed_timeout = ESP_ZB_ED_0_5_MIN, + .keep_alive = 3000, + }, + }; + esp_zb_init(&zb_nwk_cfg); + + // Cria o cluster de On/Off de iluminação residencial + esp_zb_on_off_light_cfg_t light_cfg = ESP_ZB_DEFAULT_ON_OFF_LIGHT_CONFIG(); + esp_zb_ep_list_t *ep_list = esp_zb_on_off_light_ep_create(HA_ESP_LIGHT_ENDPOINT, &light_cfg); + + // Registra endpoint e manipulador de atributos + esp_zb_device_register(ep_list); + esp_zb_core_action_handler_register(zb_attribute_handler); + + esp_zb_set_primary_network_channel_set(ESP_ZB_PRIMARY_CHANNEL_MASK); + ESP_ERROR_CHECK(esp_zb_start(false)); + esp_zb_main_loop_iteration(); +} + +void app_main(void) +{ + ESP_ERROR_CHECK(nvs_flash_init()); + + // Inicializa a pilha de rádio IEEE 802.15.4 + esp_zb_platform_config_t config = { + .radio_config = { .radio_mode = ZB_RADIO_MODE_NATIVE }, + .host_config = { .host_connection_mode = ZB_HOST_CONNECTION_MODE_NONE }, + }; + ESP_ERROR_CHECK(esp_zb_platform_config(&config)); + + xTaskCreate(esp_zb_task, "Zigbee_main", 4096, NULL, 5, NULL); +} diff --git a/public/exemplos/zh-CN/micropython.py b/public/exemplos/zh-CN/micropython.py new file mode 100644 index 0000000..36a1d27 --- /dev/null +++ b/public/exemplos/zh-CN/micropython.py @@ -0,0 +1,11 @@ +from machine import Pin +from time import sleep + +# Define o pino 2 como saída (geralmente o LED embutido) +led = Pin(2, Pin.OUT) + +while True: + led.value(1) # Liga o LED + sleep(0.5) # Aguarda 0,5 segundos + led.value(0) # Desliga o LED + sleep(0.5) # Aguarda 0,5 segundos diff --git a/public/exemplos/zh-CN/rust-esp.rs b/public/exemplos/zh-CN/rust-esp.rs new file mode 100644 index 0000000..17288c3 --- /dev/null +++ b/public/exemplos/zh-CN/rust-esp.rs @@ -0,0 +1,48 @@ +//! Exemplo Rust no ESP32 usando `esp-hal` (Modo Bare-Metal / no_std) +//! Pisca um LED e envia mensagens via UART Serial com segurança de memória garantida. +//! +//! Cargo.toml: +//! esp-hal = { version = "0.22", features = ["esp32s3"] } +//! esp-println = { version = "0.12", features = ["esp32s3", "log"] } + +#![no_std] +#![no_main] + +use esp_backtrace as _; +use esp_hal::{ + clock::ClockControl, + gpio::{Io, Level, Output}, + peripherals::Peripherals, + system::SystemControl, + timer::timg::TimerGroup, + delay::Delay, + prelude::*, +}; +use esp_println::println; + +#[entry] +fn main() -> ! { + // Inicializa periféricos do SoC com verificação em tempo de compilação + let peripherals = Peripherals::take(); + let system = SystemControl::new(peripherals.SYSTEM); + let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); + + // Configura os pinos de E/S + let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); + let mut led = Output::new(io.pins.gpio2, Level::Low); + + let delay = Delay::new(&clocks); + + println!("🦀 Firmware Rust Bare-Metal inicializado no ESP32!"); + + let mut counter: u32 = 0; + + loop { + // Inverte estado do LED com garantia de exclusão mútua + led.toggle(); + counter += 1; + + println!("Ciclo Rust #{}: LED está {:?}", counter, led.is_set_high()); + delay.delay_millis(500); + } +}