MCP3901A0-E/ML选型指南:24位模拟前端硬边界与落地验证
2026/9/18 10:22:01 网站建设 项目流程

上个月帮朋友过一遍电能计量模块的 BOM,他指着MCP3901A0-E/ML问我:这颗料 24 位、双通道、带 PGA、内部还带基准,看着什么都有,为什么不直接定下来?我反问他三个问题——最大电流多少、分流器打算用多大、产品要过哪个准确度等级——他一个都没答上来。这就是24位模拟前端选型里最典型的一幕:把宣传页上的分辨率当成了精度,把器件参数当成了方案参数。

MCP3901A0-E/ML是一颗双通道、同步采样的 24 位 delta-sigma 模拟前端,主打电压+电流同时测量的场景,比如单相电能计量、功率监测、智能插座、UPS 与工业电源的能耗采集。它确实好用,但它不是"填进去就出数"的模块。真正决定这个方案能不能落地的,从来不是那几个漂亮的标称参数,而是一串必须提前锁死的边界条件:信号幅度、数据率、基准来源、时钟、电源域、校准方式。这篇就按我自己的选型习惯,把需要逐条核对的条件摊开讲清楚,适合准备上手这类 AFE 的硬件工程师和刚转做计量产品的嵌入式同学。

1. 把 MCP3901A0-E/ML 这个料号逐段拆开看

1.1 标称 24 位,实际有效位得自己算

这是我在所有选型评审里第一个要纠正的认知。器件是 24 位输出字长没错,但输出字长和有效位数是两码事。数据手册给的 SINAD 典型值落在 91 dB 这个量级,而有效位数和 SINAD 之间有一个固定的换算关系:

ENOB = (SINAD - 1.76) / 6.02 = (91 - 1.76) / 6.02 ≈ 14.8 位

也就是说,在最理想的配置下,你真正能拿到的有效位大概在 15 位上下,剩下的低位基本是噪声在跳。这不是这颗芯片的问题,是所有 delta-sigma 架构的共同特征,只是 24 位这个数字太容易让人产生错觉。

那为什么还要做 24 位输出?因为你的信号根本不会占满整个量程。举个常见情形:分流器上来的电流信号只用到满量程的百分之几,分压通道的电压信号也只用到一半左右,此时"多出来的位"就是留给小信号的动态余量。另外,内部数字滤波、后续的相位补偿和平均运算都需要中间结果的位宽余量,不然运算过程本身就会引入截断误差。

所以核对这一条的正确问法是:在我要用的数据率和增益档位下,噪声底折合到输入端是多少伏,对应到我的最小可测电流还剩几位。这个必须翻到数据手册的噪声/有效位数表逐点去查,宣传页上的 24 位对这个问题的回答是零。

1.2 A0、E、/ML:三个互不相干的约束叠在一起

很多人把料号后缀当成装饰,实际上这三个字段各自锁死了一件事。

A0 是器件版本标识。它对应一份特定的数据手册和一份特定的勘误表(errata)。IC 厂在流片后发现问题通常会出新的版本号,寄存器默认值、个别时序参数都可能有差异。所以最忌讳的做法是:设计时随手下载了一份通用版数据手册,采购时按另一份老规格书去问货。正确姿势是把MCP3901A0这个完整器件号拿去官网检索,把对应的 DS 和 errata 都下下来,errata 里每一条都过一遍,看看有没有踩到你的用法。

E 是温度等级。如果我没记错,这一档对应的是扩展工业温度范围,大概 -40 到 +125°C 这个区间。要不要用 E,取决于你的产品装在哪:室内插座类产品,普通工业级就够,选 E 是白花钱;户外表计、光伏侧的采集盒、工业配电柜内的模块,环境温度加上机内温升很容易顶到 70°C 以上,这时候 E 等级不是可选项而是必须项,而且你还要按最高结温去核算功耗。

