从“噪声困扰”到“皮安级稳定采集”:一个传感器PCB设计老兵的实战复盘

你有没有遇到过这种情况?

辛辛苦苦调通了算法,结果ADC读数像心电图一样跳个不停;
明明用了24位高精度ADC,实测有效位却只有16位出头;
EMI测试一上电,辐射超标好几dB,屏蔽罩焊上去才勉强过关……

别急——这多半不是你的代码问题,而是 PCB物理层的设计在“悄悄拖后腿” 。

我曾参与一款工业级压力传感器前端板的设计。客户要求零点漂移控制在±0.05%FS以内,长期稳定性优于0.1%/年。项目初期,我们用标准四层板布局,结果采样值LSB频繁翻转,温漂严重,甚至室温变化几度就触发报警。

后来我们彻底重构了PCB布局策略,引入一系列低噪声设计实践,最终实现了皮安级输入电流下的稳定采集,通过了OIML Class C认证。

今天,我就以这块板子为蓝本, 不讲理论套话,只掏干货经验 ,带你一步步拆解:如何在一个典型的传感器信号采集系统中,把“看不见的噪声”真正压下去。


混合信号系统的“命门”:地平面到底该怎么处理?

很多人觉得,“有地就行”,铺满铜就完事了。但在高精度模拟前端里, 地不仅是参考点,更是噪声的高速公路 。

我们的系统是典型的混合信号架构:一边是微伏级的桥式应变信号,另一边是STM32跑着72MHz主频、SPI通信速率10Mbps的数字核心。如果不加区分,数字地上的瞬态电流(di/dt)会直接耦合进模拟回路,形成所谓的“地弹”。

关键决策:AGND 和 DGND 要不要分开?

答案是: 物理分割,逻辑单点连接 。

我们采用如下结构:
- 内层2(Layer 2)整层作为 AGND 平面 ;
- 内层4(Layer 4)大部分区域为 DGND,但避开模拟器件正下方;
- 在 ADC(ADS1220)正下方,通过一颗 0Ω电阻或磁珠 将 AGND 与 DGND 连接。

📌 为什么不是直接短接?也不是完全断开?

直接短接 → 数字噪声畅通无阻;
完全断开 → 回流路径断裂,EMI风险更高;
单点连接 → 所有回流电流在此汇合,避免环路,同时保持统一参考电位。

这个“连接点”的位置极其讲究——必须靠近混合信号器件(如ADC、Σ-Δ转换器),否则你就等于人为制造了一个大环天线。

实践中我们还发现:如果电源入口处的地也乱接,前面所有努力都白搭。因此我们采用了“星形接地”策略:

[电源输入 GND] 
     ↓
   [0Ω电阻]
     ↓
   [AGND] ←→ [DGND via 0R @ ADC]

所有模块的地最终都从这一点引出,形成清晰的电流路径树状结构。


电源不是越干净越好?去耦和分割的真相

都说“好电源是成功的一半”,可现实中很多工程师只是机械地在每个VCC脚旁边放个100nF + 10μF组合,以为万事大吉。

错。

真正的挑战在于: 数字部分的动态功耗会通过共用电源轨污染模拟供电 。

比如我们的板子使用同一组3.3V电源,分别给AVDD(运放、ADC基准)和DVDD(MCU、数字接口)供电。虽然电压相同,但我们做了两件事:

1. 电源平面物理分区

我们在内层3将 AVDD 和 DVDD 分成两个独立区域,中间留出至少2mm间隙,并用“保护地”包围AVDD区。

2. 使用LC滤波隔离

在AVDD分支前加入铁氧体磁珠(如TDK BLM18AG102SN1),配合π型去耦网络:

[主3.3V] → [磁珠] → [10μF钽电容] → [100nF陶瓷] → [AVDD]
                         ↑
                     [1nF高频旁路]

这样做的效果有多明显?

