第二章 硬件选型与原理图设计:主控芯片选型(STM32/ESP32)、电池充电管理芯片(TP4056/MAX17320)、电压电流采样电路

各位同学,欢迎来到第二章。这一章我们聊聊硬件选型。

说实话,很多初学者一上来就画原理图,结果画到一半发现芯片买不到,或者功能根本实现不了。我当年也吃过这个亏——选了个冷门芯片,等了两周货,项目差点黄了。所以,选型这一步,咱们得认真对待。

2.1 主控芯片选型:STM32 vs ESP32

万用表的核心是主控。它负责读取数据、处理逻辑、控制显示。目前主流方案就两个:STM32 和 ESP32。怎么选?我直接说结论。

核心判断标准:

  • 如果你只需要做纯万用表功能(测电压、电流、电阻),不需要联网——选 STM32。
  • 如果你想把数据传到手机、上云、做 IoT 万用表——选 ESP32。

为什么这么分?我一个个讲。

2.1.1 STM32 方案

STM32 是意法半导体的王牌。我个人习惯用 STM32F103C8T6,也就是大家常说的「蓝 pill」核心板。这芯片便宜、稳定、资料多。

优点:

  • 12位 ADC,精度够用。配合外部基准,能到 0.1% 精度。
  • 低功耗模式做得好。电池供电时,待机电流能到微安级。
  • 生态成熟。你遇到的所有问题,网上基本都有答案。

缺点:

  • 没有 WiFi/BLE。想联网得外挂模块。
  • Flash 和 RAM 偏小。复杂 UI 会吃力。

我在项目中遇到过一个问题:用 STM32 做万用表,ADC 采样时总跳变。查了半天,发现是电源纹波太大。后来加了 LC 滤波,问题解决。嗯,这里要注意——STM32 的 ADC 对电源质量很敏感。

2.1.2 ESP32 方案

ESP32 是乐鑫的明星产品。它自带 WiFi 和蓝牙,价格还比 STM32 便宜。你想想看,这性价比有多高。

优点:

  • 双核处理器,主频 240MHz。跑 FreeRTOS 很轻松。
  • 内置 WiFi/BLE。数据直接上传手机 App。
  • 12位 SAR ADC,采样率能到 200ksps。

缺点:

  • ADC 线性度一般。做高精度测量需要校准。
  • 功耗偏高。WiFi 开启时电流能到 80mA。

我曾经用 ESP32 做过一个远程监控万用表。客户要求电池续航 30 天。我一开始没注意功耗,结果 3 天就没电了。后来加了深度睡眠模式,WiFi 定时唤醒,才勉强达标。避坑指南:用 ESP32 做电池设备,一定要算好功耗预算。

对比项 STM32F103C8T6 ESP32
价格(批量) 约 8 元 约 12 元
ADC 精度 优秀(需外部基准) 一般(需校准)
功耗 低(待机 2μA) 高(WiFi 开启 80mA)
联网能力 无(需外挂) 内置 WiFi/BLE
开发难度 中等 中等

我的建议:课程项目用 STM32。因为我们要做高精度测量,STM32 的 ADC 更靠谱。如果你对 IoT 感兴趣,可以课后自己换成 ESP32 试试。

2.2 电池充电管理芯片:TP4056 vs MAX17320

万用表用锂电池供电,充电管理芯片是必须的。选型时主要看三点:充电电流、安全保护、电量监测。

2.2.1 TP4056——入门首选

TP4056 是国产芯片,价格便宜到离谱——几毛钱一片。它支持 1A 充电电流,带恒流恒压功能。

优点:

  • 外围电路简单。只需要几个电阻电容。
  • 充电状态指示。CHRG 和 STDBY 引脚直接接 LED。
  • 价格低。批量采购不到 0.5 元。

缺点:

  • 没有电量监测功能。你不知道电池还剩多少电。
  • 没有过放保护。需要外接 DW01 保护板。
  • 充电电流固定。不能动态调整。

我记得第一次用 TP4056 时,觉得它太简单了。结果忘了加保护板,电池过放了一次,直接报废。避坑指南:用 TP4056 一定要配 DW01 保护板,否则电池寿命会缩短。

2.2.2 MAX17320——高端方案

MAX17320 是美信(Maxim)的旗舰级芯片。它集成了充电管理、电量计、保护电路于一体。

优点:

  • 内置 ModelGauge m5 电量计。精度能到 1%。
  • 支持 1-4 节电池串联。
  • 带过压、过流、过温保护。
  • I2C 接口。主控可以直接读取电量。

缺点:

  • 价格贵。一片要 20 多元。
  • 配置复杂。需要烧录配置文件。
  • 封装小。手工焊接有难度。

说实话,MAX17320 是好东西,但课程项目用有点浪费。我建议:

选型建议:

  • 入门项目:TP4056 + DW01 保护板。成本低,够用。
  • 进阶项目:MAX17320。适合做高端万用表。
  • 课程项目:TP4056。因为我们要把预算留给 ADC 和运放。

2.3 电压电流采样电路

采样电路是万用表的核心。精度好不好,全看这里。

2.3.1 电压采样

电压采样用电阻分压。原理很简单:

Vout = Vin * R2 / (R1 + R2)

但实际设计时要注意几点:

  • 分压电阻要用高精度(0.1% 或更好)。
  • 输入阻抗要高。否则会拉低被测电压。
  • 加 TVS 管保护。防止过压烧坏 ADC。

我习惯用 10MΩ + 1MΩ 的分压网络。这样输入阻抗 11MΩ,对被测电路影响很小。分压比是 1:11,最大测量电压 33V(3.3V * 11)。

注意:分压电阻的耐压值要够。0805 封装的电阻耐压 150V,1206 封装能到 200V。测高压时别用 0402 封装,会打火。

2.3.2 电流采样

电流采样有两种方式:

  • 低端采样:采样电阻放在负载和 GND 之间。简单,但会引入地回路。
  • 高端采样:采样电阻放在电源和负载之间。需要差分运放,但精度更高。

我推荐用高端采样。虽然电路复杂一点,但精度好很多。具体电路:

采样电阻 Rs = 0.1Ω
差分运放 INA180
增益 = 20
输出电压 Vout = I * Rs * 20
例如:1A 电流 -> Vout = 1 * 0.1 * 20 = 2V

我曾经用低端采样做过一个项目。结果发现地线有 0.5V 压降,导致测量误差很大。后来换成高端采样,问题解决。嗯,这里要注意——地回路问题很容易被忽略。

2.3.3 采样电路保护

万用表经常要测高压、大电流。保护电路不能省。

  • 输入端加 PTC 自恢复保险丝。过流时自动断开。
  • 加 TVS 管。钳位电压选 5V 或 3.3V。
  • 运放输入端加限流电阻。防止浪涌电流。

我的经验:采样电路调试时,先用信号发生器模拟输入。别直接上高压。我见过有人直接测 220V,结果示波器探头炸了。安全第一。

2.4 本章小结

这一章我们聊了三个核心选型:

  • 主控:STM32 适合纯万用表,ESP32 适合 IoT 万用表。
  • 充电管理:TP4056 入门,MAX17320 高端。
  • 采样电路:电压用分压,电流用高端采样。

下一章我们开始画原理图。我会带着大家一步步把电路搭起来。到时候见。

课后思考:如果你要做一款支持蓝牙的万用表,主控选 STM32 还是 ESP32?为什么?