Initial: knowledge base
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# 电容选型与保护电路踩坑
|
||||
|
||||
> **类别:trap** | **芯片:cross-platform** | **主题:电容选型与保护电路踩坑 (MLCC偏压降容 / TVS钳位)**
|
||||
>
|
||||
> 代价:偏压降容导致实际电容远低于标称值,ADC纹波偏大;保护电路"超标"却无需修改
|
||||
|
||||
## 坑1:MLCC偏压降容——标称≠实际(2026-07-26)
|
||||
|
||||
### 案例:电子宠物V1.0 C24
|
||||
|
||||
- 位号:原选型=C24(IP5306充电模块外围), 终审升级=C24
|
||||
- 标称值:原选型=22µF 10V 0603 C59461, 终审升级=22µF 16V 0805 C45783
|
||||
- 问题:原选型=10V额定在5V工作点偏压降容严重,实际容量可能只剩标称的40-60%, 终审升级=16V额定在5V工作点偏压影响小,0805封装同容量偏压特性更优
|
||||
|
||||
### 核心规则
|
||||
|
||||
1. **额定电压留2倍余量** — 5V工作点选10V额定已经偏紧,选16V才稳。MLCC的DC偏压曲线是非线性的,工作电压越接近额定电压,容量掉得越狠
|
||||
2. **同容量大封装偏压特性更好** — 0805的22µF比0603的22µF在相同偏压下实际容量更高,因为大封装介质层更厚更稳定
|
||||
3. **充电IC外围电容尤其敏感** — IP5306等充电芯片的外围电容直接影响充电稳定性和纹波,偏压降容会导致充电异常
|
||||
|
||||
### 选型速查
|
||||
|
||||
- 3.3V:最低额定=6.3V, 推荐额定=10V, 推荐封装=0402/0603
|
||||
- 5V:最低额定=10V, 推荐额定=16V, 推荐封装=0603/0805
|
||||
- 12V:最低额定=25V, 推荐额定=25V/35V, 推荐封装=0805/1206
|
||||
|
||||
> 偏压降容是MLCC的物理特性,不是质量问题。选型时直接按推荐额定选,省得终审再改。
|
||||
|
||||
## 坑2:VDDA bulk电容不足——1µF兜不住ADC纹波(2026-07-26)
|
||||
|
||||
### 案例:电子宠物V1.0 C2
|
||||
|
||||
- 位号:原选型=C2(ESP32-S3 VDDA去耦), 终审升级=C2
|
||||
- 标称值:原选型=1µF 0402 C52923, 终审升级=10µF 0402 C96446
|
||||
- 问题:原选型=VDDA路径仅1µF bulk+0.1µF去耦,ADC采样纹波偏大, 终审升级=10µF bulk大幅改善纹波,0402封装不变不占额外面积
|
||||
|
||||
### 核心规则
|
||||
|
||||
1. **VDDA路径需要比VDD更多的bulk电容** — 模拟电源对纹波更敏感,1µF bulk在ADC高频采样时不够用
|
||||
2. **先看封装再定容量** — 0402已经能做到10µF(C96446),不需要为增容换大封装
|
||||
3. **C4保留1µF不跟着升** — C4是VDD普通去耦,不是VDDA路径,需求不同不能一刀切
|
||||
|
||||
### ESP32-S3 VDDA去耦推荐
|
||||
|
||||
```
|
||||
VDDA ─── 10µF 0402 (C96446, bulk) ─── 0.1µF 0402 (高频去耦) ─── GND
|
||||
```
|
||||
|
||||
> VDDA bulk升10µF是ESP32-S3做ADC采集的基本操作,1µF是底线不是推荐值。
|
||||
|
||||
## 坑3:TVS钳位电压"超标"≠必须修改(2026-07-26)
|
||||
|
||||
### 案例:电子宠物V1.0 D3 TVS
|
||||
|
||||
- TVS钳位电压:数值=9.2V, 说明=5V单极性TVS在大电流下的物理极限
|
||||
- IP5306 Abs.Max:数值=5.8V, 说明=芯片绝对最大耐压
|
||||
- 看起来:数值=超标!, 说明=但实际…
|
||||
|
||||
### 结论:接受,不改
|
||||
|
||||
1. **浪涌是瞬态的,不是持续过压** — TVS钳位9.2V只发生在ESD/浪涌的微秒级瞬态,不是持续9.2V加在IP5306上
|
||||
2. **5V单极性TVS的物理限制** — 这是该类型TVS的固有特性,除非换更贵的双向TVS或更低钳位电压方案,否则无解
|
||||
3. **芯片Abs.Max不等于瞬态容忍上限** — Abs.Max是持续工作极限,瞬态过冲芯片有设计余量承受
|
||||
4. **成本效益比** — 为这个加成本换方案不值得,三审均认可接受
|
||||
|
||||
### 判断框架
|
||||
|
||||
```
|
||||
TVS钳位 > 芯片Abs.Max?
|
||||
├─ 是 → 持续过压?→ 必须改
|
||||
├─ 是 → 瞬态浪涌?→ 看幅度和持续时间
|
||||
│ ├─ 微秒级、幅度可控 → 通常可接受
|
||||
│ └─ 毫秒级或幅度过大 → 需换方案
|
||||
└─ 否 → 无问题
|
||||
```
|
||||
|
||||
> 不是所有"超标"都要改,分清瞬态和持续是关键。TVS的物理限制不是设计缺陷。
|
||||
|
||||
## 坑4:BOM同值元件升级后需拆分行(2026-07-26)
|
||||
|
||||
### 案例:C2和C4原来合并在BOM同一行
|
||||
|
||||
C2和C4原来都是1µF,BOM合并为一行。终审C2升级到10µF后,C4的1µF需要单独保留一行。
|
||||
|
||||
### 规则
|
||||
|
||||
- **BOM合并看值不看人** — 同值元件合并是压缩BOM的常用做法,但升级其中一个后必须拆回来
|
||||
- **改BOM时先扫关联** — 不是只改目标位号那一行,要检查是否有其他位号共享同一行
|
||||
|
||||
## 坑5:网表改了,拓扑和方案文档也得改(2026-07-26)
|
||||
|
||||
### 案例:C24/C2终审升级后的三方同步
|
||||
|
||||
网表里C24和C2改完了,但云端拓扑连接图和方案文档还是旧值,下载后不对齐。
|
||||
|
||||
### 同步清单
|
||||
|
||||
- 网表(EDA):需改内容=位号·封装·C编号
|
||||
- 拓扑连接图:需改内容=参数表+BOM表+注释
|
||||
- 方案文档:需改内容=关键约束条目+设计变更记录
|
||||
|
||||
### 规则
|
||||
|
||||
- **改网表=改三处** — 网表、拓扑、方案文档是三位一体,改一处必须改三处
|
||||
- **变更记录必填** — 每次终审优化/设计变更,在拓扑和方案的变更记录区新增条目,写清日期和内容
|
||||
- **下载前对齐** — 投板前最后一次检查:网表值=拓扑值=方案值,三方一致才下单
|
||||
|
||||
---
|
||||
*2026-07-26 | 电子宠物V1.0终审优化踩坑*
|
||||
@@ -0,0 +1,359 @@
|
||||
# Electrical Constraints Reference
|
||||
|
||||
> **类别:reference** | **主题:电气约束通用规范** | **信源:** 多平台汇总
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Platform Comparison Summary](#platform-comparison-summary)
|
||||
- [Raspberry Pi Electrical Details](#raspberry-pi-electrical-details)
|
||||
- [Voltage Levels](#voltage-levels)
|
||||
- [Current Limits](#current-limits)
|
||||
- [Power Rails](#power-rails)
|
||||
- [Internal Pull Resistors](#internal-pull-resistors)
|
||||
- [Safe Driving Patterns](#safe-driving-patterns)
|
||||
- [ESP32 Electrical Details](#esp32-electrical-details)
|
||||
- [Voltage Levels](#voltage-levels)
|
||||
- [Current Limits](#current-limits)
|
||||
- [Power Consumption](#power-consumption)
|
||||
- [Internal Pull Resistors](#internal-pull-resistors)
|
||||
- [Drive Strength Configuration](#drive-strength-configuration)
|
||||
- [Pull-up and Pull-down Resistors](#pull-up-and-pull-down-resistors)
|
||||
- [When Required](#when-required)
|
||||
- [Calculation Formula](#calculation-formula)
|
||||
- [Strength Guidelines](#strength-guidelines)
|
||||
- [Consequences of Wrong Value](#consequences-of-wrong-value)
|
||||
- [Level Shifting](#level-shifting)
|
||||
- [When Required](#when-required)
|
||||
- [Method 1: Voltage Divider (5V → 3.3V, Unidirectional)](#method-1-voltage-divider-5v--33v-unidirectional)
|
||||
- [Method 2: N-Channel MOSFET (Bidirectional)](#method-2-n-channel-mosfet-bidirectional)
|
||||
- [Method 3: Dedicated Level Shifter ICs](#method-3-dedicated-level-shifter-ics)
|
||||
- [Method 4: Direct Connection (3.3V → 5V Input)](#method-4-direct-connection-33v--5v-input)
|
||||
- [Common Mistakes and Warnings](#common-mistakes-and-warnings)
|
||||
- [NEVER Do This](#never-do-this)
|
||||
- [ALWAYS Do This](#always-do-this)
|
||||
- [Quick Reference Card](#quick-reference-card)
|
||||
- [Formulas](#formulas)
|
||||
- [Quick Values](#quick-values)
|
||||
- [Current Limits Summary](#current-limits-summary)
|
||||
- [Voltage Summary](#voltage-summary)
|
||||
- [Common Pin Restrictions](#common-pin-restrictions)
|
||||
|
||||
---
|
||||
|
||||
## Platform Comparison Summary
|
||||
|
||||
- Logic voltage:Raspberry Pi=3.3V, ESP32=3.3V
|
||||
- Max per-pin current:Raspberry Pi=16mA source/sink, ESP32=40mA max (20mA recommended)
|
||||
- Aggregate GPIO current:Raspberry Pi=**50mA total**, ESP32=~1200mA total (chip limit)
|
||||
- 5V tolerant:Raspberry Pi=**NO**, ESP32=**NO**
|
||||
- Internal pull-up:Raspberry Pi=~50kΩ, ESP32=~45kΩ typical
|
||||
- Internal pull-down:Raspberry Pi=~50kΩ, ESP32=~45kΩ typical
|
||||
- Drive strength:Raspberry Pi=Fixed, ESP32=Configurable (5-40mA)
|
||||
- Input threshold (VIH):Raspberry Pi=~1.8V, ESP32=~2.0V
|
||||
- Input threshold (VIL):Raspberry Pi=~0.8V, ESP32=~0.8V
|
||||
|
||||
---
|
||||
|
||||
## Raspberry Pi Electrical Details
|
||||
|
||||
### Voltage Levels
|
||||
|
||||
- **All GPIO pins operate at 3.3V ONLY**
|
||||
- **5V on any GPIO pin WILL PERMANENTLY DAMAGE the SoC**
|
||||
- No built-in overvoltage protection
|
||||
- No built-in ESD protection (handle with care)
|
||||
|
||||
### Current Limits
|
||||
|
||||
- Per-pin source:16mA, Consequence of Exceeding=Voltage droop, pin damage
|
||||
- Per-pin sink:16mA, Consequence of Exceeding=Voltage rise, pin damage
|
||||
- **Total GPIO**:**50mA**, Consequence of Exceeding=Instability, crashes, permanent damage
|
||||
|
||||
**Critical:** The 50mA limit is across ALL GPIO pins combined, not per-bank.
|
||||
|
||||
### Power Rails
|
||||
|
||||
- 3.3V:Source=Onboard regulator, Available Current=~50mA for peripherals, Notes=Shared with Pi's 3.3V needs
|
||||
- 5V:Source=USB/PSU direct, Available Current=1-2A minus Pi consumption, Notes=No regulation, direct pass-through
|
||||
- GND:Source=Common ground, Available Current=N/A, Notes=8 ground pins on header
|
||||
|
||||
### Internal Pull Resistors
|
||||
|
||||
- GPIO0-8:Default State=Pull-UP, Resistance=~50kΩ
|
||||
- GPIO9-27:Default State=Pull-DOWN, Resistance=~50kΩ
|
||||
|
||||
**Note:** Internal pulls are too weak for I2C (need 4.7kΩ external).
|
||||
|
||||
### Safe Driving Patterns
|
||||
|
||||
- Single LED:Method=330Ω-1kΩ series resistor, Notes=3-10mA safe
|
||||
- Multiple LEDs:Method=Transistor driver, Notes=If total >50mA
|
||||
- Relay:Method=Transistor/MOSFET + flyback diode, Notes=Never direct from GPIO
|
||||
- Motor:Method=Motor driver IC (L298N, DRV8833), Notes=Never direct from GPIO
|
||||
- Buzzer (passive):Method=Transistor driver, Notes=Inductive load
|
||||
- Buzzer (active):Method=Direct if <16mA, Notes=Check current draw
|
||||
|
||||
---
|
||||
|
||||
## ESP32 Electrical Details
|
||||
|
||||
### Voltage Levels
|
||||
|
||||
- **All GPIO pins operate at 3.3V ONLY**
|
||||
- **5V on any GPIO pin WILL DAMAGE the chip**
|
||||
- No built-in overvoltage protection
|
||||
- Some ESD protection but don't rely on it
|
||||
|
||||
### Current Limits
|
||||
|
||||
- Per-pin max:40mA, Notes=Absolute maximum
|
||||
- Per-pin recommended:20mA, Notes=For reliability/longevity
|
||||
- Total chip:~1200mA, Notes=Includes WiFi, BT, CPU
|
||||
|
||||
### Power Consumption
|
||||
|
||||
- Active + WiFi TX:Current Draw=80-240mA, Notes=Peaks during transmission
|
||||
- Active + WiFi idle:Current Draw=20-68mA, Notes=Connected but not transmitting
|
||||
- Active, no radio:Current Draw=20-68mA, Notes=CPU running
|
||||
- Modem sleep:Current Draw=3-20mA, Notes=WiFi paused, CPU active
|
||||
- Light sleep:Current Draw=0.8mA, Notes=CPU paused, RTC running
|
||||
- Deep sleep:Current Draw=10-150µA, Notes=Only RTC + ULP available
|
||||
|
||||
### Internal Pull Resistors
|
||||
|
||||
- Standard GPIO:Pull-up=Yes, Pull-down=Yes, Resistance=~45kΩ
|
||||
- GPIO34-39:Pull-up=**NO**, Pull-down=**NO**, Resistance=N/A (input-only)
|
||||
|
||||
**Note:** Internal pulls are too weak for I2C (need 4.7kΩ external).
|
||||
|
||||
### Drive Strength Configuration
|
||||
|
||||
- 5mA:Current=Weakest, Use Case=Low power, slow signals
|
||||
- 10mA:Current=Low, Use Case=General purpose
|
||||
- 20mA:Current=Default, Use Case=Most applications
|
||||
- 40mA:Current=Maximum, Use Case=Fast edges, heavy loads
|
||||
|
||||
Higher drive strength = faster edges but more EMI/noise.
|
||||
|
||||
---
|
||||
|
||||
## Pull-up and Pull-down Resistors
|
||||
|
||||
### When Required
|
||||
|
||||
- I2C bus (SDA):Pull Type=Pull-UP, Typical Value=**4.7kΩ**
|
||||
- I2C bus (SCL):Pull Type=Pull-UP, Typical Value=**4.7kΩ**
|
||||
- 1-Wire bus (DQ):Pull Type=Pull-UP, Typical Value=**4.7kΩ**
|
||||
- Button to GND:Pull Type=Pull-UP, Typical Value=10kΩ
|
||||
- Button to VCC:Pull Type=Pull-DOWN, Typical Value=10kΩ
|
||||
- SPI CS line:Pull Type=Pull-UP, Typical Value=10kΩ
|
||||
- Open-drain output:Pull Type=Pull-UP, Typical Value=1-10kΩ
|
||||
- UART RX (optional):Pull Type=Pull-UP, Typical Value=10kΩ (noise immunity)
|
||||
- Reset line:Pull Type=Pull-UP, Typical Value=10kΩ
|
||||
|
||||
### Calculation Formula
|
||||
|
||||
```
|
||||
R = (VCC - VOL) / IOL
|
||||
|
||||
Where:
|
||||
VCC = Supply voltage (3.3V)
|
||||
VOL = Output low voltage (~0.4V)
|
||||
IOL = Required sink current (3mA for I2C)
|
||||
|
||||
Example (I2C):
|
||||
R = (3.3V - 0.4V) / 3mA = 967Ω minimum
|
||||
Typical choice: 4.7kΩ (provides margin)
|
||||
```
|
||||
|
||||
### Strength Guidelines
|
||||
|
||||
- 1kΩ:Use Case=Long wires, high capacitance, fast I2C, Notes=Strong pull, higher current
|
||||
- 4.7kΩ:Use Case=Standard I2C, 1-Wire, general purpose, Notes=Most common choice
|
||||
- 10kΩ:Use Case=Buttons, CS lines, low-power, Notes=Standard digital pull
|
||||
- 47-100kΩ:Use Case=Wake-up inputs, ultra-low power, Notes=Very weak, slow rise time
|
||||
|
||||
### Consequences of Wrong Value
|
||||
|
||||
**Too high (weak pull):**
|
||||
- Slow signal rise times
|
||||
- Noise susceptibility
|
||||
- Communication errors at higher speeds
|
||||
- May not reach valid HIGH level
|
||||
|
||||
**Too low (strong pull):**
|
||||
- Excessive current consumption
|
||||
- Device may not be able to pull line LOW
|
||||
- Wasted power in battery applications
|
||||
|
||||
---
|
||||
|
||||
## Level Shifting
|
||||
|
||||
### When Required
|
||||
|
||||
- 5V logic output → 3.3V GPIO input
|
||||
- 3.3V GPIO output → 5V input (if device doesn't recognize 3.3V as HIGH)
|
||||
- Bidirectional communication between 3.3V and 5V systems
|
||||
|
||||
### Method 1: Voltage Divider (5V → 3.3V, Unidirectional)
|
||||
|
||||
**Use for:** Slow signals (<100kHz), input direction only
|
||||
|
||||
```
|
||||
5V Signal ──[1kΩ]──┬──> 3.3V GPIO Input
|
||||
│
|
||||
[2kΩ]
|
||||
│
|
||||
GND
|
||||
|
||||
Output: 5V × (2kΩ / 3kΩ) = 3.33V
|
||||
```
|
||||
|
||||
- Simple, cheap:Cons=Input direction only
|
||||
- 2 resistors:Cons=Slow (RC time constant)
|
||||
- No active components:Cons=Loads the signal
|
||||
|
||||
### Method 2: N-Channel MOSFET (Bidirectional)
|
||||
|
||||
**Use for:** I2C, 1-Wire, open-drain signals up to 400kHz
|
||||
|
||||
```
|
||||
3.3V Side 5V Side
|
||||
│ │
|
||||
[4.7kΩ] [4.7kΩ]
|
||||
│ │
|
||||
├────────┬──────────────────┬──────────┤
|
||||
│ │ │ │
|
||||
SDA Source Drain SDA
|
||||
(3.3V) └───── BSS138 ─────┘ (5V)
|
||||
│
|
||||
Gate
|
||||
│
|
||||
3.3V
|
||||
```
|
||||
|
||||
**Operation:**
|
||||
- Gate tied to LOW side voltage (3.3V)
|
||||
- When LOW side pulls down, MOSFET conducts, pulling HIGH side down
|
||||
- When HIGH side pulls down, body diode conducts, pulling LOW side down
|
||||
- Pull-ups restore HIGH state on both sides
|
||||
|
||||
- MOSFET:Specification=BSS138, 2N7000 (through-hole)
|
||||
- Pull-ups:Specification=4.7kΩ on each side
|
||||
- Voltage:Specification=3.3V on gate, low side; 5V on high side
|
||||
|
||||
### Method 3: Dedicated Level Shifter ICs
|
||||
|
||||
- TXB0104:Channels=4, Type=Auto-direction, Speed=100 Mbps, I2C Safe?=**NO**
|
||||
- TXB0108:Channels=8, Type=Auto-direction, Speed=100 Mbps, I2C Safe?=**NO**
|
||||
- PCA9306:Channels=2, Type=I2C-specific, Speed=1 MHz, I2C Safe?=**YES**
|
||||
- PCA9517:Channels=2, Type=I2C buffer, Speed=400 kHz, I2C Safe?=**YES**
|
||||
- 74LVC245:Channels=8, Type=Unidirectional, Speed=100 MHz, I2C Safe?=N/A (direction pin)
|
||||
- BSS138 modules:Channels=4, Type=Bidirectional, Speed=400 kHz, I2C Safe?=**YES**
|
||||
|
||||
**CRITICAL WARNING:** TXB-series level shifters do **NOT** work reliably with open-drain protocols (I2C, 1-Wire). They fight the pull-up resistors and cause communication errors. Use BSS138-based modules or PCA9306 for I2C.
|
||||
|
||||
### Method 4: Direct Connection (3.3V → 5V Input)
|
||||
|
||||
Many 5V devices recognize 3.3V as logic HIGH:
|
||||
|
||||
- VIH (HIGH threshold):Typical 5V TTL=2.0V, Typical 5V CMOS=3.5V
|
||||
- VIL (LOW threshold):Typical 5V TTL=0.8V, Typical 5V CMOS=1.5V
|
||||
|
||||
**Check datasheet for VIH.** If VIH < 3.0V, direct connection usually works.
|
||||
|
||||
**NEVER** connect 5V output directly to 3.3V input — level shift or divide required.
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes and Warnings
|
||||
|
||||
### NEVER Do This
|
||||
|
||||
- Connect 5V directly to any GPIO:Consequence=**Permanent chip damage**
|
||||
- Drive relay coil directly from GPIO:Consequence=Inductive kickback damages GPIO
|
||||
- Drive motor directly from GPIO:Consequence=Overcurrent, voltage spikes
|
||||
- Exceed 50mA total on RPi GPIO:Consequence=Voltage instability, damage
|
||||
- Use ESP32 GPIO6-11 (WROOM):Consequence=Flash pins — chip crashes
|
||||
- Pull GPIO12 HIGH at boot (ESP32):Consequence=**Flash voltage brick**
|
||||
- Forget pull-ups on I2C:Consequence=Communication failure
|
||||
- Forget pull-up on 1-Wire:Consequence=Bus doesn't work
|
||||
- Use TXB-series for I2C:Consequence=Unreliable communication
|
||||
- Assume GPIO is 5V tolerant:Consequence=It's not — damage results
|
||||
|
||||
### ALWAYS Do This
|
||||
|
||||
- Use current-limiting resistor for LEDs:Reason=Prevents overcurrent (220-330Ω)
|
||||
- Use flyback diode with relays/motors:Reason=Catches inductive voltage spike
|
||||
- Use level shifter for 5V ↔ 3.3V:Reason=Protects GPIO from overvoltage
|
||||
- Check total current draw:Reason=Prevent exceeding limits
|
||||
- Verify I2C addresses before wiring:Reason=Detect conflicts early
|
||||
- Add 100nF decoupling capacitor near ICs:Reason=Reduces noise, improves stability
|
||||
- Use external pull-ups for I2C (4.7kΩ):Reason=Internal pulls too weak
|
||||
- Check ESP32 pin restrictions:Reason=Strapping, flash, input-only
|
||||
- Use transistor for loads >16mA:Reason=Protects GPIO
|
||||
- Add ESD protection for external connectors:Reason=Protects against static
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference Card
|
||||
|
||||
### Formulas
|
||||
|
||||
**LED Resistor:**
|
||||
```
|
||||
R = (VCC - Vf) / If
|
||||
R = (3.3V - 2.0V) / 10mA = 130Ω minimum
|
||||
Recommended: 220-330Ω (5-10mA, plenty bright)
|
||||
```
|
||||
|
||||
**Voltage Divider:**
|
||||
```
|
||||
Vout = Vin × (R2 / (R1 + R2))
|
||||
For 5V → 3.3V: R1=1kΩ, R2=2kΩ
|
||||
```
|
||||
|
||||
**Pull-up Resistor:**
|
||||
```
|
||||
R = (VCC - VOL) / IOL
|
||||
Standard: 4.7kΩ for I2C/1-Wire, 10kΩ for buttons
|
||||
```
|
||||
|
||||
### Quick Values
|
||||
|
||||
- LED resistor (3.3V, red/green):220-330Ω
|
||||
- LED resistor (3.3V, blue/white):100-150Ω
|
||||
- I2C pull-up:**4.7kΩ** to 3.3V
|
||||
- 1-Wire pull-up:**4.7kΩ** to 3.3V
|
||||
- Button pull-up/down:10kΩ
|
||||
- SPI CS pull-up:10kΩ
|
||||
- 5V → 3.3V divider:1kΩ + 2kΩ
|
||||
- Flyback diode:1N4148 or 1N4007
|
||||
- Decoupling capacitor:100nF ceramic
|
||||
|
||||
### Current Limits Summary
|
||||
|
||||
- Raspberry Pi:Per Pin=16mA, Total GPIO=**50mA**
|
||||
- ESP32:Per Pin=20mA recommended, Total GPIO=~1200mA chip total
|
||||
|
||||
### Voltage Summary
|
||||
|
||||
- Logic HIGH:RPi=3.3V, ESP32=3.3V
|
||||
- Logic LOW:RPi=0V, ESP32=0V
|
||||
- Max input:RPi=3.3V, ESP32=3.3V
|
||||
- 5V tolerant:RPi=**NO**, ESP32=**NO**
|
||||
|
||||
### Common Pin Restrictions
|
||||
|
||||
**Raspberry Pi:**
|
||||
- GPIO0/1: Reserved (HAT EEPROM)
|
||||
- GPIO14/15: UART/BT conflict (Pi 3/4/Zero2W)
|
||||
|
||||
**ESP32:**
|
||||
- GPIO6-11: Flash pins — **NEVER USE**
|
||||
- GPIO12: Strapping — **DANGER** (flash voltage)
|
||||
- GPIO16-17: PSRAM (WROVER only)
|
||||
- GPIO34-39: Input only, no pulls
|
||||
|
||||
---
|
||||
@@ -0,0 +1,85 @@
|
||||
# ESP32-32D与S3选型踩坑
|
||||
|
||||
> **类别:compare** | **芯片:esp32 / esp32-d0wd / esp32-s3** | **主题:ESP32-D0WD vs ESP32-S3 选型对比**
|
||||
>
|
||||
> 代价:V2.5设计用了WROOM-32D但没加USB转串口芯片,板子到手无法烧录=变砖
|
||||
|
||||
## 坑1:WROOM-32D没有原生USB
|
||||
|
||||
ESP32-WROOM-32D模组**没有原生USB**,不像C3/S3那样Type-C直连D+/D-就能烧程序。Type-C只能供电,**无法下载固件**。
|
||||
|
||||
**必须有USB转串口方案:**
|
||||
- 方案A:板上加CH340/CH9102 + 自动复位电路(双NPN S8050 + 2×1kΩ),Type-C直接供电+烧录,成本+¥3~5
|
||||
- 方案B:不加串口芯片,GPIO1(TXD0)/GPIO3(RXD0)引出到排针,用外接FTDI下载器烧,省钱但每次接线
|
||||
|
||||
**铁律:选32D方案,BOM里必须列出USB转串口芯片+外围,否则就是废板。**
|
||||
|
||||
## 坑2:S3原生USB省大量器件
|
||||
|
||||
换S3后能省掉的:
|
||||
- CH340/CH9102整颗IC + 外围晶振 + 4~5颗去耦电容
|
||||
- 自动复位电路:2×S8050 + 2×1kΩ
|
||||
- UART排针:GPIO1/GPIO3不用专门引出
|
||||
- S3模组内部Flash更大(N8=8MB)
|
||||
|
||||
**合计省7~8个器件,板上面积也省一块,布线更简单。**
|
||||
|
||||
## 坑3:S3新增strapping和USB走线要求
|
||||
|
||||
S3虽省器件,但有新要求:
|
||||
- **GPIO45/46是strapping**,必须按目标模式做上下拉,不能悬空
|
||||
- **USB D+/D-走线**:等长、短线、少过孔,远离大电流走线,否则枚举反复断开
|
||||
|
||||
## 坑4:GPIO12上拉导致Flash变砖
|
||||
|
||||
ESP32-32D的GPIO12是strapping pin,决定VDD_SDIO电压:
|
||||
- **GPIO12上拉10kΩ → VDD_SDIO=1.8V → Flash无法工作**
|
||||
- 正确:GPIO12下拉GND → VDD_SDIO=3.3V(默认安全值)
|
||||
|
||||
设计时必须检查所有strapping pin的偏置方向,不能随便加上拉。
|
||||
|
||||
## 坑5:WROOM-32D模组内部已集成
|
||||
|
||||
- **Flash**:N8后缀=8MB,封在模组内
|
||||
- **晶振**:40MHz,封在模组内
|
||||
- **WiFi/BT**:共用2.4GHz射频前端和天线,时分复用,不需要额外加天线或射频器件
|
||||
|
||||
PCB上不用外接Flash、不用焊晶振,模组焊上去供电就能跑。
|
||||
|
||||
## 坑6:天线放置必须按乐鑫官方规则
|
||||
|
||||
**最佳方案:模组放板边,天线端伸出板边**
|
||||
- 天线蛇形区域悬在板子外面,完全不接触PCB,信号最好
|
||||
- 模组金属屏蔽罩下方要铺完整地铜
|
||||
|
||||
**天线没法伸出板边时:**
|
||||
- 天线下方及周边**所有层禁止铺铜、走线、放元件**
|
||||
- 净空区至少天线周围2mm范围内清空
|
||||
- 板边挖掉天线区域的板材,给天线留出空间
|
||||
|
||||
**禁止做的事:**
|
||||
- ❌ 天线区域下方有铜(任何层都不行)
|
||||
- ❌ 模组放板子中间四周挖空
|
||||
- ❌ 电池、金属螺丝、连接器靠近天线端
|
||||
|
||||
---
|
||||
*2026-07-04 | V2.5设计踩坑总结*
|
||||
|
||||
## 坑7:C6同尺寸升级路径——彩屏备选方案(2026-07-12)
|
||||
|
||||
GBC V5.0当前用C3+I2C OLED,将来要上1.3寸彩屏时GPIO不够。C6是pin-to-pin兼容的升级路径:
|
||||
|
||||
- 封装:ESP32-C3-MINI-1=QFN, ESP32-C6-MINI-1-N4 (C5736265)=SMD-53P,53脚(大半GND)
|
||||
- 尺寸:ESP32-C3-MINI-1=13×13mm, ESP32-C6-MINI-1-N4 (C5736265)=同尺寸兼容
|
||||
- 可用GPIO:ESP32-C3-MINI-1=~13个, ESP32-C6-MINI-1-N4 (C5736265)=**22个**
|
||||
- 嘉立创库:ESP32-C3-MINI-1=基础库, ESP32-C6-MINI-1-N4 (C5736265)=**扩展库**,SMT有换料费
|
||||
- 价格:ESP32-C6-MINI-1-N4 (C5736265)=$3.82/片
|
||||
|
||||
GBC V5.0当前用13个GPIO,C6给22个剩9个富余,SPI彩屏4-6线绑绑有余,I2C/UART/USB全保留。
|
||||
|
||||
**决策:** GBC 5.0先C3+OLED投板,C6方案存档备用,等真要上彩屏再换芯(板壳不改)。
|
||||
|
||||
**注意:** C6在嘉立创扩展库,SMT会收换料费,小批量要算这笔账。
|
||||
|
||||
---
|
||||
*2026-07-12 | C6升级备选方案归档*
|
||||
@@ -0,0 +1,45 @@
|
||||
# 四层板层叠与走线踩坑
|
||||
> **类别:trap** | **芯片:cross-platform** | **主题:四层板层叠与走线踩坑**
|
||||
> 来源:电子宠物V1.0 S3FH4R2裸片四层板设计讨论,2026-07-24
|
||||
|
||||
## 一、层叠分配
|
||||
|
||||
- 顶层:用途=信号走线+摆件, 铺铜策略=信号走完后空地铺GND铜皮
|
||||
- 内层1:用途=GND, 铺铜策略=出厂整面铺铜,不手动走线
|
||||
- 内层2:用途=3V3电源走线, 铺铜策略=只走线不铺铜,灵活性最高
|
||||
- 底层:用途=信号走线, 铺铜策略=信号走完后空地铺GND铜皮
|
||||
|
||||
### 关键理解
|
||||
- **GND铜皮有三层**:内层1完整铺 + 顶层空地补铺 + 底层空地补铺,通过过孔连成一体
|
||||
- **3V3只走线不铺铜**:内层2走3V3拉线+过孔即可,铺铜反而浪费且不必要
|
||||
- **顶层/底层铺GND是补铺**:先走完信号线,剩余空地再铺GND铜皮,别为了铺铜把信号线挤没了
|
||||
|
||||
## 二、走线优先级(四层板)
|
||||
|
||||
**核心原则:信号路径最死,3V3和GND怎么都能接,信号走不通的地方3V3内层2还能让路。**
|
||||
|
||||
### 执行顺序
|
||||
1. **设置层叠**:内层1铺GND,内层2留空
|
||||
2. **顶层走信号线**(最关键)——先把I2S+SPI这些主通路走通
|
||||
3. **底层走信号线**——I2C、触摸、UART这些需要绕的
|
||||
4. **内层2走3V3**——拉线+过孔,最后补,因为它最灵活
|
||||
5. **顶层/底层空地铺GND铜皮**——收尾
|
||||
|
||||
### 为什么信号线先走
|
||||
- 信号路径约束最多(起点终点固定、不能随意换层)
|
||||
- 3V3走内层2有整层可用,可绕可让
|
||||
- GND铺铜是最后收尾,有空就铺
|
||||
|
||||
## 三、铺GND铜皮的注意点
|
||||
|
||||
- **先走完信号线再铺GND**,不能反过来
|
||||
- 顶层空地铺GND铜皮后,打过孔到内层1 GND,多一个回流路径,信号质量更好
|
||||
- 底层同理,空地铺GND铜皮+过孔连内层1
|
||||
- 最终效果:三层GND铜皮通过过孔连成一体,形成完整的GND回流网络
|
||||
|
||||
## 四、与两层板的区别
|
||||
|
||||
- GND处理:两层板=底层尽量少走线,保证完整地平面, 四层板=内层1完整GND,顶层底层补铺
|
||||
- 电源走线:两层板=顶层/底层走,和信号争空间, 四层板=内层2专走3V3,不占信号层
|
||||
- 走线难度:两层板=信号和电源挤在一起, 四层板=信号有顶层+底层两层,空间充裕
|
||||
- GND质量:两层板=依赖底层铺铜完整性, 四层板=三层GND铜皮,回流路径最优
|
||||
@@ -0,0 +1,230 @@
|
||||
# PCB项目通用全流程工作清单 V3.0
|
||||
> **类别:pcb** | **芯片:cross-platform** | **主题:PCB项目通用全流程工作清单 V3.0**
|
||||
> 2026-06-28 | 整合V2.0(13铁律+8步审查+踩坑附录) + 方法论V2.0(9阶段+拓扑重审+模块整体分合+电源树)
|
||||
|
||||
---
|
||||
|
||||
## 通用铁律
|
||||
|
||||
1. **带病不推进**:每阶段出口条件不满足,不进下一阶段
|
||||
2. **datasheet为唯一权威标准**:冲突时以技术手册为准,网搜结果需交叉验证
|
||||
3. **双模型交叉验证**:审查环节智谱+DeepSeek双审,少一个不行。双模型必须独立审查,分别发问题文档各自输出,最后合并比对,不一致项人工复核,禁止同一对话传话
|
||||
4. **先熟读再设计**:IC参数没吃透没资格画拓扑,参数是设计的基础弹药
|
||||
5. **改方案比新建难**:在原有基础上改要跟旧惯性斗争,每个决定重新论证;已沉淀的弹药库/速查卡/踩坑规则是从0到1的资产
|
||||
6. **方法论持续迭代**:踩过的坑沉淀为规则,每次整改后复盘方法论缺陷
|
||||
7. **参考设计必须走完论证流程**:开源/参考设计与全新设计一视同仁,只提供典型值不提供你的场景可靠性
|
||||
8. **数据锚点**:审查输出必须带数据锚点(net名/位号/数值),禁止模糊结论
|
||||
9. **踩坑即记录**:新坑随时补进附录
|
||||
10. **基线存档制**:原理图基线存档后不改,改版另起版本号
|
||||
11. **网络标签功能性命名**:一个net一个名字,不复用不加后缀,禁下划线/空格/标点
|
||||
12. **布局先规划后动手**:先九宫格分区确认再塞元件
|
||||
13. **电源走顶层明面**:VBUS/5V/3V3粗线顶层,信号底层
|
||||
14. **外接座靠边放**:接口靠板边,连的元件就近
|
||||
15. **接口必须对照官方**:USB/UART/I2C等信号线阻容网络,与芯片手册/官方开发板逐脚对照,官方要求的一个不能省
|
||||
16. **strapping引脚查默认态**:BOOT/EN等启动引脚,必须查上电瞬间默认电平,不能只看"按键按下"
|
||||
17. **烧录链路必走查**:最后一道关——插上Type-C电脑能识别能烧录,全链路走一遍
|
||||
18. **开发板拆解陷阱**:面包板验证的是拓扑逻辑,开发板内部兜底的接口细节你看不见,拆到PCB时这些全得自己画,漏一个就废板
|
||||
19. **模块与整体必须分开做再融合**:模块化只管IC级参数/引脚阻容,整体性管网级连接/路径/时序,不能混着做否则两头都漏
|
||||
20. **技术参数禁凭记忆瞎答**:必须先查文档再回复,宁慢勿错
|
||||
|
||||
---
|
||||
|
||||
## 一、思路碰撞
|
||||
|
||||
- ☐ 产品用途/核心功能/目标用户
|
||||
- ☐ 技术路线选型 + 成本框算
|
||||
- ☐ **核心工作模式定义(强制)**:有无电池、边充边用、低电量等场景下的系统行为,不定义不清不进下一步
|
||||
- ☐ 功能说明文档:每模块输入/输出/精度 + 供电架构图 + 交互方式
|
||||
- ☐ 架构审查:供电链路(压差+裕量) / 测量链路(量程匹配) / 保护链路(阈值),均带数值
|
||||
- ☐ **反向场景审查**:插错/放反/过压/ESD,至少做到"坏了不冒烟",能自恢复更好
|
||||
- ☐ 双模型交叉审查通过
|
||||
|
||||
**出口**:需求清单+约束条件+工作模式定义 双方确认 + 功能文档定稿 + 架构审查通过 + 三条链路有数值支撑
|
||||
|
||||
---
|
||||
|
||||
## 二、拓扑从零构建与独立论证
|
||||
|
||||
- ☐ **不沿袭旧设计**,独立重新论证每个连接的合理性,"之前这么设计的"不是理由
|
||||
- ☐ 如发现IC不合适,该换就换,不将就
|
||||
- ☐ **电源树绘制**:从电源入口开始,逐级画出经过的每一颗IC(充电、保护、开关、LDO),标出每级输入输出电压、电流能力
|
||||
- ☐ **压降与耐压审查**:确认极端情况下后端器件输入电压在安全范围内,LDO压差足够
|
||||
- ☐ **路径隔离论证**:充电路径和系统供电路径是共用/部分共用/完全独立,能否覆盖所有工作模式
|
||||
- ☐ 双模型交叉审查通过
|
||||
|
||||
**出口**:拓扑完美无缺 + 无惯性遗留假设 + 电源树论证通过
|
||||
|
||||
注:**已有设计迭代时可先做阶段三再回阶段二**(IC参数校准→拓扑重审),省去重新选型步骤
|
||||
|
||||
---
|
||||
|
||||
## 三、IC选型与参数确认
|
||||
|
||||
- ☐ **先熟读再设计**:所有IC datasheet吃透,PDF图表信息(配置表/时序图/引脚图/特性曲线)必须翻原文件确认,文本提取不替代原图
|
||||
- ☐ 逐IC建立技术档案:PDF+速查卡+引脚映射+电气特性
|
||||
- ☐ **逐pin合规审查**:
|
||||
- Strapping/电源/特殊功能引脚逐条对照datasheet
|
||||
- **电源完整性审查(强制)**:确认IC供电范围、上电斜率要求、所需去耦电容容值和数量,尤其检查MCU内部LDO需外部电容的引脚
|
||||
- **复位/EN引脚时序审查(强制)**:确认原理图上有阻容延迟电路或电压监控复位IC,无此电路不进下一阶段
|
||||
- ☐ 优先基础库(省换料费¥20/种),扩展库确认库存
|
||||
- ☐ 封装统一(阻容0805起步),关键器件确认替代方案
|
||||
- ☐ **新手坟场封装规避**:验证板优先SOP/SOT-23/0603以上,走线不挤不强行上QFN/0402
|
||||
- ☐ BOM vs datasheet交叉对比,确认无遗漏元件
|
||||
- ☐ BOM:位号/型号/封装/编号/数量/库类型/备注,SMT/自焊/外接分开
|
||||
- ☐ 每个编号去商城搜过不靠记忆,封装实物匹配,换料费核算
|
||||
|
||||
**出口**:所有IC参数锁死 + 速查卡与PDF原图一致 + BOM冻结零冲突 + 编号已核实 + 换料费已算
|
||||
|
||||
---
|
||||
|
||||
## 四、分模块验证
|
||||
|
||||
- ☐ 模块化只管IC级参数、引脚阻容配置
|
||||
- ☐ 逐模块标定:压降、稳定性、电流、驱动能力
|
||||
- ☐ 双模型交叉验证(智谱+DeepSeek),禁止单模型结果直接用
|
||||
|
||||
**出口**:每个模块独立验证通过,参数在控制内
|
||||
|
||||
---
|
||||
|
||||
## 五、整体审视
|
||||
|
||||
- ☐ 整体性管网级连接、路径、时序
|
||||
- ☐ 回头看模块标定的参数,在整体运行时有无问题
|
||||
- ☐ 阻容根据拓扑运算结果调整
|
||||
- ☐ 确认板级合理性(电源路径、信号流向、接口一致性)
|
||||
- ☐ **总线/接口完整性审查**:
|
||||
- 开漏总线(I2C等)原理图上显式画出上拉电阻,阻值匹配速率和节点数
|
||||
- 对外接口ESD防护(至少留TVS管位置)
|
||||
- 连接器/开关触点在关键信号路径上的接触电阻对测量精度影响
|
||||
- 高速/敏感信号终端匹配或阻抗连续性考虑
|
||||
- ☐ 双模型交叉审查通过
|
||||
|
||||
**出口**:整体网络校验通过 + 阻容配置合理 + 接口完整性确认
|
||||
|
||||
---
|
||||
|
||||
## 六、网络标签规划
|
||||
|
||||
- ☐ 每个net:名称 + 连接引脚列表 + 功能说明
|
||||
- ☐ 同名net超2个模块→强制拆中间节点
|
||||
- ☐ 采样元件两端必须不同net名(否则被旁路=致命)
|
||||
- ☐ 供电net和测量net分开命名,禁止后缀区分
|
||||
|
||||
**出口**:网络总表定稿 + 采样电阻两端net名不同 + 双模型审过
|
||||
|
||||
---
|
||||
|
||||
## 七、原理图绘制
|
||||
|
||||
- ☐ 分模块画,虚线框围起标注模块名,模块内直连跨模块用标签
|
||||
- ☐ 每模块画完立即:放标签对照总表 / 悬空引脚标NC / 自焊件标注
|
||||
- ☐ **对外接口逐脚对照官方**:每个模块与外部连接器的信号完整性要求,对照芯片手册参考设计(串联电阻/上下拉/匹配电容),单独检查项覆盖
|
||||
- ☐ DRC/ERC → 0错误0警告
|
||||
|
||||
**出口**:模块画完 + 标签与总表一致 + 无悬空 + 接口对照官方通过 + DRC零报错
|
||||
|
||||
---
|
||||
|
||||
## 八、原理图审查(核心,八步缺一不可)
|
||||
|
||||
### 8.1 DRC/ERC → 0错误0警告
|
||||
⚠ DRC只查物理规则,不查功能/拓扑错误
|
||||
|
||||
### 8.2 网表逐条核对
|
||||
每个net三问:该连的连了吗?多连了吗?漏连了吗?
|
||||
**逐元件值比对**:网表PARTTYPE/Value必须与BOM逐一对照,阻值/容值/型号不一致立即标红,连通性正确≠值正确
|
||||
|
||||
### 8.3 接口信号完整性审查(独立项)
|
||||
USB D+/D-串联电阻、CC上下拉、I2C上拉、时钟匹配等,**独立于功能审查**,跨模块连接规范逐条检查
|
||||
|
||||
### 8.4 strapping引脚上电时序专项
|
||||
所有影响启动/下载/复位的引脚,查**默认态**(上电瞬间上下拉决定的电平),不只看按键动作。制作真值表验证每种组合合法
|
||||
|
||||
### 8.5 烧录链路完整性走查
|
||||
从USB座→D+/D-→芯片GPIO→BOOT/EN时序→固件加载,每个节点确认能正常工作。**最后一道关口**
|
||||
|
||||
### 8.6 与官方开发板差异对比
|
||||
用官方开发板原理图做参照模板,逐模块逐脚比对。所有偏离官方的改动记录原因
|
||||
|
||||
### 8.7 DeepSeek识图审核
|
||||
分模块截图标注网络标签+连接关系,喂DeepSeek识图,输出带数据锚点+存疑点
|
||||
|
||||
### 8.8 智谱文字深检+交叉验证
|
||||
喂网表+功能文档+标签总表+DeepSeek存疑点,与8.7交叉比对,两个模型都通过才算过
|
||||
|
||||
⚠ **双模型必须独立审查**:分别发问题文档,各自独立输出结论,最后合并比对。不一致项人工复核。禁止在同一对话里让两边传话
|
||||
|
||||
**出口**:八项全绿 → 原理图基线存档
|
||||
|
||||
---
|
||||
|
||||
## 九、PCB设计
|
||||
|
||||
- ☐ 布局预规划:九宫格分区图,电气相关模块相邻,放电通路一列到底
|
||||
- ☐ **模拟/数字分区**:ADC走线远离I2C时钟等高频数字信号
|
||||
- ☐ 布局:信号流 电源→MCU→外设,热敏件远发热区,去耦紧贴IC
|
||||
- ☐ 提炼各IC的PCB layout硬约束(EP过孔/去耦放置/天线净空/走线规则等),按约束清单逐条布局布线
|
||||
- ☐ 走线:放电1mm→电源0.5mm→信号0.25mm,GND铺铜,大电流直线不过孔,功率焊盘全连接禁十字花
|
||||
- ☐ DRC→0 + 3D预览无重叠
|
||||
|
||||
**出口**:DRC通过 + 3D确认 + layout约束逐条满足 + STEP已导出
|
||||
|
||||
---
|
||||
|
||||
## 十、下单前终检
|
||||
|
||||
- ☐ BOM↔原理图双向核对 + SMT库存确认 + 换料费预估
|
||||
- ☐ Gerber完整性 + 成本核算
|
||||
|
||||
**出口**:下单文件齐 + 成本确认 + 三方一致
|
||||
|
||||
---
|
||||
|
||||
## 十一、实物验证
|
||||
|
||||
- ☐ **电源分步上电法**:
|
||||
- 第一步:不焊MCU等贵重器件,先验证充电IC和LDO,示波器看启动波形无过冲/震荡
|
||||
- 第二步:焊MCU最小系统(电源+EN+下载口),确认稳定识别、可下载程序
|
||||
- 第三步:逐个加入外围模块,问题隔离在最小系统
|
||||
- ☐ 目检 → 万用表短路排查(3V3/GND, VBUS/GND, VBAT/GND,绝不上电先)
|
||||
- ☐ **烧录失败直接终止**,排查硬件,不继续后续功能测试
|
||||
- ☐ 功能模块逐级验证 → 电池接入(最后)
|
||||
- ☐ 各引脚参数在控制内、有冗余
|
||||
- ☐ 资深老手终审
|
||||
- ☐ 问题记录:致命/重要/轻微
|
||||
|
||||
**出口**:实物测试通过 + 产品可交付
|
||||
|
||||
---
|
||||
|
||||
## 附录:踩坑记录
|
||||
|
||||
- 采样电阻被同名net旁路→短路:严重度=致命, 防范措施=同名net超2模块必须拆中间节点,采样两端net名不同, 对应阶段/审查步=六/8.2
|
||||
- USB D+/D-缺串联电阻+D+上拉→电脑无法枚举:严重度=致命, 防范措施=外部通信接口必须对照芯片手册参考设计,逐脚核对阻容网络, 对应阶段/审查步=8.3/8.6
|
||||
- BOOT接错引脚+GPIO8 NC→非法启动组合:严重度=致命, 防范措施=strapping引脚必须查默认态+做真值表, 对应阶段/审查步=8.4
|
||||
- BOOT按键常低→永远进下载模式出不来:严重度=致命, 防范措施=BOOT默认高电平(上拉3V3),按下才拉低, 对应阶段/审查步=8.4
|
||||
- 嘉立创编号靠记忆写错:严重度=重要, 防范措施=BOM审核时每个编号必须搜库确认, 对应阶段/审查步=三
|
||||
- MOSFET Vgs(th)与驱动电压不匹配:严重度=重要, 防范措施=MOS选型必须确认驱动电压能完全导通, 对应阶段/审查步=三
|
||||
- ESP32-C3下载模式与ESP32-D相反:严重度=致命, 防范措施=每次用新MCU先查下载模式,不惯性套用, 对应阶段/审查步=8.4
|
||||
- 6P Type-C无数据线→无法烧录:严重度=致命, 防范措施=烧录链路完整性必须作为独立检查项, 对应阶段/审查步=8.5
|
||||
- 开发板拆解丢接口细节→废板:严重度=致命, 防范措施=拆到PCB时必须逐项检查"开发板做了什么我没画", 对应阶段/审查步=8.3/8.6
|
||||
- 模块验证OK整体漏→网络级问题:严重度=致命, 防范措施=模块与整体必须分开做再融合, 对应阶段/审查步=五
|
||||
- PDF图表信息文本提取遗漏:严重度=致命, 防范措施=必须翻PDF原图确认,文本不替代图, 对应阶段/审查步=三
|
||||
- 拓扑沿用旧设计→惯性假设残留:严重度=致命, 防范措施=拓扑独立论证,"之前这么设计的"不是理由, 对应阶段/审查步=二
|
||||
- 工作模式未定义→供电架构矛盾:严重度=致命, 防范措施=阶段一强制定义工作模式, 对应阶段/审查步=一
|
||||
- 电源树未画→压降/路径问题漏审:严重度=致命, 防范措施=拓扑阶段强制绘制电源树+压降审查+路径隔离论证, 对应阶段/审查步=二
|
||||
- 参考设计盲目抄→场景不适用:严重度=重要, 防范措施=参考设计必须走完论证流程, 对应阶段/审查步=铁律7
|
||||
|
||||
---
|
||||
|
||||
## 相比V2.0增补内容
|
||||
- ✅阶段一新增工作模式定义(强制出口)
|
||||
- ✅新增阶段二:拓扑从零构建与独立论证(电源树+压降审查+路径隔离)
|
||||
- ✅阶段三强化:电源完整性审查+复位/EN时序审查为强制项
|
||||
- ✅新增阶段四:分模块验证(独立于整体审视)
|
||||
- ✅阶段五强化:总线/接口完整性审查
|
||||
- ✅阶段十一强化:电源分步上电法
|
||||
- ✅铁律增至20条,新增模块整体分合/参考设计论证/方法论迭代等
|
||||
- ✅踩坑记录增补5条(模块整体/PDF图表/拓扑惯性/工作模式/电源树/参考设计)
|
||||
- ✅整体审视与模块验证明确分离,不再混做
|
||||
@@ -0,0 +1,64 @@
|
||||
# SMT下单踩坑记录
|
||||
|
||||
> **类别:trap** | **芯片:cross-platform** | **主题:SMT下单踩坑 (封装选错 / 换料费)**
|
||||
>
|
||||
> 代价:换料费多花几十上百,元件选错封装返工
|
||||
|
||||
## 坑1:不查基础库直接选扩展库
|
||||
|
||||
嘉立创器件库分三级,换料费差距巨大:
|
||||
- 基础库:0元/种
|
||||
- 推荐库:¥5/种
|
||||
- 扩展库:¥20(编带)/¥30(管装)/种
|
||||
|
||||
每次下单全量计费,无复购减免。5片小单换料费能占总成本30%+。
|
||||
|
||||
**省费案例:**
|
||||
- R8从扩展库0.1Ω换成C25334基础库100mΩ——省¥20
|
||||
- SW2/SW3从C561516换成C720477基础库——省¥20
|
||||
- AO3400A C20917本身就是基础库,别选错成扩展库版本——省¥20
|
||||
- GBC版总计省¥60换料费
|
||||
|
||||
## 坑2:大功率电阻基础库没有
|
||||
|
||||
0805及以下封装的电阻基础库很全,但1206以上大功率电阻基本没有。
|
||||
|
||||
**对策:** 大功率负载电阻手焊不进SMT(2Ω 5W绕线/5Ω 2W金属氧化膜),淘宝几毛钱一个。
|
||||
|
||||
## 坑3:连接器占换料费大头
|
||||
|
||||
XH4P插座每个¥20,GBC版3个就¥60。
|
||||
|
||||
**对策:** NES版砍掉所有XH插座,OLED/电池座/开关全用焊盘直焊+飞线外接,省掉连接器换料费+省板面空间。
|
||||
|
||||
## 坑4:经济型SMT规则
|
||||
|
||||
- 无钢网费·无需工艺边和Mark点·最小支持10×10mm板
|
||||
- 非经济型需工艺边+Mark点+钢网费
|
||||
- 拼板用邮票孔,禁V-CUT
|
||||
- 只贴单面
|
||||
- SMT必选¥3工程核验
|
||||
|
||||
## 坑5:扩展库有货直接贴
|
||||
|
||||
扩展库有现货的直接交换料费贴片,不用自己买元件寄仓库。只有私有库才需要自购寄仓(耗时一两周)。
|
||||
|
||||
## 铁律
|
||||
|
||||
- 选型先搜基础库,搜不到再考虑扩展库
|
||||
- 连接器能用焊盘替代就用焊盘
|
||||
- 大功率电阻手焊
|
||||
- 下单前逐个确认嘉立创编号与EDA一致
|
||||
|
||||
|
||||
## 坑6:MOS管选型—参数好≠选它(2026-07-11)
|
||||
|
||||
### 案例:AO3400A vs IRLML2502
|
||||
|
||||
- 参数:AO3400A=够用(Vgs=3V3开透、Rds=30mΩ), IRLML2502 (IR/Infineon)=更好(Vgs一致性高、Rds标称更准、内置ESD)
|
||||
- 嘉立创库:AO3400A=**基础库**,几毛钱, IRLML2502 (IR/Infineon)=扩展库,加钱
|
||||
- 断货风险:AO3400A=基础库大批量不断货, IRLML2502 (IR/Infineon)=扩展库可能缺货还得换
|
||||
|
||||
**决策:试水阶段(首批20-30台)选AO3400A,基础库稳比参数好重要。**
|
||||
|
||||
> 量产选型权衡:参数余量 vs 采购成本。以后量大了再考虑扩展库也不迟。
|
||||
Reference in New Issue
Block a user