实测数据显示,在未加磁珠时,ADC输出频谱中能看到明显的1MHz、7MHz等数字开关谐波;加入后这些杂散分量下降了15~20dB,ENOB提升了约1.5位。

去耦电容怎么选?别只看容值!

很多人忽略一个重要参数: 自谐振频率(SRF) 。

例如,一个100nF X7R 0603电容,其SRF通常在100–150MHz之间。超过这个频率,它反而变成一个电感,失去去耦能力。

所以我们在关键IC(如OPA189)附近额外并联了一个 10nF + 1nF 组合 ,覆盖更宽的高频段。

另外提醒一点: ESR不能太低也不能太高 。太低可能引起LC振荡,太高则无法快速响应瞬态电流。X5R/X7R陶瓷电容是个不错的折中选择。


微弱信号走线:别让PCB变成“天线阵列”

你知道吗?一段10cm长的走线,在100MHz下可以等效为一个高效的EMI接收天线。

而我们的传感器输出只有±5mV,稍有不慎就会被串扰淹没。

差分信号 ≠ 高抗干扰,布不好照样翻车

我们最初把应变桥的差分输出直接拉到LNA输入端,走了两条平行线。结果发现共模噪声抑制比(CMRR)远低于手册标称值。

排查才发现:两条线长度差了8%,且中途绕过了MCU的晶振走线区,导致容性串扰不对称。

于是我们重做布线,严格执行以下规则:

项目 要求
长度匹配 ≤5%误差,建议≤2%
间距恒定 差分对间保持3W原则(线宽3倍)
同层同路径 禁止跨层、禁止穿越分割面
包地处理 两侧打接地过孔阵列(via fence),间距≤λ/20(≈150MHz对应10cm波长,过孔距≤5mm)

做完之后再测,CMRR从80dB提升到96dB以上,接近理想水平。

敏感走线的“黄金法则”

  • 能短则短 :LNA尽量靠近传感器接口(我们控制在≤1cm);
  • 禁止直角拐弯 :改用45°或圆弧走线,减少边缘场集中;
  • 避免跨分割平面 :一旦跨越AGND/DGND分割线,回流路径被迫绕远,形成环路天线;
  • 包地≠包电源 :保护环必须接地,且两端接地形成闭环屏蔽。

有个形象的类比:这就像你在录音棚里用普通音频线传麦克风信号,外面施工队电钻一响,耳机里全是嗡嗡声。而包地走线,相当于给你在电路板上埋了一条微型同轴电缆。


LNA布局:放大第一级,决定成败

仪表放大器INA333是我们前端的核心。它的输入偏置电流仅±3pA,噪声密度低至7nV/√Hz。但这么灵敏的芯片,外围布局稍有疏忽,性能立马打折。

我们踩过的坑包括:
- 反馈电阻离得太远 → 引入寄生电容 → 自激振荡;
- 输入端走线暴露在外 → 拾取空间干扰 → SNR下降;
- 共模地阻抗不一致 → CMRR劣化。

我们的LNA布局“三件套”:

  1. 紧贴输入端放置 :放大器紧邻连接器,信号进来立刻放大,避免弱信号长距离传输。
  2. 六边形保护环包围 :在INA333周围走一圈GND线,宽度≥20mil,并每隔5mm打一个接地过孔,形成静电屏蔽。
  3. 独立覆铜+局部挖空 :LNA区域单独覆铜接地,但远离电源和其他信号线,防止耦合。

实测对比显示,加保护环前后,输入端噪声功率降低了近40%,尤其在50Hz工频干扰段改善显著。


SPI通信也能带来干扰?数字隔离不可少

你以为只有模拟部分需要小心?错了。

我们曾经尝试让MCU直接通过SPI读取ADC数据,片选(CS)、时钟(SCK)都不经过隔离。结果发现每当SPI启动,ADC采样值就会突变一次。

原因很简单:MCU的地波动通过信号线传导到了ADC侧,破坏了AGND的稳定性。