/ML 是封装代码,通常指 QFN 这类无引脚封装。具体引脚数和封装尺寸以手册的封装信息页为准,Microchip 这颗器件一般提供 SSOP 和 QFN 两种。QFN 的优点是寄生电感小、占板面积小、散热焊盘直连地平面后热阻低,对模拟前端的噪声表现友好;缺点是必须过回流焊、必须有散热焊盘、返修基本靠热风台加底部预热,手工焊几乎不可能。

提示:样机阶段用 SSOP 手焊调试、量产切 QFN 省成本,这个操作本身没问题,但切换时必须把接地和去耦重新做一遍。我见过太多"换了封装噪声突然变大"的案例,最后查出来都是 QFN 的散热焊盘没接实地,或者去耦电容离引脚远了 3 毫米。

1.3 先判断它该不该出现在你的方案里

在讨论参数之前,先做一个更根本的判断。MCP3901A0 的定位非常明确:两路同步采样的 24 位 AFE,为"一路电压 + 一路电流"这类成对信号设计。它跟挑开关电源电感、挑运放是一个道理——先锁边界条件,再看参数表,顺序反了就是白干。

场景特征是否适合原因
单相电压+电流同步测量适合双通道本就是为这个设计的
需要 8 路以上模拟通道不适合通道数不够,要换多通道 AFE
需要输入侧电气隔离不适合无隔离,得外挂隔离器件或改方案
需要谐波分析、波形录波勉强数据率上限有限,要评估带宽是否够
需要做三相计量不适合三相至少 6 个通道,直接上三相专用芯片
直流小信号精密采集视情况要重新评估失调和温漂指标

这张表我建议每个项目都填一遍,填完再去看数据手册,能省掉大量无效的参数对比。

2. 模拟前端选型的五个硬边界

2.1 输入信号幅度与 PGA 档位能不能对上

器件内部的 PGA 提供一组离散的增益档位,大致是 1、2、4、8、16、32 这几挡。这个设计的意义在于:让不同幅度的输入信号都能被推到接近满量程的位置,从而充分利用 ADC 的动态范围。

这里有一个反直觉的点:增益越高,噪声表现往往越好。原因是 ADC 本身的量化噪声和输入级噪声折合到输入端时会被增益除一次,增益翻倍,等效输入噪声就减半。所以正确的做法不是"信号小就加增益"这么简单,而是要让"信号峰值 × 增益 ≈ 满量程的 60%~80%"。

留 20%~40% 的余量是为了过载。电能计量场景里,负载经常有 1.2 倍甚至 2 倍的短时冲击电流,比如电机启动、开关电源上电瞬间的浪涌。如果你把信号顶到满量程的 95%,一次正常不过的浪涌就让 ADC 削顶了,采样数据直接失真,后续所有计算都是错的。我一般按最大工作电流的 1.5 倍去算峰值,再倒推增益档位。

2.2 数据率和有效位是一对反向关系

delta-sigma ADC 的核心机制是过采样加数字滤波:采样率越高、过采样比(OSR)越大,噪声被整形和滤除得越干净,有效位数越高。反过来,如果你把输出数据率往上提,OSR 就往下掉,有效位数必然下降。

所以选型时必须问自己一个问题:我真正需要多快的刷新率?电能计量的常规做法是每秒钟出几百到几千个采样点,做累加和均方根计算就足够了。这时候你可以把数据率压得很低,换取最高的有效位数。如果你要做波形显示或者谐波分析,那数据率就得上到几十千赫兹,此时要重新看噪声表,可能有效位只剩十二三位。

很多项目的坑就出在这里:方案评审时按低速档的有效位做精度预算,实际写代码时为了"数据平滑"把数据率开到了最高档,结果噪声比预期大了一截,误差怎么调都调不下来。

2.3 基准源:初始精度不重要,温漂才重要

这颗器件内部带了一个 2.4V 量级的基准源,手册里标称的温漂量级大概在 ±15 ppm/°C 附近。这是它很吸引人的一个地方——省掉一颗外部基准芯片,省掉一笔 BOM 成本和一块布板面积。

