mothercup/hardware_design/mothercup_硬件电路设计.md

278 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 母乳杯(MotherCup)制冷杯硬件电路设计
> 基于国民技术 N32WB031(QFN32)BLE SoC,参考 `nations-tec/N32WB031_STB_V1.3` 开发板原理图
> 及《N32WB03x 系列芯片硬件设计指南 V1.4》《N32WB03X 系列用户手册 V1.5》。
> 固件侧对齐 `mcm-ddc-ble`(USART1=PB6/PB7,BLE 低时钟用内部 LSI,**不使用外部 32.768K 晶振**)。
---
## 1. 需求 → 方案映射
| # | 需求 | 实现方案 |
|---|---|---|
| 1 | 电源充电可控 | Type-C 5V → 高边 P-MOSFET 开关(GPIO 控制)→ TP4056 充电 → 锂电池;GPIO 可关断充电 |
| 2 | 采样制冷片温度 | 10K NTC(B3950) + 10K 分压 → PB8(ADC 直接检测 0~3.6V) |
| 3 | 制冷片 PWM 控制 | PB4 = TIM3_CH1 → N-MOSFET(低边)开关 TEC,PWM 调占空比 |
| 4 | 留出 UART | PB6(USART1_TX)/PB7(USART1_RX),4 针排针引出(3V3/TX/RX/GND) |
| 5 | 进入 Download 模式 IO | PB3 作 BOOT 拉低按键(复位时按住 → 引导程序进 download 模式) |
| 6 | SWD 口 | PA4(SWDCLK,10K 下拉)/PA5(SWDIO,10K 上拉),4 针排针引出 |
| 7 | 三个 7 段数码管(IO 控制) | 3 位共阴数码管,8 段 + 3 位选 = 11 个 IO 直接动态扫描驱动 |
---
## 2. 系统框图
```
┌─────────────────────────────────────────────────┐
USB Type-C(5V,VBUS) ──┤ D1(SS34) ────────────── VSYS(≈4.7V) │
│ │ │ │
│ └─ Q2 P-MOS ─ TP4056 ── BAT+ (锂电 3.7V) │
│ ↑gate │ │
│ CHG_EN(PB0)→Q3 N-MOS 控制 D2(SS34)──┘ │
│ │ │
│ ┌───────────────┴─────┐ │
│ │ VSYS ── LDO3.3V ── VCC_3V3 (MCU/外设) │
│ │ VSYS ── TEC+ ──[TEC]── TEC- ── Q1 NMOS ─ GND │
│ │ ↑gate=TEC_PWM(PB4) │
└────────────────────────┴──────────────────────────────────────────┘
N32WB031:
PA0/PA1 ── 32MHz 晶振(XO32MM/XO32MP)
PA4/PA5 ── SWD
PB6/PB7 ── USART1 TX/RX
PB8 ── NTC 温度采样(ADC)
PB4 ── TEC PWM(TIM3_CH1)
PB0 ── CHG_EN(充电使能)
PB3 ── BOOT 下载模式按键
PA2/PA3/PA6/PB1/PB2/PB5/PA0/PA1 ── 8 条段选 SEG_A..DP
PB9/PB10/PB11 ── 3 条位选 DIG1..3
```
---
## 3. N32WB031 引脚分配(关键)
> 芯片引脚号见 STB 原理图 QFN32 封装(33 个焊盘,含底部 GND 大焊盘)。
### 3.1 固定/系统引脚
| 引脚 | 名称 | 电路连接 |
|---|---|---|
| 29 | XO32MM_OUT | 32MHz 晶振 Y2(8pF,±10ppm),C15=10pF |
| 30 | XO32MP_IN | 32MHz 晶振 Y2,C16=12pF |
| 22 | VCC | 3.3V;C13=1uF + C5=0.1uF(近脚)+ C4=10uF |
| 28 | VCCRF | 直连 VCC(R3 去掉);C9=1uF |
| 8 | VDD_FLASH | 仅退耦,不外接电源;C1=2.2uF + C2=0.1uF |
| 24 | VDCDC | C6=1uF;与 23(SWITCH) 间串 L3=4.7uH 功率电感 |
| 23 | SWITCH | 经 L3(4.7uH) 接 VDCDC(DCDC 供电模式) |
| 27 | VDCDCRF | 直连 VDCDC;C38=1uF |
| 26 | VDD_PA | RF 偏置;L1=1.6nH + C18=1uF + C10=47pF |
| 25 | RFIOP | 天线匹配:C12=1.2pF/C8=1.2pF/L2=1nH/C14=10pF + ANT |
| 33 | VSS | 底部大焊盘,9 过孔接地 |
| 3 | RESET | 10K 上拉到 3.3V + 100nF 到 GND + 复位按键 |
### 3.2 功能引脚分配
| 引脚 | 功能 | 方向 | 复用/说明 |
|---|---|---|---|
| PA4 (5) | SWDCLK | — | **10K 下拉**(硬件指南要求) |
| PA5 (6) | SWDIO | — | **10K 上拉**(硬件指南要求) |
| PB6 (16) | USART1_TX | 输出 | AF4 |
| PB7 (17) | USART1_RX | 输入 | AF4 |
| PB8 (9) | NTC_ADC(制冷片温度) | 模拟输入 | ADC 直接检测,0~3.6V,360KΩ |
| PB4 (14) | TEC_PWM | 输出 | TIM3_CH1(AF2),接 N-MOSFET 栅极 |
| PB0 (4) | CHG_EN(充电使能) | 输出 | 高=充电使能,经 Q3 控制 Q2 P-MOS 栅极 |
| PB3 (13) | BOOT_DL(下载模式按键) | 输入 | 按键到 GND,10K 上拉;复位时按住=进 download |
| PA2 (1) | SEG_A | 输出 | 数码管段 A |
| PA3 (2) | SEG_B | 输出 | 数码管段 B |
| PA6 (7) | SEG_C | 输出 | 数码管段 C |
| PB1 (11) | SEG_D | 输出 | 数码管段 D |
| PB2 (12) | SEG_E | 输出 | 数码管段 E |
| PB5 (15) | SEG_F | 输出 | 数码管段 F |
| PA0 (31) | SEG_G | 输出 | 数码管段 G |
| PA1 (32) | SEG_DP | 输出 | 小数点 DP |
| PB9 (10) | DIG1(位选 1) | 输出 | 经 NPN 驱动数码管第 1 位阴极 |
| PB10 (18) | DIG2(位选 2) | 输出 | 经 NPN 驱动数码管第 2 位阴极 |
| PB11 (20) | DIG3(位选 3) | 输出 | 经 NPN 驱动数码管第 3 位阴极 |
| PB12 (19) | 备用 | — | 预留(可作充电状态 LED / 蜂鸣器) |
| PB13 (21) | 备用 | — | 预留 |
> 引脚占用:外设共 15 个 IO + SWD/UART 4 个 = 19;芯片 GPIO 共 21(PA0~PA6 7 个 + PB0~PB13 14 个),
> 剩余 PB12、PB13 两个 IO 备用。PA0/PA1 为独立 GPIO(32MHz 晶振在专用 29/30 脚),可放心作段选。
---
## 4. 各功能模块电路
### 4.1 电源输入 + 充电(电源充电可控)
```
VBUS(5V) ──┬── D1(SS34) ────────────► VSYS
│
└── Q2(AO3401 P-MOS) 源极
│漏极
├── TP4056 VCC(4) ──┬─ BAT(5) ──► BAT+ (锂电 3.7V)
│ ├─ PROG(2) ── Rprog=1.2K → GND (≈1A 充电电流)
│ ├─ TEMP(1) ── GND (不使用温度检测)
│ ├─ CHRG(7) ── LED_RED (充电指示,可选)
│ ├─ STDBY(6)── LED_GREEN(充满指示,可选)
│ └─ CE(8) ── GND (常使能,使能由 Q2 控制)
│
Q2 栅极 ──┬── R_pu 10K → VBUS
└── Q3(2N7002 N-MOS) 漏极
│栅极 ← Rg 10K ← CHG_EN(PB0)
│源极 → GND
BAT+ ── D2(SS34) ─────────────► VSYS (电池供电通路,与 VBUS 二选一/自动切换)
VSYS ── C_bulk 100uF + C 100nF → GND
VSYS ── U_LDO(ME6211C33) ──► VCC_3V3 ── C 1uF + C 100nF → GND
```
要点:
- **充电可控**:`CHG_EN` 高电平 → Q3 导通 → Q2(P-MOS) 栅极拉低 → Q2 导通 → 充电开启;
低电平 → Q2 关断 → 切断充电(可在大电流制冷时关断充电,保护弱 USB 电源)。
- **D1/D2 肖特基 OR-ing**:插 USB 时系统走 5V(≈4.7V),拔掉后自动切到电池(≈3.4V),无切换死区。
- TP4056 为 1A 线性锂电充电器;充电电流 `I = 1000 / Rprog`,Rprog=1.2K ≈ 0.83A(保守,避免与 TEC 抢电)。
- VCC_3V3 用低压差 LDO(ME6211C33,dropout≈40mV@100mA);电池低压到 3.2V 时 MCU 仍可工作(N32WB031 VCC 1.8~3.6V)。
### 4.2 制冷片 TEC PWM 控制
```
VSYS ── C1 100uF ── GND
VSYS ──┬─────────────► TEC+ (制冷片正极)
│
└── D_fw(SS34) 阴极
│阳极 ─────────► TEC- (制冷片负极)
TEC- ──┬── Q1(AO3400/IRLML6344 N-MOS) 漏极
│ │栅极 ← Rg 22Ω ← TEC_PWM(PB4)
│ │栅极 ── R_pd 10K → GND
│ │源极 → GND
└── C2 100uF(可选,平滑 PWM) ── GND
```
要点:
- **低边 N-MOS 开关**:PB4 输出 PWM(TIM3_CH1),占空比 0~100% 调节制冷功率。
- Q1 需耐压≥20V、导通电阻低、栅极阈值≤2V(3.3V 逻辑直接驱动)。AO3400/IRLML6244/SI2300 均可,按 TEC 峰值电流(1~3A)选型。
- **D_fw 续流肖特基**(SS34)跨 TEC,泄放导线/接线电感反峰,保护 MOS。
- C2(100uF)可选:平滑 PWM 纹波、降低 TEC 热冲击(推荐加,PWM 频率 10~50kHz)。
- 若需更平滑直流(延长 TEC 寿命),可在 Q1 与 TEC 间串 10~22uH 电感 + 大电容做 LC 滤波,代价是体积。
### 4.3 制冷片温度采样(NTC)
```
VCC_3V3 ── R_ref 10K(1%) ──┬──► PB8(NTC_ADC)
│
NTC 10K B3950
│
GND
PB8 ── C_filt 100nF ── GND (抗噪)
```
要点:
- 分压点电压 `V = 3.3 × R_NTC / (R_ref + R_NTC)`。10K/10K 在 25℃ 时为 1.65V,全温区落在 0~3.6V,配合 PB8 直接检测(输入阻抗 360KΩ,分压源内阻 ~5KΩ,无精度损失)。
- NTC 推荐 **10K B3950**(如 NCP18XH103F03RB / 常规 10K 3950 玻璃封装,贴制冷片铝板或冷面)。
- 固件用查表(Steinhart-Hart 或 B 值公式)换算温度;`app_info.c` 现有内部温度/电压 ADC 逻辑可复用,新增 PB8 单端采样通道。
### 4.4 三数码管显示(IO 直接动态扫描)
```
8 条段选(MCU 输出,各串 330Ω 限流):
SEG_A(PA2) ── 330Ω ── DS1/DS2/DS3 的 A 阳极并联
SEG_B(PA3) ── 330Ω ── ... B
SEG_C(PA6) ── 330Ω ── ... C
SEG_D(PB1) ── 330Ω ── ... D
SEG_E(PB2) ── 330Ω ── ... E
SEG_F(PB5) ── 330Ω ── ... F
SEG_G(PA0) ── 330Ω ── ... G
SEG_DP(PA1)── 330Ω ── ... DP
3 条位选(MCU 输出 → NPN 基极 → 共阴阴极到地):
DIG1(PB9) ── 1K ── Q_d1(MMBT3904) 基极,集电极→DS1 公共阴极,发射极→GND
DIG2(PB10)── 1K ── Q_d2 ... → DS2 公共阴极
DIG3(PB11)── 1K ── Q_d3 ... → DS3 公共阴极
```
要点:
- **共阴数码管**(3 位,如 0.36/0.56 英寸红色共阴)。段选由 MCU 直接拉高(每段 ~4mA),位选经 NPN(MMBT3904)灌电流(最多 8 段×4mA≈32mA,NPN 足够)。
- 动态扫描:每位点亮 1/3 周期(如 2~3ms),三位轮询,刷新率 ≥100Hz 无闪烁。
- 显示内容例:温度 `37.5`(第 2 位点 DP),或 `25`℃。段码表由固件按 `SEG_A..DP` 位序生成。
- 若希望少占 IO,可改用 74HC595(3 线)或 TM1650(2 线 I2C)驱动,但用户要求「IO 管脚控制」,本方案用 11 个 IO 直驱。
### 4.5 UART / SWD / Download 模式接口
- **UART(4P 排针)**:`3V3 | PB6_TX | PB7_RX | GND`,460800 8N1(与固件一致)。外部用 3.3V TTL USB-UART 小板。
- **SWD(4P 排针)**:`3V3 | PA4_SWDCLK | PA5_SWDIO | GND`;板上 PA4 加 10K 下拉、PA5 加 10K 上拉。
- **Download 模式(按键)**:`PB3` 串 10K 上拉到 3.3V,按键一端接 PB3、另一端接 GND。
- 复位/上电时按住该键(PB3=低),Bootloader 检测后进入 download 模式(UART 升级)。
- **需固件配合**:`Boot/src` 引导代码增加「复位后读 PB3,低电平则进入 download」分支(当前 Boot V1.01.00 仅靠 USART1 2s 回车窗口 / 无有效镜像进入,需补这一条 GPIO 判定)。
---
## 5. BOM(关键器件)
| 位号 | 器件 | 参数/型号 | 封装 | 数量 |
|---|---|---|---|---|
| U1 | N32WB031 | BLE SoC | QFN32 | 1 |
| U2 | TP4056 | 1A 锂电充电 IC | SOP8/ESOP8 | 1 |
| U3 | ME6211C33 | 3.3V 低压差 LDO | SOT23-5 | 1 |
| Y2 | 32MHz 晶振 | 8pF, ±10ppm | 1612(4P) | 1 |
| L3 | 4.7uH 功率电感 | RDC≤250mΩ, 800mA | 0805 | 1 |
| L1 | 1.6nH 高频电感 | SDCL1005C1N6STDF | 0402 | 1 |
| L2 | 1nH 高频电感 | RF 匹配 | 0402 | 1 |
| Q1 | N-MOS | 制冷片开关 AO3400/IRLML6244 | SOT23 | 1 |
| Q2 | P-MOS | 充电开关 AO3401 | SOT23 | 1 |
| Q3 | N-MOS | 充电开关驱动 2N7002 | SOT23 | 1 |
| Q_d1..3 | NPN | 位选驱动 MMBT3904 | SOT23 | 3 |
| D1,D2,D_fw | 肖特基 | SS34(3A/40V) | SMA | 3 |
| NTC | NTC 热敏 | 10K B3950 1% | 0603/玻璃 | 1 |
| R_ref | 电阻 | 10K 1% | 0402 | 1 |
| Rprog | 电阻 | 1.2K 1% | 0402 | 1 |
| 段限流 | 电阻 | 330Ω | 0402 | 8 |
| 位选基极 | 电阻 | 1K | 0402 | 3 |
| 栅极/上拉 | 电阻 | 10K / 22Ω / 1K 若干 | 0402 | ~10 |
| DS1..3 | 数码管 | 3 位共阴红色 | 0.36/0.56" | 1(3位) |
| J | 排针 | 2×4P UART+SWD、电池、TEC、NTC | 2.54mm | 若干 |
| 电容 | 退耦/滤波 | 见下表 | 0402/0603/0805 | 若干 |
退耦电容(按硬件指南最小系统):1uF×4、0.1uF×12、2.2uF×1、4.7uF×1、10uF×5、10pF×2、12pF×2、47pF×1;另加电源 100uF 电解×1、100nF×若干。
---
## 6. 固件兼容性说明(重要)
| 项 | 现状 | 需要的改动 |
|---|---|---|
| UART | 已是 PB6/PB7 (AF4) | 无 |
| SWD | PA4/PA5 | 无(注意 PA4 下拉/PA5 上拉硬件接法) |
| 32.768K 晶振 | 固件用内部 LSI,未用 LSE | **本设计不焊 32.768K 晶振**,PB8/PB9 复用为 ADC/位选 |
| 制冷片温度 | 固件现用内部温度/电压 ADC | 新增 PB8 单端 NTC 采样 + 查表换算(`app_info.c` 扩展) |
| TEC PWM | 无 | 新增 TIM3_CH1(PB4) PWM 输出 + 占空比控制命令(`appset` 增项) |
| 充电使能 | 无 | 新增 PB0 GPIO 输出控制 CHG_EN |
| 下载模式按键 | Boot 仅 USART 窗口/无镜像进入 | `Boot/src` 增 PB3 读引脚判定进入 download |
| 数码管 | 无 | 新增定时器中断动态扫描 + 段码表(或复用 LED 任务) |
---
## 7. PCB Layout 要点(摘自硬件指南 V1.4)
- **RFIOP(25)**:走线短而直、50Ω、四周包地、下方不走线;天线周边 ≥3mm 净空;天线口建议加 TVS 防静电。
- **32MHz 晶振(29/30)**:两条走线短且等长、四周包地;下方(尤其 VDCDCRF 走线)不走线;远离大电流/高速线。
- **芯片 GND**:底部大焊盘,中心 0.6/0.4mm + 四周 8×0.5/0.3mm 共 9 个过孔接地。
- **电源**:走线粗短,小电容近芯片脚;VDCDC(24) 与 SWITCH(23) 间的 4.7uH 电感贴近放置。
- **TEC 大电流**:VSYS/TEC-/MOS 走线加宽(1A 每 1mm 线宽经验值),MOS 与肖特基尽量贴近 TEC 端子。
---
## 8. 待确认/可选
1. **电池规格**(容量/尺寸:软包 or 18650)→ 决定 TP4056 充电电流与结构。
2. **TEC 规格**(TEC1-03103 等)→ 决定 Q1 选型与是否加 LC 平滑。
3. **数码管尺寸/颜色**(0.28/0.36/0.56 英寸、红/白)→ 决定限流电阻与结构开窗。
4. 是否显示 **°C 符号/小数点**(本设计已预留 DP 段)。
5. 是否需要 **充电状态灯**(可占用备用 PB12/PB13 + TP4056 CHRG/STDBY)。
---
*文档生成:基于 N32WB031 STB V1.3 原理图 + 硬件设计指南 V1.4 + 用户手册 V1.5(引脚 AF 表/ADC 通道/时钟)。*