Initial commit: knowledge base

This commit is contained in:
2026-08-05 17:12:34 +08:00
commit bfabe83832
21 changed files with 1720 additions and 0 deletions
+138
View File
@@ -0,0 +1,138 @@
# ESP32 GPIO 引脚映射
> **芯片:esp32** | **类别:gpio** | **信源:** [Espressif 官方文档](https://docs.espressif.com)
## 系统引脚(System Pins
**EN (CHIP_PU)** [I, Pin 9 QFN48]
: 芯片使能。高电平=正常工作,低电平=芯片关闭(最小功耗)。
: **禁止浮空!** 必须外部上拉到 VDD(典型 10kΩ)。
: 上电时序:VDD 稳定 >=50µs (t_STBL) 后 EN 拉高;EN 拉低 >=50µs (t_RST) 触发复位。
**VDD** [P]
: 芯片主供电 3.0-3.6V,推荐 3.3V,需 >=500mA。
: VDD3P3_RTCRTC域)/ VDD3P3_CPUCPU IO域)/ VDD_SDIOFlash供电,1.8V或3.3V由GPIO12选择)。
**GND** [P]
: 所有 GND 焊盘必须全部连接到电源地平面。QFN48 底部 EPAD 也接 GND。
**XTAL_P / XTAL_N** [-]
: 40 MHz 外部高速晶振,XTAL_P=Pin45, XTAL_N=Pin46。**不可复用为 GPIO。**
: 晶振两端对地各接负载电容(典型 15-22pF)。
**LNA_IN** [I, Pin2]
: 射频天线输入端口。**不可复用为 GPIO。**
**XTAL_32K_P / XTAL_32K_N** [I/O]
: 32.768 kHz RTC 晶振(可选),XTAL_32K_P=GPIO32, XTAL_32K_N=GPIO33。
: 不使用 RTC 晶振时可做普通 GPIO。
> ESP32 无原生 USB,烧录通过 UART0 (GPIO1=TX, GPIO3=RX)。芯片版本 v3.0/v3.1 为当前量产版本。
## 仅输入引脚(GPI
- **GPIO34**:说明=仅输入,无内部上拉/下拉
- **GPIO35**:说明=仅输入,无内部上拉/下拉
- **GPIO36** (SENSOR_VP):说明=仅输入,无内部上拉/下拉
- **GPIO39** (SENSOR_VN):说明=仅输入,无内部上拉/下拉
> GPIO37(SENSOR_CAPP) 和 GPIO38(SENSOR_CAPN) 也是仅输入,但 WROOM-32 模组未引出。
## Flash/PSRAM 占用引脚(不可复用)
- **GPIO6**:功能=SD_CLK / SPICLK, 说明=连接内部 Flash
- **GPIO7**:功能=SD_DATA0 / SPIQ, 说明=连接内部 Flash
- **GPIO8**:功能=SD_DATA1 / SPID, 说明=连接内部 Flash
- **GPIO9**:功能=SD_DATA2 / SPIHD, 说明=连接内部 Flash
- **GPIO10**:功能=SD_DATA3 / SPIWP, 说明=连接内部 Flash
- **GPIO11**:功能=SD_CMD / SPICS0, 说明=连接内部 Flash
- **GPIO16**:功能=SPICS1 / PSRAM_CS, 说明=PSRAM 片选(WROVER
- **GPIO17**:功能=SPID / PSRAM_DATA, 说明=PSRAM 数据(WROVER
## Strapping 引脚
- **GPIO0**:引脚名=Boot, 上电默认=Pull-Up (1), 功能=LOW=下载模式, HIGH=正常启动, 使用限制=不能在上电时被外部拉低
- **GPIO2**:引脚名=Boot, 上电默认=Pull-Down (0), 功能=与 GPIO0 联合决定启动模式, 使用限制=上电时需浮空或低
- **GPIO5**:引脚名=SDIO Slave, 上电默认=Pull-Up (1), 功能=SDIO 从机时序控制, 使用限制=上电时必须保持高
- **GPIO12 (MTDI)**:引脚名=VDD_SDIO, 上电默认=Pull-Down (0), 功能=0=3.3V, 1=1.8V Flash电压, 使用限制=**禁止上拉!会烧Flash!**
- **GPIO15 (MTDO)**:引脚名=Boot, 上电默认=Pull-Up (1), 功能=0=静默启动, 1=U0TXD打印日志, 使用限制=上电时需为高
### 启动模式
- SPI Boot(正常启动):GPIO0=1, GPIO2=任意
- Download Boot(烧录):GPIO0=0, GPIO2=0
## ADC 完整映射
### ADC1WiFi 可用,8通道)
- ADC1_CH0GPIO=GPIO36 (SENSOR_VP), 类型=仅输入
- ADC1_CH1GPIO=GPIO37, 类型=仅输入(WROOM 未引出)
- ADC1_CH2GPIO=GPIO38, 类型=仅输入(WROOM 未引出)
- ADC1_CH3GPIO=GPIO39 (SENSOR_VN), 类型=仅输入
- ADC1_CH4GPIO=GPIO32, 类型=I/O
- ADC1_CH5GPIO=GPIO33, 类型=I/O
- ADC1_CH6GPIO=GPIO34, 类型=仅输入
- ADC1_CH7GPIO=GPIO35, 类型=仅输入
### ADC2WiFi 不可用,10通道)
- ADC2_CH0GPIO=GPIO4
- ADC2_CH1GPIO=GPIO0, 备注=⚡ Strapping
- ADC2_CH2GPIO=GPIO2, 备注=⚡ Strapping
- ADC2_CH3GPIO=GPIO15, 备注=⚡ Strapping (MTDO)
- ADC2_CH4GPIO=GPIO13, 备注=JTAG
- ADC2_CH5GPIO=GPIO12, 备注=⚡ Strapping (MTDI) + JTAG
- ADC2_CH6GPIO=GPIO14, 备注=JTAG
- ADC2_CH7GPIO=GPIO27
- ADC2_CH8GPIO=GPIO25, 备注=DAC_CH1
- ADC2_CH9GPIO=GPIO26, 备注=DAC_CH2
> ⚠️ **ADC2 与 WiFi 冲突:使用 WiFi 时 ADC2 完全不可用,只能用 ADC1**
## DAC
- DAC_CH1GPIO=GPIO25, 分辨率=8-bit
- DAC_CH2GPIO=GPIO26, 分辨率=8-bit
## 完整 GPIO 功能表
- 0I/O=I/O, ADC=ADC2_CH1, Touch=Touch1, RTC=RTC_GPIO11, 备注=⚡ Strapping
- 1I/O=I/O, 备注=U0TXD(默认)
- 2I/O=I/O, ADC=ADC2_CH2, Touch=Touch2, RTC=RTC_GPIO12, 备注=⚡ Strapping
- 3I/O=I/O, 备注=U0RXD(默认)
- 4I/O=I/O, ADC=ADC2_CH0, Touch=Touch0, RTC=RTC_GPIO10, 备注=常用 1-Wire
- 5I/O=I/O, 备注=⚡ Strapping
- 611:备注=🔒 Flash 占用
- 12I/O=I/O, ADC=ADC2_CH5, Touch=Touch5, RTC=RTC_GPIO15, 备注=⚡ **禁止上拉**
- 13I/O=I/O, ADC=ADC2_CH4, Touch=Touch4, RTC=RTC_GPIO14, 备注=JTAG MTCK
- 14I/O=I/O, ADC=ADC2_CH6, Touch=Touch6, RTC=RTC_GPIO16, 备注=JTAG MTMS
- 15I/O=I/O, ADC=ADC2_CH3, Touch=Touch3, RTC=RTC_GPIO13, 备注=⚡ Strapping
- 16I/O=I/O, 备注=🔒 PSRAMWROVER
- 17I/O=I/O, 备注=🔒 PSRAMWROVER
- 18I/O=I/O, 备注=VSPI CLK
- 19I/O=I/O, 备注=VSPI MISO
- 21I/O=I/O, 备注=I2C SDA 默认
- 22I/O=I/O, 备注=I2C SCL 默认
- 23I/O=I/O, 备注=VSPI MOSI
- 25I/O=I/O, ADC=ADC2_CH8, DAC=DAC1, RTC=RTC_GPIO6
- 26I/O=I/O, ADC=ADC2_CH9, DAC=DAC2, RTC=RTC_GPIO7
- 27I/O=I/O, ADC=ADC2_CH7, Touch=Touch7, RTC=RTC_GPIO17
- 32I/O=I/O, ADC=ADC1_CH4, Touch=Touch9, RTC=RTC_GPIO9, 备注=32K_XP, ADC1
- 33I/O=I/O, ADC=ADC1_CH5, Touch=Touch8, RTC=RTC_GPIO8, 备注=32K_XN, ADC1
- 34I/O=**仅输入**, ADC=ADC1_CH6, RTC=RTC_GPIO4, 备注=无内部上下拉
- 35I/O=**仅输入**, ADC=ADC1_CH7, RTC=RTC_GPIO5, 备注=无内部上下拉
- 36I/O=**仅输入**, ADC=ADC1_CH0, RTC=RTC_GPIO0, 备注=SENSOR_VP
- 39I/O=**仅输入**, ADC=ADC1_CH3, RTC=RTC_GPIO3, 备注=SENSOR_VN
> ⚡ = Strapping | 🔒 = Flash/PSRAM | **仅输入** = 不能做输出
## 常用外设默认引脚
- UART0 TX/RX:默认引脚=GPIO1 / GPIO3
- VSPI CLK/MISO/MOSI/CS:默认引脚=GPIO18 / GPIO19 / GPIO23 / GPIO5
- HSPI CLK/MISO/MOSI/CS:默认引脚=GPIO14 / GPIO12 / GPIO13 / GPIO15
- I2C0 SDA/SCL:默认引脚=GPIO21 / GPIO22
- JTAG TMS/TCK/TDI/TDO:默认引脚=GPIO14 / GPIO13 / GPIO12 / GPIO15
## 新手安全 GPIO
> **GPIO4, 13, 14, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33**