72 lines
2.7 KiB
Markdown
72 lines
2.7 KiB
Markdown
# ESP32 硬件约束与踩坑
|
||
|
||
> **芯片:esp32** | **类别:constraints** | **信源:** [Espressif 官方文档](https://docs.espressif.com)
|
||
|
||
## 1. ADC2 与 WiFi 冲突 ⚠️ 最常踩的坑
|
||
|
||
- **使用 WiFi 时 ADC2 完全不可用**(ADC2 模块与 WiFi 射频共享内部资源)
|
||
- 解决:需要 WiFi + ADC → 只能用 **ADC1**(GPIO32–39)
|
||
- 不使用 WiFi 时 ADC2 正常可用
|
||
- 即使 WiFi 短暂关闭也无法可靠复用 ADC2(需完全禁用 WiFi 驱动)
|
||
|
||
## 2. GPIO12 (MTDI) — Flash 电压陷阱 ⚠️ 最危险的坑
|
||
|
||
- GPIO12=LOW(默认):VDD_SDIO=3.3V → Flash 正常 ✅
|
||
- GPIO12=HIGH:VDD_SDIO=1.8V → Flash 无法读取 → **变砖** ❌
|
||
|
||
- **绝对不能在 GPIO12 上接上拉电阻到 3.3V**
|
||
- **不能用 GPIO12 做 I2C SDA**(开漏+上拉会让 GPIO12 变高)
|
||
- 如果必须用 GPIO12,用外部 **下拉** 电阻
|
||
|
||
## 3. 仅输入引脚限制
|
||
|
||
- **GPIO34–39**: **无内部上拉/下拉**,外部必须自行加
|
||
- **GPIO34–39**: **不能做数字输出**
|
||
- **GPIO34–39**: 不能做 I2C/SPI MOSI/UART TX/PWM 输出
|
||
|
||
## 4. Flash/PSRAM 引脚占用
|
||
|
||
- **GPIO6–11**: 内部 Flash SPI(所有模组)
|
||
- **GPIO16–17**: 内部 PSRAM(WROVER 模组)
|
||
|
||
## 5. 供电约束
|
||
|
||
- **工作电压**: 2.7–3.6V,推荐 **3.3V ±5%**
|
||
- **WiFi TX 峰值电流**: ~500 mA
|
||
- **供电纹波**: < **75 mVpp**
|
||
- **EN 引脚**: 不能浮空,需上拉到 VDD3P3_RTC
|
||
- **推荐 LDO**: ≥500 mA 输出能力
|
||
|
||
## 6. JTAG 引脚冲突
|
||
|
||
- GPIO12 — MTDI, ⚡ Strapping(Flash 电压选择)
|
||
- GPIO13 — MTCK, 无冲突
|
||
- GPIO14 — MTMS, 无冲突
|
||
- GPIO15 — MTDO, ⚡ Strapping
|
||
|
||
## 7. 外部晶振
|
||
|
||
- 外部高速晶振:**40 MHz**(必须)
|
||
- 外部 RTC 晶振:**32.768 kHz**(可选,用于 Deep-sleep 精确计时)
|
||
|
||
## 8. 常见踩坑速查
|
||
|
||
- **用 GPIO12 做输出,板子不启动**: GPIO12 被外部上拉 → Flash 1.8V
|
||
→ 避免在 GPIO12 上加外部上拉
|
||
- **ADC 读数全是噪音**: 用了 ADC2 且 WiFi 开着
|
||
→ 切换到 ADC1(GPIO32–39)
|
||
- **GPIO34–39 输出不工作**: 它们是仅输入引脚
|
||
→ 换个能做输出的 GPIO
|
||
- **上电后直接进下载模式**: GPIO0 被外部拉低
|
||
→ 检查 GPIO0 电路
|
||
- **Deep-sleep 后 RTC 内存丢了**: RTC Slow 内存只有 8KB 且需特殊 API
|
||
→ 使用 `RTC_DATA_ATTR` 属性
|
||
|
||
## 上电时序要求
|
||
|
||
- t_STBL:**>= 50 µs** — VDD 电源轨稳定后到 EN (CHIP_PU) 拉高之间的最短等待时间
|
||
- t_RST:**>= 50 µs** — EN 拉低以触发硬件复位的最短保持时间
|
||
- t_H:**>= 3 ms** — EN 拉高后 Strapping 引脚值被内部锁存的时间,此后 Strapping 引脚恢复普通 GPIO 功能
|
||
|
||
> CHIP_PU (EN) 引脚**绝对不能浮空**。推荐电路:EN 通过 10kΩ 上拉到 VDD,对地接 1µF 电容做消抖和上电延迟。
|