2、核心器件选型:主控MCU、ADC芯片、前端模拟开关
好,咱们进入第二章。这一章我打算聊聊核心器件的选型。说白了,就是决定这块万用表用谁的“大脑”、用谁的“眼睛”,以及怎么把信号“喂”进去。
我个人习惯,在画原理图之前,先把这三样东西定死。因为它们的引脚、封装、供电要求,直接决定了你后面PCB的布局和走线。选错了,后面全得重来,那滋味可不好受。
2.1 主控MCU:STM32还是ESP32?
很多朋友一上来就纠结:用STM32还是ESP32?我的建议是,先别急着站队,先看需求。
STM32F103系列,我用了快十年了。它最大的优点是稳定、资料多、外设丰富。你想想看,一个万用表需要什么?需要ADC采样、需要SPI/I2C通信、需要驱动LCD屏幕、需要处理按键中断。这些STM32的硬件资源几乎都是现成的,而且库函数写得非常成熟。
我在项目中遇到过用STM32做高精度数据采集的场景。当时需要同时采集4路模拟信号,还要实时显示波形。STM32的DMA配合定时器,几乎不占CPU资源,跑起来非常稳。
ESP32呢?它的强项是Wi-Fi和蓝牙。如果你的万用表需要联网、需要手机APP控制、需要上传数据到云端,那ESP32是首选。但要注意,ESP32的ADC精度一般,内部参考电压也不太准。做万用表的话,我建议只用它做控制和通信,模拟采样部分交给外部ADC芯片。
嗯,这里要注意一点:ESP32的功耗比STM32高不少。如果你打算做便携式、电池供电的万用表,STM32的低功耗模式会更友好。
我的选型结论:
- 纯手持、高精度、低功耗 → STM32F103(性价比之王)
- 需要联网、物联网功能、远程监控 → ESP32(但外挂高精度ADC)
- 预算充足、追求极致性能 → STM32H7(带硬件浮点运算,适合FFT分析)
2.2 ADC芯片选型:ADS1115 vs AD7190
ADC是万用表的“眼睛”。眼睛好不好,直接决定了你测电压准不准。
ADS1115,我估计很多朋友都用过。它是个16位的Δ-Σ ADC,内置参考电压,I2C接口,4个单端通道或者2个差分通道。优点是小巧、便宜、好焊接。缺点也很明显:采样率最高只有860 SPS,而且噪声性能一般。
我记得有一次,我用ADS1115做一款简易万用表,测1V以下的电压时,最后一位数字总是跳来跳去。后来查了数据手册才发现,它的有效分辨率在高速模式下只有12位左右。所以,ADS1115适合做入门级、三位半的万用表。
AD7190就不一样了。这是一颗24位的Δ-Σ ADC,自带可编程增益放大器(PGA),内部温度传感器,还有专门的参考电压输入。它的噪声极低,在增益为128时,峰峰值噪声只有几十纳伏。说白了,这就是专业万用表才会用的芯片。
我做过一个项目,要求测量微伏级别的信号。当时试了好几种ADC,最后选了AD7190。配合外部高精度参考电压,实测分辨率能达到0.1μV。当然,代价是价格贵了10倍,而且封装是TSSOP,手工焊接有点费劲。
| 参数 | ADS1115 | AD7190 |
|---|---|---|
| 分辨率 | 16位 | 24位 |
| 采样率 | 最高860 SPS | 最高4.8 kSPS |
| 内置PGA | 无 | 有(增益1~128) |
| 接口 | I2C | SPI |
| 参考电压 | 内置(精度一般) | 外部(可接高精度基准) |
| 典型应用 | 三位半万用表、传感器采集 | 六位半万用表、精密测量 |
| 价格 | 约5元 | 约50元 |
小提示:如果你选AD7190,记得在PCB布局时,把模拟地和数字地严格分开。我见过有人把AD7190的AGND和DGND直接连在一起,结果噪声大了好几倍。嗯,这个坑我踩过。
2.3 前端模拟开关选型
万用表要测电压、电流、电阻,还要切换量程。这些切换工作,靠的就是前端模拟开关。
模拟开关的核心指标有三个:导通电阻、漏电流、带宽。
导通电阻越小越好。你想想看,如果开关本身有100Ω的电阻,测低阻值电阻时,误差会非常大。我一般选导通电阻在10Ω以下的型号。
漏电流也很关键。测高阻值电阻(比如10MΩ)时,开关的漏电流如果达到纳安级别,就会引入明显的测量误差。我曾经用过一个便宜的模拟开关,漏电流在高温下飙到了几十纳安,测出来的电阻值完全没法看。
带宽决定了你能测多高频率的信号。对于直流万用表,带宽要求不高,几百kHz就够了。但如果你要做交流电压测量,带宽至少要到1MHz以上。
常用的型号有:
- CD4051:经典8选1模拟开关,导通电阻约100Ω,适合低速、低精度场景。优点是便宜、好买。
- ADG708:8选1,导通电阻约4Ω,漏电流极低(pA级),带宽20MHz。我比较推荐这款,性能均衡。
- MAX4051:与CD4051引脚兼容,但导通电阻更低(约30Ω),适合替换升级。
注意事项:模拟开关的电源电压一定要和输入信号范围匹配。比如你用的是±5V供电的开关,输入信号就不能超过这个范围。否则,开关内部的ESD保护二极管会导通,轻则测量不准,重则烧毁芯片。我曾经因为没注意这个,烧了三个ADG708,心疼啊。
好了,核心器件选型就聊到这里。下一章,咱们开始画原理图,把这三个芯片连起来。到时候我会详细讲每个引脚怎么接、去耦电容怎么放、模拟地怎么处理。嗯,那才是真正动手的时候。