跳到主要内容

ESP32-C3 外设映射

本文说明 ESP32-C3(单核 RISC-V,成本优化)片上外设与 TuyaOpen TKL 层软件端口的映射关系。

GPIO

  • 所有 GPIO 引脚均支持中断。
  • TUYA_GPIO_NUM_E 枚举值与物理 GPIO 编号直接 1:1 对应。
  • 共 22 个 GPIO(GPIO0 ~ GPIO21),是 ESP32 系列中 GPIO 最少的型号,请提前规划引脚分配。
GPIO 范围TUYA_GPIO_NUM 范围说明
GPIO0 ~ GPIO21TUYA_GPIO_NUM_0 ~ TUYA_GPIO_NUM_21通用 IO,全部可用

UART

  • 支持 2 路串口。
  • UART0 的 TX / RX 引脚通过 Kconfig 选项 UART_NUM0_TX_PIN / UART_NUM0_RX_PIN 配置,默认为 GPIO21 / GPIO20。
  • UART1 无专用 IO_MUX 引脚,走 GPIO Matrix,默认引脚可在初始化前通过 tkl_io_pinmux_config() 修改。
修改 UART0 引脚

在项目目录下运行 tos.py config menu 进入板子配置子界面,找到对应选项并输入目标 GPIO 编号,或直接编辑 boards/ESP32/ESP32-C3/Kconfig 中的 default 值,重新构建后生效。

Board PinFunctionSoftware PinSoftware Port
GPIO21(默认)UART0_TXTUYA_GPIO_NUM_21TUYA_UART_NUM_0
GPIO20(默认)UART0_RXTUYA_GPIO_NUM_20TUYA_UART_NUM_0
GPIO17(默认)UART1_TXTUYA_GPIO_NUM_17TUYA_UART_NUM_1
GPIO18(默认)UART1_RXTUYA_GPIO_NUM_18TUYA_UART_NUM_1

I2C

  • 支持 1 路硬件 I2C(TUYA_I2C_NUM_0)。
  • 默认引脚可在外设初始化前通过 tkl_io_pinmux_config() 修改。
Board Pin(默认)FunctionSoftware PinSoftware Port
GPIO0I2C0_SCLTUYA_IIC0_SCLTUYA_I2C_NUM_0
GPIO1I2C0_SDATUYA_IIC0_SDATUYA_I2C_NUM_0

PWM

  • 支持 6 路 PWM,使用 ESP-IDF LEDC 驱动(LEDC_LOW_SPEED_MODE,12 位分辨率)。
  • 默认引脚可在外设初始化前通过 tkl_io_pinmux_config() 修改。
Board Pin(默认)FunctionSoftware PinSoftware Port
GPIO18PWM0TUYA_PWM0TUYA_PWM_NUM_0
GPIO19PWM1TUYA_PWM1TUYA_PWM_NUM_1
GPIO3PWM2TUYA_PWM2TUYA_PWM_NUM_2
GPIO4PWM3TUYA_PWM3TUYA_PWM_NUM_3
GPIO5PWM4TUYA_PWM4TUYA_PWM_NUM_4
GPIO6PWM5TUYA_PWM5TUYA_PWM_NUM_5

ADC

  • 仅支持 ADC1(TUYA_ADC_NUM_0),共 6 个通道。
  • 通道通过位掩码(ch_list.data)配置,bit N 对应 ADC_CHANNEL_N
  • 衰减固定为 ADC_ATTEN_DB_12(量程约 0–3.3 V),校准采用 Curve-fitting 方案。
Board PinADC ChannelSoftware Port
GPIO0ADC1_CH0TUYA_ADC_NUM_0
GPIO1ADC1_CH1TUYA_ADC_NUM_0
GPIO2ADC1_CH2TUYA_ADC_NUM_0
GPIO3ADC1_CH3TUYA_ADC_NUM_0
GPIO4ADC1_CH4TUYA_ADC_NUM_0
GPIO5ADC1_CH5TUYA_ADC_NUM_0

参考资料