1. 引言
HPM6P00系列MCU是先楫半导体于2025年3月推出的新一代高性能混合信号微控制器,主要面向工业自动化、智能电源以及精密伺服控制等应用领域。该系列芯片集成了4个独立的16位ADC,并支持差分输入模式。在实际应用场景中,如何有效提升HPM6P00系列MCU的ADC采样精度,成为一个值得深入探讨的技术议题。
为什么要提高ADC采样精度?
以伺服控制系统为例,控制环路(位置、速度、电流环)的每一次精准调节,都始于对现实世界信号的准确感知。ADC作为物理世界与数字控制器之间的桥梁,其采样精度直接决定了系统的整体控制性能。 以电流环为例,若ADC存在量化误差、非线性或噪声干扰,会导致电流反馈值出现“台阶式”跳动,进而使生成的转矩指令不平顺。即使在电机静止状态下,这类误差也可能引发微小却不容忽视的转矩脉动,严重影响系统的静态与动态性能。 而高精度ADC能够提供更为细腻、真实的电流反馈信号,使控制器得以精确输出所需的微幅电流,从而显著抑制转矩脉动。这一特性对高精度加工与精密定位应用尤为重要——它可有效避免电机在低速运行时的“爬行”现象,实现转矩的平滑、稳定输出,为系统带来更优的动态响应与控制品质。
芯片的潜力与挑战
HPM6P00集成了4个独立的16位ADC,每个ADC均可实现2MSPS的采样率,也可配置成12位模式,12位模式采样率高达4MSPS,这对高精度快速采样应用场景提供了强大的硬件基础。同时,其对差分输入模式的支持,带来了卓越的共模噪声抑制能力,为实现更高精度的采样系统提供了关键保障。
看到这里,您或许已经对HPM6P00的强大性能感到心动,并跃跃欲试。但在投入应用之前,我们必须要厘清一个关键问题:拥有了强大的片上ADC硬件,是否就意味着能轻易实现系统级的高精度采样?
答案是明确的:绝非如此!
一颗高性能的ADC芯片,好比一台顶级的单反相机。它确实拥有拍出专业大片的潜力,但若使用者不懂光圈、快门和构图的配合,或者镜头沾满污渍、在三脚架上晃动,那么最终成像可能还不如手机随手一拍。同样,HPM6P00的ADC为我们提供了捕捉信号“大片”的潜能,而要将这种潜能转化为现实,则需要精心的系统设计和深厚的工程功底。
2. 硬件设计心得 —— 为精度打造“安静”的模拟环境
常见的噪声源1 —— DCDC
HPM6P00内部自带一个DCDC为SOC提供典型值1.275V电压,正是由于这个DCDC的存在导致其在工作的时候会产生噪声,对附近的模拟信号造成干扰,尤其是在单端模式下尤为突出。若在设计的时候采取措施不当,甚至会严重降低ADC采样精度,因此在设计硬件的时候一定要注意该DCDC带来的电源噪声挑战。
实测表明,在笔者某板卡上,对1.65V直流信号进行连续10K个点采样,使用内部DCDC时噪声为700 LSB (P-P, 16bit);改用外部DCDC后,噪声降至23 LSB (P-P,16bit)。事实证明,您在使用内部DCDC设计时处理不当很可能使其本身成为核心噪声源,干扰模拟电路并导致高精度采样失败。
该怎么设计DCDC?
在HPM系列MCU中,不同型号的内部DCDC性能存在差异。尽管部分系列的内部DCDC在良好设计下可以达到较为理想需求(例如,HPM6E00系列内部DCDC在硬件设计良好情况下噪声峰峰值约为40LSB),但HPM6P00系列中的该DCDC模块对ADC精度构成显著挑战,确实是一个令人头疼的问题。因此,若您的应用对ADC精度有严苛要求,强烈建议避免使用HPM6P00系列内部DCDC为SOC供电,转而采用外部电源方案。此约束在单端采样模式下尤为重要;若仅使用差分模式或精度要求宽松,则可酌情考虑内部DCDC。
使用外部DCDC时注意事项
使用外部DCDC时同时需要注意需要关闭内部DCDC,可以在硬件设计中把相关引脚接地,如图所示:
即,DCDC_IN通过10K电阻接地,DCDC_LP,DCDC_SNS浮空或通过10K电阻接地,VDD_SOC通过外部DCDC或LDO提供1.275V电压(请参考《HPM6P00 系列高性能微控制器数据手册》中具体供电电压需求)。
使用外部DCDC时也需要注意DCDC的布局设计,DCDC设计注意事项请参考应用文档《HPM系列微控制器高精度ADC之硬件设计指南》
https://www.hpmicro.com/Public/Uploads/uploadfile/files/20240620/HPMxilieweikongzhiqigaojingduADCzhiyingjianshejizhinan.pdf。
常见的噪声源2 —— VDD_SOC
HPM6P00系列MCU的典型工作主频高达600MHz,这在提供强大算力的同时,也带来了显著的功耗需求。根据HPM6P00数据手册,在CPU0、CPU1及所有外设全速运行、主频600MHz且环境温度为25℃的条件下,其工作电流约为280mA。若为其供电的DCDC转换器效率为80%,我们可以粗略估算一下折算至SOC的平均输入电流为:
280mA 3.3V 0.80/1.275V ≈ 580mA
这一电流在SOC工作时会以高频形式快速变化,从而在电源网络和地平面上产生不可忽视的高频噪声。此类噪声极易耦合至敏感的模拟电路部分(如ADC基准源或模拟信号输入端),对高精度采样性能构成直接威胁。因此,在系统设计时必须将SOC内核产生的这类高频电流噪声作为重要干扰源加以应对。
下图展示了HPM6P81IPB1的VDD_SOC电源推荐的布局,应注意以下要点:
- 电容位置:VDD_SOC的去耦电容置于Bottom层,并尽可能靠近芯片相应电源引脚。
- 接地路径:电容的接地端通过铜箔连接至底部芯片中央热焊盘,确保回流路径最短。
- 平面处理:热焊盘下方应通过多个过孔阵列连接至一个完整、独立的接地平面,以构成低阻抗回流路径。
- 模拟管脚附件VDD_SOC处理:优先使用距离第50脚(VDD_SOC)较远的模拟输入管脚,若无法避开,则可以通过把第50脚(VDD_SOC)串一个磁珠再连接到VDD_SOC网络,以抑制高频电流对附近模拟输入管脚的影响。注意引入磁珠后,磁珠与VDD_SOC管脚之间不得再额外添加去耦电容,以避免削弱对高频电流的抑制效果。
差分应用心得
HPM6P00内部集成4个ADC,其中ADC0和ADC1组成一个差分组,ADC2和ADC3组成一个差分组,在某些高精度采样系统中差分ADC的使用可以有效提高采样精度。
笔者同样在某板卡上实测,在外部DCDC供电情况下1.65V DC信号注入,16bit ADC在2MSPS采样率连续采样10K个点,统计采样点P-P值,单端和差分对比如下:
如果采用内部DCDC供电,1.65V DC信号注入,16bit ADC在2MSPS采样率下连续采样10K个点,统计采样点P-P值,单端和差分对比如下:
以上数据纵轴单位均为LSB,单纯以直流采样的码值峰峰值分析表明,差分模式能显著提高ADC采样精度,其优势核心在于卓越的共模噪声抑制能力,这使得它在高精度测量及工业级复杂噪声场景下,能显著提升系统性能的关键设计。
该如何设计差分ADC
与传统差分ADC的固有设计不同,HPM6P00系列采用了一种新的差分实现方式。其核心在于配置了两个经过优化的独立ADC通道,对目标信号进行同步采样,随后由内部硬件直接计算差值,从而得到最终的差分结果。这种独特的架构使得每个ADC通道在物理上既可以作为独立的单端输入使用,也能灵活组合成一个高精度的差分输入对,极大地提升了系统设计的灵活性与资源利用率。
因此本质上来讲,设计差分输入时只需要提供两个电压范围为VREFLO-VREFHI的信号分别给到组成差分对的两个ADC的输入通道即可,典型例子如下:
即ADC0.IN0和ADC1.IN1组成一个差分对,对差分信号进行采样。因此HPM6P00 4个ADC最多可以同时采样两路差分信号。
在实际应用中若考虑到成本问题无法使用差分运放,还可以通过单端运放组成差分系统,如下图以伺服驱动为例,通过把采样的电流信号电压与参考电压进行差分采样即可获取电流采样值。采样通道配置如下:
Diff0 ADC0&ADC1 Master:{INA0,INA2,INA3} Slave: {INA1,INA4,INA4}
Diff1 ADC2&ADC3 Master:{INA0} Slave: {INA1}
即:
ADC0.INA0与ADC1.INA1负责采样U相电流
ADC2.INA0与ADC3.INA1负责采样V相电流
ADC0.INA2与ADC1.INA4负责采样VBUS电压
ADC0.INA3与ADC1.INA4负责采样温度等其他物理量
该案例较为灵活的使用了HPM6P00的ADC差分模式,使得在方案中既能提高采样精度与提升整机性能,又能简化外部电路,节约资源。需要注意的是,由分立单端运放搭建的差分放大电路,其性能通常难以媲美单片集成的全差分运放。然而,通过严谨的布局与选型,依然可以显著提升系统的采样精度,尤其在噪声恶劣的环境中。关键措施包括:严格保持信号的差分走线、为差分输入通道分配相邻的ADC引脚、选用同一型号的运放并尽可能靠近放置,以最大限度保证通道间的一致性。
很显然,对于上述系统中只能同时采样两路相电流信号,若需要同时采样U、V、W 3路相电流,该怎么做?如果在您的系统中单端噪声比较明显,又同时需要采样U、V、W 3路相电流信号,笔者建议您可以参考如下伪差分方案:
即,3个ADC负责信号采样,第4个ADC采集一个参考电压(典型值为VREFH/2),4个ADC同时采样,采样后结果通过软件方式分别跟参考电压作差,得到的结果即为3路信号分别对应与参考信号的差分结果。
验证该方案的实际效果,笔者在某存在明显噪声干扰的伺服电机板卡中进行了部署测试。测试数据来源于对原始信号进行高速采样(每次>10,000个点),通过伪差分计算处理以还原真实波形。图示为在相同条件下重复四次测试所得到的重合曲线,结果具有良好的一致性。结果表明伪差分后的数据较伪差分前的数据有明显改善。
需要指出的是,伪差分技术虽然能提升采样精度,但其效果存在局限。该方法的有效性建立在噪声对多路ADC影响高度一致的前提下。若系统本底噪声较低,或噪声对各通道的影响不相关,则伪差分处理可能无法优化信号,甚至可能引入额外误差。因此,在PCB布局与电路设计时,必须确保4路信号的处理路径严格对称。建议做到:信号走线等长、等宽、等间距,且对应的运放电路与RC滤波器的元器件参数及布局保持高度一致。
PCB整体布局心得
PCB布局是系统设计的基石,直接决定了电路板的性能与可靠性。必须采用良好的布局规范,以确保电路板的正常功能和可靠性,不合理的布局会引入串扰、地噪声及信号完整性等问题。这一点在高精度ADC采样系统中尤为关键,微弱的布局缺陷足以淹没微小的有用信号,甚至有可能会带来意想不到的灾难。因此,严谨的布局规范是实现模拟电路性能的关键。
板层设计
电路板的层数与层叠结构设计,首要考量因素是布线的连通性需求与制造成本之间的平衡。对于HPM系列高性能MCU,为实现其最佳性能,推荐采用4层或以上的电路板设计。此举旨在为系统提供一个完整的接地平面并进行有效的电源分割,这是保障信号完整性与电源质量的关键。
下图展示了推荐的4层和6层板层结构:
布局与走线
维护信号纯净度与完整性的另一个关键措施在于合理的PCB分区布局。依据下图所示的方案,推荐您将数字、模拟与大电流这三类信号路径进行物理隔离,以最大限度地抑制相互间的干扰。
布线时,必须将大电流路径(尤其是高di/dt回路)的环路面积控制在最小,这是抑制电磁干扰(EMI)的核心原则。以降压型DCDC电路为例,其开关回路是典型的高di/dt噪声源,在布局中必须远离模拟区域。若其靠近模拟电路,所产生的噪声将对该区域信号产生灾难性影响。
提到DCDC我们不得不先回顾一下DCDC产生噪声的源头,以此来优化设计,减少EMI。
以非隔离同步降压型DCDC为例,其工作状态分为两种:
1.上管开通,下管关闭
上管Q1开通,下管Q2关闭时由于电感电流连续,电流路径为虚线所示路径流过,即,电感电流经过负载和输出电容后到GND,再经过CIN和Q1后到SW节点。CIN以及Q1电流突变,同时SW节点电压为VIN。
2.上管开通,下管关闭
上管Q1关闭,下管Q2开通时,电流路径为虚线所示,电感电流下降,电流经过负载,到GND,再经过Q2到SW节点,SW节点电压为0V。
因此,电压和电流波形如下所示:
具体而言,电路中的输入电流与下管电流会发生急剧变化,产生很高的di/dt。di/dt噪声通过磁场耦合和地弹噪声干扰附近的模拟采样电路,会造成采样信号中出现与开关频率同步的周期性噪声。
同时,开关节点的电压不连续的快速的电压,产生dv/dt噪声。dv/dt噪声变化会通过容性耦合或共模噪声影响模拟电路。
因此在设计DCDC时除了远离模拟回路,还需要优化DCDC的布局与走线,以减少DCDC对模拟电路的干扰,常见的DCDC优化方式如下:
1.减小di/dt回路面积
核心优化在于最大限度减小图中阴影区(由CIN、DCDC_IN、DCDC_GND构成的环路)的面积。实践证明,该面积越小,EMI性能越好。即使将CIN向DCDC_IN和DCDC_GND靠近仅1mm,其改善效果也截然不同。同时,此三者应通过大面积铺铜连接,以进一步降低路径上的寄生电感。器件选型上,CIN电容应选择低ESR的MLCC电容,可以并联多个电容来进一步降低整体ESR,确保高频去耦效果。
另外,当下管开启时,电感电流经由下管、地路径形成续流回路。此续流回路与上管开通时的功率环路一样,承载着高的脉冲电流。因此,在PCB布局时,必须将电感、输出电容(COUT)及下管接地端所构成的续流环路面积最小化,同时输出电容选择低ESR的MLCC电容和并联多个电容。这与优化上管环路具有同等重要性,是抑制电磁干扰(EMI)不可或缺的一环。
2.降低dv/dt干扰
常见的降低dv/dt干扰的做法是减小SW管脚到电感的距离,保证电流的同时保持尽量小的面积,从而从根本上减弱其作为“电场天线”的辐射效率。对于集成上下管的控制器,可在自举电容(BST)的充电路径中串联一个限流电阻(Rbst)。此电阻会减小对上管MOSFET栅极电容的充电电流,从而减缓其开启速度,平滑SW节点的电压上升沿,有效降低由上管开通产生的dv/dt噪声与EMI。Rbst的取值需在数据手册允许的范围内谨慎选择。阻值过大会导致上管驱动不足,增加开关损耗,甚至引起欠压锁定(UVLO)或工作异常。
关于地平面设计的一些心得
在具备多层结构的PCB中,必须设置完整的地平面。该平面不仅为所有接地信号提供低阻抗通路,更能有效抑制地噪声。所有信号电流均需通过地平面返回,构成完整回路。对于多个接地层,应使用过孔阵列进行缝合,以构筑连续且极低阻抗的参考平面,确保回流路径阻抗最小,下图为笔者某板卡的地平面设计。
有效接地平面的核心在于保持其完整性与低阻抗互联。PCB上的过孔和走线会切割地平面,导致其产生孤岛与瓶颈。如下图左侧所示,电流必须绕过过孔阻隔区域,图右侧电流的回流路径更小(一般建议s/d > 1/3)。
下图中,填充区域的左上与左下部分仅由一条狭窄铜皮相连。这些均属于典型的缺陷布局,必须规避。优化的核心原则是:重新规划布线,避免地平面出现细颈连接或被严重分割,确保其为一个完整的低阻抗参考平面。
在部署接地平面时,必须确保该层具备完整且低阻抗的电气连接。对于平面缺失或连接细弱的区域,应通过布局优化予以加强,以最大化接地平面的有效覆盖面积。 为实现这一目标,通常可采取以下措施: 1. 精简过孔与走线:合理减少过孔数量,并将相关走线集中布设,以最大限度减少对地平面的切割。 2. 优化引脚分配:在布局初期,应审慎规划引脚复用(Pinmux)配置。通过调整原理图与器件引脚映射,可将关键信号路径布置在更优位置,从而有效缩短走线、减少过孔,并为地平面留出完整空间。
模拟地和数字地要不要分割 —— 视情况而定
模拟地与数字地(及其对应电源)的分离是提升系统信噪比的关键设计实践。然而,不正确的分割策略反而可能引入更严重的噪声与信号完整性问题。因此,实施此项技术须遵循以下核心原则:
- 分离的核心目的与条件
分离旨在确保高噪声的数字信号电流不会流入敏感的模拟地区域。为此,所有信号应避免跨越分割边界;唯一允许跨越的是静态或极低频率的信号。 - 单点连接的正确方法
模拟地与数字地必须在且仅在一个点上进行连接,此单点应选在MCU ADC接地参考点附近,同时为实现最佳性能,该连接点的布局需遵循以下原则
参考源共地:为ADC提供基准电压的参考源(VREF)的接地端,直接连接至此接地点附近
电源去耦:模拟电源(AVDD)和基准电源(VREF)的输入和输出去耦电容,其接地端也应直接连接至接地点附近。
连接方式可选择: • 零欧姆电阻或跳线:提供了一种简单、可预测的低阻抗连接。• 铁氧体磁珠:其优势在于低直流电阻与可忽略的电容,但需通过仿真确认其在噪声频点的阻抗特性,并验证其不会在操作电流下饱和。 • 直接窄桥连接:在统一地平面上通过铜箔创建一个受控的连接点。 - 务实的fallback方案
如果设计约束导致无法实现理想、完整的隔离,则应放弃分割,转而采用一个统一、完整的接地平面。一个完整且未被严重割裂的地平面,远胜于一个布局不当的分割地平面。采用完整地平面时也应注意高频数字信号回流路径不能经过模拟区,在工程实践中通常推荐采用一种“先分割,后合并”的接地设计方法:
1.布局时分割:在PCB布局初期,将数字地与模拟地在逻辑上进行划分,并分别铺铜。
2.严格分区布线:确保所有数字信号走线仅在数字地区域内并参考数字地平面;所有模拟信号走线仅在模拟地区域内并参考模拟地平面。
3.后期合并:在所有信号走线完成后,移除数字地与模拟地之间的物理分割屏障,形成一个完整、统一的地平面。
此方法的优势在于:它通过在布局阶段强制实施电流隔离,避免了数字噪声对敏感模拟电路的干扰;而最终合并为一个完整平面,则保证了所有返回电流都能找到一个低阻抗路径,并最小化最终产品的环路面积。
归根结底 —— 电流回流路径
关于电流回流路径的探讨可以参考这篇文章,本文部分内容也是借鉴了这篇文章中的观点。
https://site.ieee.org/phoenix-emcs/files/2015/06/PCB-Design-link.pdf
该文章通过基础理论出发,通过生动形象的例子,加上直观的图示,阐述了参考平面,阻抗,电流路径等概念,并给出了实用的设计建议。
本文旨在借鉴前人研究成果,并结合笔者的理解,对核心内容进行梳理与探讨。鉴于作者水平有限,文中如有疏漏之处,恳请各位专家、读者不吝指正,并欢迎深入交流。
首先引出观点--电流路径是设计的重中之重!!!一个优良的设计,必然是能够实现最小回流路径的设计。前文提出的完整地平面以及禁止跨区走线都是基于该原则。
对于低频信号,电流总是按照最小电阻路径返回,如下图所示。
而对于高频信号,电流总是按照最小电感路径返回,如下图所示
更近一步分析,当驱动端与负载端之间的信号电平发生跳变时,会产生一个瞬态电流,该电流需要从电源汲取或向地线泄放。尽管数字器件的引脚输入电阻极高,可视为开路(即图中 i=0),但回路电流并未中断。事实上,电流是通过芯片内部及电源/地平面构成的分布式电容和电感,以位移电流(即容性耦合)的方式完成回路的。下文将以集电极输出电路为例进行具体分析,分为四种情况:
1.信号线从低电平变为高电平,信号走线与电源平面紧邻
在信号跳变期间,驱动端对由信号走线、电源平面及终端负载构成的传输线进行充电,形成电流环路:
- 正向路径:电流从驱动器的电源引脚流入,经内部电路后从输出端流出,通过信号线到达负载。
- 返回路径:与之对应的高频瞬态电流,则在信号线下方的电源平面(作为参考平面)上回流,最终从驱动器的电源引脚流回器件内部,从而形成一个完整的闭环。
2.信号线从低电平变为高电平,信号走线与地平面紧邻
驱动器对传输线进行充电时,电流从电源引脚流入,经输出端流向负载。其高频返回电流在信号线下方的地平面回流至驱动器下方后,通过电源与地平面间的耦合电容(或去耦电容)从地平面转移至电源平面,最终才能从电源引脚流回驱动器,从而构成完整的高频电流环路。
3.信号线从高电平变为低电平,信号走线与电源平面紧邻
负载通过信号走线与电源平面及驱动器输出端构成的传输线进行放电。电流从驱动器的输出引脚流入器件,经其接地引脚流出,进入地平面;随后借助驱动器接地引脚附近电源平面与地平面之间的耦合电容,跨接至电源平面,最终返回负载端。在此过程中,高频瞬态返回电流沿信号走线下方的电源平面回流至负载,从而形成完整的电流环路。
4.信号线从高电平变为低电平,信号走线与地平面紧邻
负载对信号走线和电源平面及驱动器输出端构成的传输线进行放电,电流从驱动器的输出管脚进入器件,从驱动器的地管脚流出,进入地平面,返回负载端;高频瞬态返回电流在信号走线下方的地平面上回流到负载端,构成电流环路。
我们知道信号电流与其回流路径构成的环路,其面积直接决定了环路的等效天线效率。面积越大,信号对外辐射的电磁干扰(EMI)就越强;同时,该环路也更容易耦合外部噪声,从而影响敏感信号的完整性。因此,严格控制环路面积是电磁兼容性与信号完整性设计的核心。
如何实现最小电流回路面积
一个完整的地平面与信号线紧密相邻,构成了一个微带线或带状线结构。这个结构使得返回电流可以紧贴在信号线的正下方流动,从而将电流回路的面积减到最小。正因如此,在布线时,尤其是高频信号线,必须尽可能使其紧贴参考平面。基于上述原理,我们来看一个具体的设计实例。下图对比了两种走线方式:第一种(不推荐)的信号线远离参考平面,导致回流路径增大;第二种(推荐)则严格遵循紧贴参考平面的原则,确保了回流路径最小化,是优选的布线方案。
此外还需要在驱动器的输出管脚、地管脚附近,应当布放电源平面和地平面的耦合电容,为返回电流提供返回通路,否则,返回电流将寻找最近的电源平面和地平面的耦合途径进行回流(使得回流途径难以预知和控制,从而对其他走线造成串扰)。
然而在工程实践中走线往往不会这么理想,可能会涉及到穿越板层的情况,当通过过孔穿越板层时参考平面会发生变化,情况会变得更加复杂,我们来看几个例子。
上图中信号从顶层通过过孔走到底层,其参考平面发生了变化,参考平面从第二层转到第五层,造成更大的回路路径,因此该方式不推荐。
上图中信号从顶层通过过孔走到第四层信号层,其参考平面也发生了变化,参考平面从第二层转到第五层,造成更大的回路路径,因此该方式不推荐。
上图中信号从顶层通过过孔到第三层,参考平面没有发生变化,这使得回流路径得以最小化,因此是推荐的优选方案。
当走线必须换层且导致参考平面发生变化时,分为两种情况
情况一:参考平面为同源平面(如地平面)
当信号在两个同属性的地平面之间换层时,推荐的处理方式是在信号过孔附近放置一个或多个地过孔(即缝合过孔)。这些过孔为返回电流提供了直接、低阻抗的路径,使其能够紧随信号换层,从而构成最小回流环路,如图所示:
情况二:参考平面为不同源平面(如GND与PWR)
推荐的处理方式是在信号过孔附近放置一个缝合电容(通常为0.1uF或0.01uF),该电容在高速信号频段提供低阻抗通路,从而为返回电流构建一个完整的回流路径,使其能高效地返回到原始参考平面,如下图所示:
3. 软件配置与采样策略 —— 挖掘芯片潜能
通常而言,遵循既定的硬件设计规范能解决大部分问题。然而,有时候可能会受限于实际约束,导致设计无法完全达标,且后续测试结果未达预期时,若重新制板不是首选方案时,笔者建议可转向软件层面进行优化,以低成本方式实现ADC采样精度提升。
过采样
大多数MCU内置的ADC都自带硬件过采功能,您在使用中可能有意或者无意的使用了该功能,结果往往比不过采精度更好,这本质上是凭借降低有效采样速率来换取更高的分辨率。对于白噪声的信号进行过采,理论上每将采样次数提升至4^n倍,即可将分辨率提高约n位。
遗憾的是,HPM6P00系列MCU并未集成硬件过采样功能。因此,如需实现此功能,必须通过软件方式完成。具体方案是:首先在软件中配置ADC对同一通道进行n次采样,随后在程序中对这n个采样结果执行求平均或更复杂的数字滤波算法。得益于HPM6P00系列充裕的算力资源,即使采用软件过采样,其带来的性能开销也通常在可接受范围内。因此,在硬件过采样功能缺失的情况下,这无疑是一个值得推荐的可行替代方案。
HPM6P00的ADC在16位模式下采样率为2MSPS,配置成12位,采样率为4MSPS。因此,16位模式在2次过采情况下可以实现1MSPS等效采样率,12位模式在4次过采情况下可以实现1MSPS等效采样率。
笔者曾在一个板卡上进行ADC电流采样测试,发现ADC采样精度未达预期,根本原因在于硬件设计的规范性不足,未能满足高精度采样的相关设计准则。考虑到改板带来的时间和经济成本,笔者建议其通过软件过采方式提高采样精度,为了验证其效果,我们设计了对比测试:在12位模式下对比4次过采样与无过采样,在16位模式下对比2次过采样与无过采样。每次测试连续采集30000个样本,并统计30000个样本中最大值与最小值之差,即码值峰峰值。每种工况均进行5次独立实验,结果如下:
本次测试数据表明,12位分辨率配合4次过采样的效果,优于16位分辨率配合2次过采样。其根本原因在于,过采样次数的增加对精度的提升效益,在此场景下超过了基础分辨率的优势。因此,若您的系统也面临精度瓶颈,提升过采样次数是一个值得优先尝试的低成本优化方案。
其他软件建议
- 通常不建议在ADC输入相同的bank放置高频数字IO信号,主要原因在于:高频信号产生的快速变化的电流会通过电源和地平面引入开关噪声,这种噪声会耦合到ADC的输入中,从而降低ADC的采样精度与信噪比。若电路设计上无法避免将高频数字IO与ADC输入置于同一Bank,则必须在软件层面进行干预,核心思路是使ADC采样时刻主动避开数字信号的翻转时段。建议利用MCU内部的硬件事件触发ADC采样,实现精确同步。例如,可以配置ADC在USB的SOF(帧开始)包起始时刻进行采样,此时USB数据线处于空闲状态,从而有效规避其数据传输对邻近ADC通道造成的开关噪声。
- HPM6P00的基准时钟由外部24MHz晶振提供,若PCB布局或电源去耦设计不当,可能导致该24MHz时钟信号通过容性耦合或电源路径串扰到模拟电路中,其表现为24MHz的同步噪声,解决办法是ADC采样周期设为n/24MHz,其中n为整数,例如16KHz,20KHz,24KHz等,建议使用GPTMR或PWM模块的输出信号作为ADC的硬件触发源,周期性触发ADC采样。在配置定时器时,其重载值应设置为目标采样频率所对应的周期计数值。需注意,实际写入的重载值应为计算值减1(即 Reload_Value = (Timer_Clock / Target_Frequency) - 1)。
4. ADC精度概念的介绍
在衡量ADC的实际精度时,有效位数(ENOB)是一个核心指标,其数值通常可在器件手册中直接查得。然而,ENOB的得出并非直接测量,而是基于对信号质量的理论计算,其背后综合反映了包括噪声、失真在内的整个信号链路的非理想特性。更多信息可以参考这篇文档:https://www.hpmicro.com/Public/Uploads/uploadfile/files/20240620/HPMxilieMCUgaojingduADCxingnengpingguyuceshizhinan7f.pdf
然而在实践中,一个常见的认知误区是把有效位数和无噪声分辨率概念混淆,导致理解上出现偏差。要准确理解二者的核心差异,我们需要深入探讨它们的来源与测算方式。接下来将对此进行详细分析。
- 量化噪声
量化噪声就是ADC量化过程引入的误差。该误差的大小是ADC分辨率的函数,ADC转换器的理想量化误差为½ LSB。量化误差信号是实际施加电压与ADC输出之间的差值,量化噪声的均方根值为
RMS_{Noise}=frac{1LSB}{sqrt{12}}
- 仅有量化噪声产生的信噪比,即量化SNR(Signal-to-noise ratio )
MaxRMS_{Signal}=frac{ frac{FSR}{2}}{sqrt{2}}=frac{1LSBtimes2^{N-1}}{sqrt{2}}
RMS_{Noise}=frac{1LSB}{sqrt{12}}
SNR=frac{MaxRMS_{Signal}}{RMS_{Noise}}=frac{frac{1LSBtimes2^{N-1}}{sqrt{2}}}{frac{1LSB}{sqrt{12}}}=2^{N-1}times{sqrt{6}}
SNR(dB)=20log{(SNR)}=[20log(2)]N+20log(frac{sqrt6}{2})
SNR(dB)approx6.02N+1.76
例如,对于一个16为ADC,仅有量化噪声产生的信噪比为:
SNR_{16bit}(dB)approx6.02times16+1.76approx98dB
- 总谐波失真,即THD(Total harmonic distortion)
THD(dB)=frac{RMS_{Distortion}}{MaxRMS_{Signal}}times100=frac{sqrt{v_2^2+v_3^2+...+v_n^2}}{v_1}times100
THD(dB)=20log{frac{RMS_{Distortion}}{MaxRMS_{Signal}}}
其中,
v_1=基波幅值
v_2,...,v_n=谐波幅值
- 信号与噪声谐波失真比,即SINAD(Signal-to-Noise and Distortion)
SINAD(dB)=20log(frac{MaxRMS_{Signal}}{sqrt{RMS_{Noise}^2+RMS_{Distortion}^2}})
SINAD(dB)=-20log(sqrt{10^{frac{-SNR(dB)}{10}}+10^{frac{THD(dB)}{10}}})
根据标准,衡量ADC性能指标是通过测量一个加offset AC信号的SNR和THD,计算SINAD值,通过SINAD值计算ENOB:
ENOB=frac{SINAD(dB)-1.76dB}{6.02}
假设我们测得一个AC信号的SNR为78dB,THD为-90dB。
则对应的SINAD为:
SINAD(dB)=-20log(sqrt{10^{frac{-78dB}{10}}+10^{frac{-90dB}{10}}}=77.73dB
对应ENOB为:
ENOB=frac{SINAD(dB)-1.76}{6.02}=12.6
这个ENOB就是芯片手册上标注的ENOB。
然而,在工程实践中往往采用给ADC注入一个DC的信号,通过ADC采样该DC信号,根据ADC采样码值的跳动来评估ADC精度,该方式比较直观易懂,方便实现,但是测出的来的ADC采样码值跳动跟实际ADC的ENOB往往有差距。这就涉及到另外一个概念:无噪声精度(Noise Free Resolution)。
测DC信号时Noise Free Resolution为
Noise Free Resolution=log_2{frac{2^N}{PeaktoPeakNoiseLSB}}
EffectiveResolution=log_2{frac{2^N}{RMSNoiseLSB}}
对于白噪声而言,peaktopeak值大约为rms均方根值的6.6倍。
PeaktoPeakNoiseLSBapprox6.6times{RMSNoiseLSB}
因此
EffectiveResolutionapprox{Noise Free Resolution}+2.7
即,等效的精度为peaktopeak算出的无噪声精度再加上2.7位。
DC模式下测得到的Noise Free Resolution和ENOB是什么关系,我们大致可以推算一下:
假设忽略量化噪声和谐波失真
ENOBapproxfrac{20log{frac{MaxRMS_{Signal}}{RMS_{Noise}}}}{20log(2)}=log_2{frac{MaxRMS_{Signal}}{RMS_{Noise}}}=log_2{frac{frac{1LSBtimes2^{N-1}}{sqrt{2}}}{RMS_{Noise}}}
ENOB-EffectiveResolutionapproxlog_2{frac{frac{2^{N-1}}{sqrt{2}}}{2^N}}=log_2(frac{1}{2sqrt2})=-1.5
也就是说可以得到如下等式:
ENOBapprox{Noise Free Resolution}+2.7-1.5approx{Noise Free Resolution+1.2}
以上为假设在白噪声下的粗略估算,大致解释了为何根据20LSB的峰峰值噪声会算出11位多的无噪声分辨率,而手册仍标注12位及以上。这并非矛盾,而是源于“无噪声分辨率”与“有效位数”的衡量维度和测试方式不同,理解这一区别,就能避免因概念混淆而产生的误解。
5. 总结
以上是笔者在HPM6000系列MCU上实现高精度ADC采样的一些设计心得与总结,希望能为各位开发者的项目带来启发。当然,个人见解难免存在局限性,如有高见或发现错漏,非常欢迎在评论区或联系作者共同探讨。文中个别图片来源于网络,如有侵权,请联系删除。下一篇请继续关注HPM6P00系列MCU ADC高精度采样实践案例。
633