解决方案: 使用数字隔离器(如ADI ADuM1401)切断地环路 。

我们将SPI四根线(SCK、MOSI、MISO、CS)全部接入隔离器,实现信号级隔离。注意:

✅ 必须同步提供 隔离电源 !否则隔离毫无意义。

我们采用TI的DCL0105系列DC-DC隔离模块,为ADC侧提供独立的5V→3.3V电源,彻底切断共模路径。

代码层面也要配合:

uint8_t adc_read(uint8_t reg) {
    uint8_t tx_data[2] = {reg | 0x80, 0x00};
    uint8_t rx_data[2] = {0};

    HAL_GPIO_WritePin(CS_ADC_GPIO_Port, CS_ADC_Pin, GPIO_PIN_RESET);

    if (HAL_SPI_TransmitReceive(&hspi1, tx_data, rx_data, 2, 100) != HAL_OK) {
        return 0xFF;
    }

    HAL_GPIO_WritePin(CS_ADC_GPIO_Port, CS_ADC_Pin, GPIO_PIN_SET);

    return rx_data[1];
}

关键点在于: CS信号由GPIO手动控制 ,而不是依赖SPI硬件自动管理。这样才能确保每次通信前后都有明确的电平恢复时间,避免毛刺引发误触发。

隔离后,SPI通信引起的ADC跳码现象完全消失,系统鲁棒性大幅提升,顺利通过IEC 61000-4-2接触放电±4kV测试。


四层板怎么堆叠?这才是最优配置

我们最终采用的叠层结构如下:

层序 名称 功能
Layer 1 Top Layer 模拟信号、LNA、ADC、去耦电容
Layer 2 Inner1 完整AGND平面(无任何切割)
Layer 3 Inner2 电源层(AVDD/DVDD分区)
Layer 4 Bottom Layer 数字信号、MCU、晶振、局部DGND

这个结构有几个好处:

  • AGND完整连续 :为所有模拟信号提供低阻抗回流路径;
  • 电源层居中 :与上下信号层构成微带线结构,降低EMI;
  • 数字信号远离敏感区 :Bottom Layer与Top Layer之间隔着两个完整平面,天然屏蔽;
  • 热分布均衡 :功率器件热量可通过内层平面扩散。

特别强调: 不要为了省成本用双层板做高精度采集系统 。没有完整的地平面,你所有的低噪声设计都会打折扣。


实战成果:从“跳码严重”到“稳如泰山”

经过上述优化,系统表现发生了质的变化:

指标 优化前 优化后
ADC LSB抖动 ±3~5 LSB ≤±1 LSB
有效分辨率(ENOB) ~16 bit ~21.5 bit
温漂(0–50°C) ±0.3%FS ±0.04%FS
EMI辐射(30MHz–1GHz) 超标3–8dB 低于Class B限值6dB

更重要的是,产品一次性通过了EMC测试,无需额外增加屏蔽罩,为客户节省了大量结构成本。


写给工程师的几点忠告

如果你正在设计类似的高精度采集系统,不妨对照以下 checklist:

✅ 是否优先布局关键器件(LNA、ADC)?
✅ AGND/DGND是否单点连接?位置是否正确?
✅ 电源是否分区?是否有LC滤波隔离?
✅ 差分对是否等长、同层、避让噪声源?
✅ 敏感走线是否包地?过孔是否配对?
✅ 数字接口是否隔离?隔离电源是否独立?
✅ 测试点是否预留?关键节点能否方便调试?

记住一句话: 在高精度模拟系统中,最后1%的性能提升,往往来自前99%人都忽略的那1%细节 。

而这1%,正是区分“能用”和“可靠可用”的关键所在。

如果你也在做类似项目,欢迎留言交流。尤其是那些还在被“ADC跳码”折磨的朋友——也许你缺的不是一个更好的算法,而是一块真正懂噪声的PCB。

更多推荐