但这里要算一笔账,才能判断内部基准够不够用。

初始精度通常在百分之一二这个量级,看着很吓人,但它是个固定误差,产线校准时一次就能标定掉。真正吃不掉的是温漂。假设温漂是 ±15 ppm/°C,产品工作温区跨越 50°C,那么基准带来的增益偏差大约是:

15 ppm/°C × 50°C = 750 ppm = 0.075%

单看这个数字完全可以接受。但注意,功率是电压和电流的乘积,而两个通道都用同一个基准做参考,于是基准的相对误差在乘积里会被放大一次:

0.075% × 2 = 0.15%

0.15% 对 0.5 级或 1 级表来说是能接受的量级,这就是为什么大量设计直接用内部基准、不加外部器件的原因。但如果你要做 0.2S 级甚至更高精度,这个量级就开始吃掉误差预算了,必须换外部低漂基准,并且要注意外部基准的噪声和驱动能力——基准脚上的噪声会直接调制到 ADC 输出上,没有任何滤波环节能帮你挡住。

另一个实际考虑是:内部基准是否同时给两个通道供电。如果手册里基准是共用的(通常如此),那么两个通道的增益误差是相关的,这在功率计算里是好事,在做电压、电流独立测量输出时反而是个麻烦。

2.4 主时钟与双通道同步性

这颗器件需要一个外部主时钟,一般从 MCLK 引脚送进去,可以接晶振,也可以由 MCU 的时钟输出引脚驱动。时钟频率和可配置的数据率之间有固定的分频关系,具体范围必须查手册的时钟与时序章节,别凭经验猜。

时钟这件事有两个容易被忽略的点。第一是时钟抖动:delta-sigma 调制器对采样时钟的抖动非常敏感,时钟上的相位噪声会直接转化成采样误差。如果用 MCU 输出时钟去驱动,最好确认那个输出是专用时钟输出而不是通用 GPIO 翻转,后者的抖动可能差一个数量级。第二是时钟来源与数据读取的同步:如果你的 MCU 主频和 AFE 的 MCLK 来自不同的源,两边会缓慢漂移,长时间累加时可能出现采样点丢失或重复,做功率累加时这会体现为缓慢漂移的误差。

双通道同步采样是这颗芯片的核心价值。电压和电流通道如果是交替采样而不是同时采样,两者之间存在一个采样时刻差,在功率计算中就等价于一个相位误差。50 Hz 下 1 毫秒的时间差对应 18 度的相移,功率误差在低功率因数负载下会大到不可接受。所以核对这一条时,一定要确认手册明确写了两个通道是同时采样的。

2.5 电源域、共模与输入偏置

器件通常提供独立的模拟电源和数字电源引脚,模拟侧工作在 5V 档,数字侧的范围更宽一些,可以和常见的 3.3V 逻辑直接对接。分开供电的好处是数字开关噪声不会通过电源耦合进模拟前端,代价是你得认真做两套去耦。

共模范围是另一个必须核对的项。模拟输入是差分的,但差分输入也有共模电压限制。在分流器方案里,分流器两端都在电源回路中浮动,共模电压可能很高;在电阻分压方案里,分压点的共模是地电位,就很简单。所以选型阶段就要把输入网络的共模电平算出来,对着手册的共模范围确认一遍,否则可能出现"接上就满量程"的情况——那不是芯片坏了,是共模超范围了。

3. 分流器、增益、噪声:一组纸上能算完的联立方程

3.1 从最大电流反推分流电阻

分流器选型其实是一道有唯一答案的算术题,只是大多数人算错了方向。正确的顺序是:

  1. 确定最大工作电流 I_max 和过载倍数 k(通常取 1.2~2)
  2. 确定你打算使用的增益档位 G 和该档位的满量程差分输入 V_fs
  3. 让峰值信号落在满量程的 60%~80%,反推分流电阻
R_shunt = (0.7 × V_fs) / (G × I_max × k × √2)

