目标板: RM01_ESP32S3
芯片: ESP32-S3
最后更新: 2026-01-31
验证状态: ✅ 已与 PCB 图纸及实际硬件测试核对
| GPIO | 功能 | 方向 | 电平逻辑 | 初始状态 | 备注 |
|---|---|---|---|---|---|
| 0 | (保留) | - | - | - | Strapping pin |
| 1 | AGX_POWER_CTRL | OUT | LOW=通电, HIGH=断电 | LOW | 主电源控制引脚 |
| 2 | LPMU_RESET | OUT | HIGH=复位 | LOW | 脉冲 300ms |
| 3 | AGX_FORCE_SHUTDOWN | OUT | HIGH=强制关机 | LOW | |
| 4 | SD_D0 | IO | - | - | SDMMC |
| 5 | SD_D1 | IO | - | - | SDMMC |
| 6 | SD_D2 | IO | - | - | SDMMC |
| 7 | SD_D3 | IO | - | - | SDMMC |
| 8 | USB_MUX_0 | OUT | - | - | ESP32_MUX0_SEL |
| 9 | LED_MATRIX | OUT | WS2812 | - | 32x32 (1024颗) |
| 10 | ETH_CS | OUT | LOW=选中 | HIGH | W5500 SPI |
| 11 | ETH_MOSI | OUT | - | - | W5500 SPI |
| 12 | ETH_SCLK | OUT | - | - | W5500 SPI |
| 13 | ETH_MISO | IN | - | - | W5500 SPI |
| 14 | (空闲) | - | - | - | - |
| 15 | SD_CMD | IO | - | - | SDMMC |
| 16 | SD_CLK | OUT | - | - | 40MHz |
| 17 | RTL8367_RST | OUT | HIGH=复位 | LOW | 网络交换机 |
| 18 | POWER_ADC | IN | ADC2_CH7 | - | 分压 11.4:1 |
| 19-37 | (空闲/内部) | - | - | - | - |
| 38 | ETH_INT | IN | - | - | W5500 中断 |
| 39 | ETH_RST | OUT | LOW=复位 | HIGH | W5500 复位 |
| 40 | AGX_RECOVERY | OUT | HIGH=恢复模式 | LOW | - |
| 41 | FAN_PWM_0 | OUT | PWM | - | 25kHz, 唯一风扇 |
| 42 | LED_BOARD | OUT | WS2812 | - | 28颗状态灯 |
| 43 | UART0_TX | OUT | - | - | USB 串口 |
| 44 | UART0_RX | IN | - | - | USB 串口 |
| 45 | LED_TOUCH | OUT | WS2812 | - | 1颗, Strapping |
| 46 | LPMU_POWER | OUT | HIGH=电源键 | LOW | 脉冲 300ms, Strapping |
| 47 | POWER_UART_RX | IN | UART1_RX | - | 9600 8N1 |
| 48 | USB_MUX_1 | OUT | - | - | ESP32_MUX1_SEL |
| GPIO | 功能 | 电平逻辑 | 时序 |
|---|---|---|---|
| 1 | AGX_POWER_CTRL | LOW=通电, HIGH=断电 | 主电源控制 |
| 2 | LPMU_RESET | HIGH=复位, LOW=正常 | 脉冲 300ms |
| 3 | AGX_FORCE_SHUTDOWN | HIGH=强制关机 | |
| 40 | AGX_RECOVERY | HIGH=恢复模式, LOW=正常 | 持续 HIGH |
| 46 | LPMU_POWER | HIGH=按下电源键 | 脉冲 300ms |
GPIO 1 是唯一应该使用的电源控制引脚:
| 操作 | GPIO 1 电平 | 说明 |
|---|---|---|
| 开机 | 持续 LOW | 接通电源 |
| 关机 | 持续 HIGH | 断开电源 |
| 重启 | LOW→HIGH→LOW | 断电后重新通电 |
GPIO 3 (FORCE_SHUTDOWN) 危险警告:
- 操作 GPIO 3 会导致 AGX 强制关机
- 除非物理断电,否则无法恢复开机
- 正常电源控制禁止操作 GPIO 3
// ✅ 正确:使用 GPIO 1 控制电源
gpio_set_level(1, 0); // LOW = 通电(开机)
gpio_set_level(1, 1); // HIGH = 断电(关机)
// 重启序列
gpio_set_level(1, 0); // 确保通电
vTaskDelay(pdMS_TO_TICKS(50));
gpio_set_level(1, 1); // 断电
vTaskDelay(pdMS_TO_TICKS(500));
gpio_set_level(1, 0); // 恢复通电
// ❌ 错误:不要操作 GPIO 3
// gpio_set_level(3, 1); // 强制关机,无法恢复!不同 NVIDIA 模组的电源控制行为存在差异:
| 模组 | GPIO3 (FORCE_SHUTDOWN) | GPIO1 (RESET) | 电源控制方式 |
|---|---|---|---|
| T234 (AGX Orin) | ✅ 有效:HIGH=关机, LOW=开机 | 脉冲复位 | GPIO3 控制开关机 |
| T5000/T4000 (NX Orin) | 持续 HIGH=断电 | GPIO1 控制供电 |
T234 模组(AGX Orin 系列):
- GPIO3 支持软件电源控制(HIGH=强制关机)
- GPIO1 用于复位(脉冲 HIGH 后恢复 LOW)
T5000/T4000 模组(NX Orin 系列):
- GPIO3 必须始终保持 LOW,否则无法开机
- GPIO1 持续 HIGH = 断电(实现关机效果)
- 通过 GPIO1 持续拉高来切断模组供电
操作示例:
// ========== T234 模组 (AGX Orin) ==========
// AGX 软件关机(GPIO3 控制)
gpio_set_level(3, 1); // HIGH = force off
// 等待关机完成...
gpio_set_level(3, 0); // LOW = allow boot (下次开机)
// AGX 复位(脉冲)
gpio_set_level(1, 1); // HIGH = reset
vTaskDelay(pdMS_TO_TICKS(1000));
gpio_set_level(1, 0); // LOW = normal
// ========== T5000/T4000 模组 (NX Orin) ==========
// ⚠️ GPIO3 不要动!必须保持 LOW
// gpio_set_level(3, 0); // 始终保持 LOW
// NX 断电关机(GPIO1 持续拉高)
gpio_set_level(1, 1); // HIGH = 切断供电(关机)
// 保持 HIGH 状态...
// NX 上电开机(GPIO1 拉低)
gpio_set_level(1, 0); // LOW = 恢复供电(开机)注意: 当前代码默认使用 T234 逻辑。对于 T5000/T4000 模组,后续将通过配置文件或 menuconfig 选择模组类型。
| GPIO | 功能 | 说明 |
|---|---|---|
| 4 | SD_D0 | 数据线 0 |
| 5 | SD_D1 | 数据线 1 |
| 6 | SD_D2 | 数据线 2 |
| 7 | SD_D3 | 数据线 3 |
| 15 | SD_CMD | 命令线 |
| 16 | SD_CLK | 时钟 (40MHz) |
配置 (sdkconfig.defaults):
CONFIG_TS_STORAGE_SD_CMD_GPIO=15
CONFIG_TS_STORAGE_SD_CLK_GPIO=16
CONFIG_TS_STORAGE_SD_D0_GPIO=4
CONFIG_TS_STORAGE_SD_D1_GPIO=5
CONFIG_TS_STORAGE_SD_D2_GPIO=6
CONFIG_TS_STORAGE_SD_D3_GPIO=7
| GPIO | 功能 | 说明 |
|---|---|---|
| 8 | USB_MUX_0 | ESP32_MUX0_SEL |
| 48 | USB_MUX_1 | ESP32_MUX1_SEL |
| GPIO | 功能 | 数量 | 用途 |
|---|---|---|---|
| 9 | LED_MATRIX | 1024颗 (32x32) | 主显示屏 |
| 42 | LED_BOARD | 28颗 | 状态指示灯条 |
| 45 | LED_TOUCH | 1颗 | 触摸指示灯 |
总计: 1053 颗 WS2812 LED
| GPIO | 功能 | 方向 | 说明 |
|---|---|---|---|
| 10 | ETH_CS | OUT | 片选 (LOW=选中) |
| 11 | ETH_MOSI | OUT | 主出从入 |
| 12 | ETH_SCLK | OUT | 时钟 |
| 13 | ETH_MISO | IN | 主入从出 |
| 38 | ETH_INT | IN | 中断信号 |
| 39 | ETH_RST | OUT | 复位 (LOW=复位, HIGH=正常) |
SPI 配置: SPI2_HOST, 25MHz
| GPIO | 功能 | 电平逻辑 |
|---|---|---|
| 17 | RTL8367_RST | HIGH=复位, LOW=正常 |
| GPIO | 功能 | 参数 |
|---|---|---|
| 41 | FAN_PWM_0 | 25kHz, 10-bit 分辨率 |
注意: 板上只有一个风扇,无 FAN_PWM_1
| GPIO | 功能 | 协议/参数 |
|---|---|---|
| 18 | POWER_ADC | ADC2_CH7, 分压比 11.4:1, 最高 72V |
| 47 | POWER_UART_RX | UART1_RX, 9600 8N1 |
电源芯片数据格式:
[0xFF][电压][电流][CRC] (4字节)
以下 GPIO 在启动时有特殊用途,需注意初始状态:
| GPIO | 功能 | 启动影响 | 使用建议 |
|---|---|---|---|
| 0 | Boot mode | 下拉=下载模式 | 避免使用 |
| 3 | AGX_FORCE_SHUTDOWN | - | 初始 LOW |
| 45 | LED_TOUCH | VDD_SPI | 初始不驱动 |
| 46 | LPMU_POWER | Boot mode | 初始 LOW |
| 文件 | 用途 |
|---|---|
boards/rm01_esp32s3/pins.json |
引脚定义 (JSON) |
boards/rm01_esp32s3/devices.json |
设备配置 |
components/ts_hal/include/ts_pin_manager.h |
引脚函数枚举 |
components/ts_hal/src/ts_pin_manager.c |
默认映射代码 |
sdkconfig.defaults |
SD 卡 GPIO 配置 |
| 日期 | 变更内容 |
|---|---|
| 2026-01-31 | 重大更新:AGX 电源控制改用 GPIO 1,GPIO 3 标记为禁止使用 |
| 2026-01-20 | 添加 T234 vs T5000/T4000 模组电源控制差异说明 |
| 2026-01-19 | 初始版本,与 PCB 图纸及 robOS 核对完成 |
| 2026-01-19 | 修正 SD 卡引脚 (4,5,6,7,15,16) |
| 2026-01-19 | 移除不存在的 FAN_PWM_1 (GPIO 40) |
| 2026-01-19 | 添加 RTL8367_RST (GPIO 17) |
| 2026-01-19 | 添加 POWER_ADC (GPIO 18) 和 POWER_UART_RX (GPIO 47) |