Initial: knowledge base

This commit is contained in:
2026-08-05 17:25:09 +08:00
parent bfabe83832
commit 5700eb4115
35 changed files with 5140 additions and 11 deletions
+71
View File
@@ -0,0 +1,71 @@
# ESP32 硬件约束与踩坑
> **芯片:esp32** | **类别:constraints** | **信源:** [Espressif 官方文档](https://docs.espressif.com)
## 1. ADC2 与 WiFi 冲突 ⚠️ 最常踩的坑
- **使用 WiFi 时 ADC2 完全不可用**ADC2 模块与 WiFi 射频共享内部资源)
- 解决:需要 WiFi + ADC → 只能用 **ADC1**GPIO3239
- 不使用 WiFi 时 ADC2 正常可用
- 即使 WiFi 短暂关闭也无法可靠复用 ADC2(需完全禁用 WiFi 驱动)
## 2. GPIO12 (MTDI) — Flash 电压陷阱 ⚠️ 最危险的坑
- GPIO12=LOW(默认):VDD_SDIO=3.3V → Flash 正常 ✅
- GPIO12=HIGHVDD_SDIO=1.8V → Flash 无法读取 → **变砖**
- **绝对不能在 GPIO12 上接上拉电阻到 3.3V**
- **不能用 GPIO12 做 I2C SDA**(开漏+上拉会让 GPIO12 变高)
- 如果必须用 GPIO12,用外部 **下拉** 电阻
## 3. 仅输入引脚限制
- **GPIO3439**: **无内部上拉/下拉**,外部必须自行加
- **GPIO3439**: **不能做数字输出**
- **GPIO3439**: 不能做 I2C/SPI MOSI/UART TX/PWM 输出
## 4. Flash/PSRAM 引脚占用
- **GPIO611**: 内部 Flash SPI(所有模组)
- **GPIO1617**: 内部 PSRAMWROVER 模组)
## 5. 供电约束
- **工作电压**: 2.73.6V,推荐 **3.3V ±5%**
- **WiFi TX 峰值电流**: ~500 mA
- **供电纹波**: < **75 mVpp**
- **EN 引脚**: 不能浮空,需上拉到 VDD3P3_RTC
- **推荐 LDO**: ≥500 mA 输出能力
## 6. JTAG 引脚冲突
- GPIO12 — MTDI, ⚡ StrappingFlash 电压选择)
- 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 开着
→ 切换到 ADC1GPIO3239
- **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 电容做消抖和上电延迟。