注意这里交流信号要用峰值而不是有效值参与计算,这是新手最常犯的错误之一——用有效值算出来的电阻偏大一半以上,信号直接顶到满量程。

3.2 寄生电阻与铜温漂:为什么分流器不该做太小

直觉上,分流电阻越小越好:功耗小、发热少、热电动势小。但这条路走到极端会撞上一个更麻烦的问题——寄生电阻的相对占比

PCB 上的走线电阻、焊锡电阻、焊盘到铜箔的过渡电阻,加起来几十微欧是常态。如果你的分流器本身只有 0.5 mΩ,这几十微欧就占了 5%~10%。这个附加量本身是固定的,校准能吃掉;但铜的电阻温度系数大约是 0.39%/°C,也就是说这部分附加电阻会随温度变化。

算一下后果:附加电阻占总量的 10%,25°C 的温升让它自身变化约 9.8%,那么总的分流回路阻值变化就是:

10% × 9.8% ≈ 0.98%

接近 1% 的误差漂移,对 0.5 级表来说是灾难性的,而且这个漂移在校准台上完全看不出来——校准是在常温下做的,漂移要到现场才暴露。

所以经验值是:分流器的阻值不要低于 1 mΩ,除非你愿意上四线制开尔文连接并严格控制走线。更大的分流电阻会带来功耗,比如 20A 满量程、1 mΩ 分流器,功耗是 400 × 0.001 = 0.4 W,需要一个封装尺寸足够的检流电阻来散热。这是花钱和花精度的取舍,没有免费方案。

3.3 一个 20 A / 220 V 通道的完整算例

假设做一个单相 220V、最大 20A 的计量模块。

电流通道:

项目取值说明
最大工作电流 I_max20 A rms设计目标
过载倍数 k1.5考虑电机类负载
峰值电流42.4 A20 × 1.5 × 1.414
分流电阻1 mΩ兼顾功耗与寄生电阻占比
分流器两端峰值电压42.4 mV42.4 × 0.001
目标占满量程比例70%留 30% 余量
所需满量程60.6 mV42.4 / 0.7
选择增益32若该档满量程在 2V 附近则合适
分流器功耗0.4 W20² × 0.001

电压通道:

项目取值说明
最大电压220 V rms需按 1.15 倍冗余
峰值电压358 V220 × 1.15 × 1.414
目标分压后峰值约 300 mV落在同一量级
串联电阻总阻值1 MΩ建议 5 颗 200 kΩ 串联
分压比约 1193358 / 0.3
下端电阻取 1.0 kΩ 并微调按实测调整
串联电阻总功耗约 53 mW220² / 1M,分散到 5 颗

这里用多颗电阻串联而不是单颗 1 MΩ,原因有两个:一是单颗高压电阻的耐压和爬电距离不好保证,串联能分摊电压;二是单颗电阻的温漂是整体贡献到分压比上的,多颗串联后温漂有平均效应,如果全部用同一批次同规格电阻,分压比的一致性会好很多。

4. 画板子之前必须定下来的四件事

4.1 模拟输入网络与抗混叠滤波

delta-sigma 架构本身有很强的数字滤波,但它滤的是量化噪声,不是输入端的带外干扰。如果输入端有高频干扰(开关电源的开关噪声、PWM 驱动的开关尖峰),这些信号会在调制器里混叠进来,落进你的信号带内,任何后续处理都救不回来。

常规做法是在每个模拟输入引脚前面加一阶 RC 低通。截止频率怎么定?一般取你目标信号带宽的 5~10 倍。如果只关心 50 Hz 及其低次谐波,信号带宽按 2 kHz 算,截止频率就放到 10~20 kHz。电阻取值不能太大,否则和 ADC 输入级的采样电容形成额外的建立时间问题;电容取值也不能太大,否则会引入相移,在电流通道上造成测量相位误差。

注意:两个通道的 RC 时间常数要尽量一致。如果电压通道和电流通道的滤波器截止频率差得多,低频时还好,高频谐波上两个通道的相位就差开了,功率计算的误差会在高次谐波负载下明显变大。

4.2 基准与去耦的布局

基准引脚的去耦是整块板子上最不能省的地方。基准噪声会直接乘到 ADC 输出上,等效于给每个采样点加了一个共模扰动。去耦电容要贴到引脚上,走线越短越好,容量按手册推荐值来,通常是一个大容量并联一个小容量。

电源去耦同理。模拟电源和数字电源各自独立去耦,两地平面之间用单点连接。这个"单点"的位置应该选在 ADC 的 AGND 引脚附近,而不是随便找个过孔。很多噪声问题最后都指向"地回流路径经过信号地"这一个原因。

4.3 SPI 走线与 MCU 端取数节奏

器件通过 SPI 从机接口输出数据,最高时钟频率在几十兆赫兹量级。表面上看速度绰绰有余,但要算一下总线负载:

数据率(每通道)双通道总采样率每样本字节数所需总线带宽
1 kHz2 kSPS6 字节约 12 kB/s
4 kHz8 kSPS6 字节约 48 kB/s
16 kHz32 kSPS6 字节约 192 kB/s
64 kHz128 kSPS6 字节约 768 kB/s

低速档基本不用担心,一个几兆赫兹的 SPI 加中断读取就够。但如果你要用高速档,MCU 侧必须上 DMA 或者至少是 SPI 带 FIFO,否则每次采样都进中断,CPU 光处理中断就满载了,还会因为响应延迟丢样本。

这就引出一个选型层面的连带决策:选这颗 AFE 的同时,其实也选定了 MCU 的 SPI 能力和 DMA 通道数量。很多项目是 AFE 定了、MCU 也定了,结果发现 MCU 的 SPI 没有 DMA,只能降数据率用,白白损失了本来想要的采样速度。

4.4 封装、热焊盘与温度等级的落地

如果最终选了 QFN 版本,散热焊盘必须接模拟地平面,并且要用多个过孔连接到内层地平面。散热焊盘除了散热,还有一个作用是给芯片提供稳定的地参考。焊盘浮空或者只连了一两个过孔,会让芯片内部的参考地电位跟着数字电流波动,噪声表现会明显变差。

另外,散热焊盘的焊膏覆盖率一般控制在 50%~70%,太高会在回流时把芯片顶起来,导致四周引脚虚焊。这个细节在钢网设计阶段就要定。

温度等级的影响最终要落到结温计算上。芯片的功耗主要是模拟部分的静态功耗,加一点数字接口的开关功耗,总量不大,但如果你把它放在密闭机壳里,环境温度 70°C 再加 20°C 温升,结温就到 90°C 了。这时要确认扩展温度等级的器件在这个结温下的参数漂移是否还在你的误差预算内。

5. 寄存器配置与校准:从上电到出数的完整路径

5.1 上电初始化顺序

初始化顺序错了会出现"读出来的数据一直是零"或者"通道串位"这类诡异问题。我的一般顺序是:

  1. 先给模拟电源上电,等稳定(内部基准需要建立时间,通常几毫秒量级)
  2. 再给数字电源上电,时钟源起振
  3. 通过 SPI 做一次软复位,把寄存器恢复到已知状态
  4. 配置通道增益、数据率、过采样比等参数
  5. 配置输出数据格式(24 位还是 16 位)
  6. 等待至少一个完整的转换周期,再开始读数据

第三步的软复位千万别省。芯片上电后的寄存器状态虽然手册会说明默认值,但如果你的 MCU 是热复位而 AFE 没断电,寄存器里可能还留着上一次运行的状态。加一次软复位,两边的状态就对齐了。

5.2 增益与失调的两点校准

校准这件事的公式很简单,但顺序不能错:

校准后值 = (原始值 - 失调码) × 增益系数

失调校准要在零输入条件下做。电流通道可以断开负载,让分流器上没有电流;电压通道可以短接输入。这时读到的码值就是系统失调,包括 ADC 自身失调加上前端网络的直流偏置。这个值存进 EEPROM,每次上电加载。

增益校准要在一个已知的参考点做。电流通道可以用一个标准源给一个接近满量程的电流,电压通道用一个标准电压源。用标准值和读数算比例系数。

这里有个细节值得强调:校准点的选择会影响整个量程内的误差分布。如果你只在一个满量程附近的点校准,小电流段的相对误差会比较大,因为失调误差在小信号上占比更高。正规做法是至少做两点校准,或者在满量程的 5% 和 100% 两个点分别校准,取折中系数。

5.3 相位延迟补偿什么时候必须开

这颗器件带有一个相位延迟补偿模块,可以对某个通道做采样时刻的微调。这个功能不是可有可无的装饰,在特定场景下是必需的。

什么时候必须开?当电流通道使用互感器而不是分流器的时候。电流互感器本身有励磁电感,会引入一个超前或滞后的相移;分压网络上的 RC 滤波也会带来相移。这两个通道的相移不一致时,功率测量在低功率因数负载下会出现明显误差。

为什么低功率因数下误差大?因为功率 P = U × I × cosφ,当功率因数接近 1 时,相移误差对 cosφ 的影响很小;但当功率因数接近 0 时,cosφ 对角度变化极其敏感。举个数:功率因数 0.5 对应相角 60°,如果有个 0.5° 的相位误差,cos(60.5°) 和 cos(60°) 的比值大约是 0.9917,也就是接近 0.8% 的功率误差。而在功率因数 1 的时候,同样的 0.5° 误差只带来 0.004% 的误差,差了 200 倍。

所以核对这一条的关键是:先确认你的电流传感方案是分流器还是互感器,再决定要不要做相位补偿。分流器基本是非感性的,相移很小;互感器就必须做。

6. 它不适合的场景,以及该换哪条路线

6.1 需要测量侧与逻辑侧隔离的时候

MCP3901A0 本身没有隔离。如果你做的是市电侧采集,逻辑侧又要接 USB 或者跟人体接触的接口,那必须有隔离。这时有三条路:

一是让 AFE 和 MCU 一起待在高压侧,用隔离的电源供电,SPI 信号通过数字隔离器传到低压侧。这条路成本高一点,但模拟信号不用跨隔离带,精度损失最小。

二是只把模拟前端放在高压侧,用隔离放大器或者隔离 sigma-delta 调制器把信号送过来。这条路适合 MCU 必须留在低压侧的场景。

三是干脆不用分立 AFE,改用带内置隔离的计量芯片或者带隔离的模组。参数上可能有妥协,但开发周期短。

选哪条,取决于你的产品形态和量产规模。小批量、多功能需求,第一条路最灵活;大批量、单一功能,第三条路的综合成本往往更低。

6.2 三相或者多通道场景

三相四线制至少需要三路电压加三路电流,六通道起步,还要考虑三相之间的同步。用一个双通道 AFE 拼三颗,理论上可行,但会带来三个问题:三颗芯片之间的采样同步、三套基准的一致性、三倍的布板面积和功耗。这种场景直接选多通道的专用计量器件更合理。

6.3 需要谐波分析或者波形录波

如果产品要求做谐波分析到 21 次甚至更高,采样率至少要到几万赫兹,而且要保持住有效位数。这时候要重新回到第 2.2 节那张噪声表,看看在目标数据率下有效位还剩多少。同时 MCU 侧的算力也要重新评估——FFT 运算加数据缓冲,对 RAM 的需求会明显上升。

7. 打样回来后一周内做完的验证清单

板子回来以后不要急着跑功能,先按下面这几步把模拟前端的底子摸清楚。这套流程我一般一周内能走完,而且能提前暴露 80% 的问题。

第一步,空载噪声测试。电流通道短接输入,电压通道接零,采集一小时数据,算标准差。这个标准差折合到输入端,就是你的实际噪声底,和第一步算出来的理论值对一下。差得太多,先查地平面和去耦,再查时钟抖动。

第二步,直流线性度扫点。用一个可编程直流源,从满量程的 1% 扫到 100%,取 10 个点,每个点读 100 次取平均。画出读数-输入曲线,看非线性。这一步能发现增益档位切换时的跳变、以及固件里的定点数溢出问题。

第三步,交流相位一致性验证。用同一个信号源同时灌入两个通道,理论上两个通道的读数应该完全一致,相位差为零。如果存在固定相位差,说明两路的 RC 网络或者走线长度不一致。这个测试在分流器方案里容易被忽略,但它是后面所有功率计算的基础。

第四步,温漂摸底。把板子放进温箱,从常温跑到最高工作温度,每个温度点稳定半小时,记录同一输入下的读数变化。这一步是把理论上的温漂预算变成实测数据,也是判断内部基准够不够用的唯一可靠手段。

第五步,过载恢复测试。给电流通道一个 3 倍满量程的短时冲击,然后回到正常量程,看数据能不能在预期时间内恢复。模拟滤波器里的电容在过载后需要时间释放电荷,如果恢复太慢,你的过流保护算法会失效。

验证项判据常见失败原因
空载噪声折合输入噪声与手册同量级地回流、时钟抖动、去耦不良
直流线性度全量程偏差小于目标等级增益档位跳变、定点数溢出
通道相位一致性两通道相位差接近零RC 时间常数不一致、走线不等长
全温区漂移在误差预算内内部基准温漂、分流器寄生电阻
过载恢复在设定周期内回到正常输入滤波电容过大

8. 几次实际项目里踩过的坑

第一个坑是把 24 位当精度用。最早做第一版方案时,我按 24 位去分配误差预算,觉得 20 位的余量怎么都够,结果实测有效位只有十四位多,小电流段的误差直接超标。后来才明白,选型阶段应该用 ENOB 而不是数据字长去做预算,而且 ENOB 是跟着数据率和增益档位变的,不是个固定值。

第二个坑是分流器选得太小。有一版为了控制发热,把分流器从 1 mΩ 降到了 0.3 mΩ。常温校准非常漂亮,全量程误差都在 0.1% 以内,出货也没问题。结果一年后客户反馈冬季和夏季的读数对不上,温差大时有将近 1% 的偏差。查了半天才发现是走线和焊点的寄生电阻在分流器上占的比例太高,温度一变整个回路阻值就变。这个坑的代价是重新开板,因为分流器变大以后封装放不下。

第三个坑是封装切换没有重做接地。样机用 SSOP,量产换成 QFN 省面积。换完之后噪声底抬了将近 6 dB。一开始怀疑是芯片批次问题,换了几批都一样。最后拿热成像看,发现 QFN 的散热焊盘只有一个过孔,芯片下方的地平面被割裂了,模拟地的参考电位不稳。重新铺铜、加了九个过孔,噪声立刻回到原来的水平。

第四个坑是 SPI 读取节奏没和转换周期对齐。数据手册里数据准备好是有一个标志位的,但我早期图省事,用固定延时去读。低速时没问题,数据率一提高就开始偶发读到重复样本。后来改成轮询标志位再读,问题消失。这个坑的教训是:能用硬件标志位确认状态的地方,就不要用软件延时去猜。

第五个坑是忘了器件的勘误表。这个坑不算严重,因为是在设计评审阶段被同事拦下来的。当时我下载的是通用数据手册,同事提醒我去查对应版本号的 errata,结果发现有一条正好和我的用法相关。如果没查,可能要到测试阶段才发现。

说到底,这类模拟前端的选型从来不是查几张参数表就能定下来的事。先想清楚物理量怎么变成电压、电压怎么进芯片、芯片出来怎么变成数字,这条链路上每一环的约束都要能说出来,再去对照数据手册核对。反过来做——先挑芯片再想怎么用——基本上都要返工一轮。我现在做新方案时,前两周基本不碰选型工具,就在纸上把信号链路和误差预算写清楚,写不下去了再回去看器件手册,这样效率反而高得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询