尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

高速16位ADC与四通道14位ADC及数字可变增益放大器信号链设计

高速16位ADC与四通道14位ADC及数字可变增益放大器信号链设计 直接切入正题。看到Fast 16-bit ADC, Four-Channel 14-bit ADC, Digital Variable Gain Amp这个标题做过数据采集、测试测量或者精密控制系统的工程师应该立刻能意识到这说的不是一颗单纯的ADC而是一条高度集成的信号链。它把三个关键功能塞进了同一个封装里一路高速高精度采样通道、四路中等精度的多通道采集以及一个数字可编程的增益放大器。这种组合在过去的方案里通常要拆成两三颗芯片来搭现在集成到一起带来的不仅是PCB面积缩小更是在同步采样、增益匹配、系统校准这些维度上把设计复杂度往下拽了一大截。我自己的经验是这类芯片特别适合应用在多点物理量监测、振动信号分析、电网参数采集这类场景里。比如一套设备既需要精确捕捉某一路高速瞬态信号用16位高速ADC又要同时轮询四路传感器的直流或低频输出用四通道14位ADC且各路信号幅度差异很大需要前端可变增益来匹配量程如果还是老思路仪表放大器 多路模拟开关 双ADC 独立单片机控制光是增益切换的毛刺、通道间串扰、校准系数的漂移就够调试几个星期。把这条完整信号链看成一个整体去设计很多痛点会迎刃而解。下文我按照自己实际做项目时的思考路径来拆解先讲为什么这类集成方案能成立再分别针对16位高速通道、四通道14位ADC、数字可变增益放大器这三大核心模块逐层分析原理和设计要点然后把电源和时钟这两个最容易翻车的环节单独拎出来说最后分享一些测试板调试方面的经验。全程会结合不少同类项目里容易踩的坑希望能帮读者少走弯路。1. 这类三合一信号链到底解决了什么痛点先说一个反直觉的结论对多数工业级和实验室级采集系统而言设计的核心难点从来不是分辨率不够而是信号链不匹配。什么意思MCU内置ADC往往速度慢、参考电压精度差独立的高精度ADC需要自己配驱动运放、基准源、隔离和校准逻辑而多通道系统还要考虑各路增益误差和失调误差的一致性。于是很多板卡做出来以后单看任何一条链路指标都还行但通道间一致性、温漂表现、增益切换时的建立时间统统不达标。1.1 从拼芯片到拼系统的转变把ADC和可编程增益放大器PGA集成到同一芯片中第一个实质性好处理所当然是减少了信号路径上的分立器件数量。以经典的四通道采集前端为例传统方案里每一路都要有独立的仪表放大器、抗混叠滤波器、钳位保护电路然后经过多路复用器进入ADC。这中间每一个环节都在给信号打折运放的失调电压、偏置电流会被折算进ADC的输入端模拟开关的导通电阻和谐波会引入非线性甚至PCB走线的寄生电容都会改变滤波器的截止频率。集成方案的逻辑是模拟前端和转换器在出厂前就完成了内部匹配。数字可变增益放大器DVGA不是像老式方案那样用MOSFET切换反馈电阻它是在后端数字域或精密的模拟域做增益控制带宽、噪声、增益步进这几项参数是联调过的。用户看到的接口是一个标准SPI或并行端口配置寄存器写一个值增益就变了再写一个值采样率和通道选择就切换了。省心且可复现性好。1.2 集成度高对系统级指标的三点提升同步性更好。多通道同时采样时如果共用同一个时钟和同一个转换控制信号通道间的通道延迟偏差可以控制在皮秒到纳秒级。分立方案里每个ADC的孔径延迟不同系统误差会有明显差异。校准成本下降。芯片内部通常留有自校准机制对上电失调、增益误差做一次修正精度就能恢复到接近理想值。这个校准动作可以在产品出厂时做一次也支持在运行中周期性触发。量产一致性佳。分立方案里每一批次的运放和ADC组合误差分布都不一样产线得逐台校准。集成方案里大部分误差源被内部修调掉了产线只需要做一次零点和满量程校准甚至有些芯片完全免校准。1.3 适合用这类方案的实际应用画像从我接触过的项目来看这类信号链的典型用户有三类。第一类是便携式测试仪器比如手持示波表、数据记录仪空间紧张但指标要求不低第二类是多参数工业监控设备需要同时采集压力、温度、振动、流量等多路信号幅度范围差好几个数量级第三类是医疗电子和科研设备对噪声和线性度有较高要求且希望把方案做小、功耗做低。如果一个应用只需要单路、固定增益、高精度采样那单独的16位或24位ADC芯片就行了没有必要上这种多合一方案。但如果系统有一路高精度高速 多路中速 动态范围大的复合需求这种集成芯片的性价比优势会非常明显。2. 高速16位ADC通道指标拆解与采样链路设计16位、高速这两个词放在一起通常是SAR和流水线架构的天下。逐次逼近型SARADC在中等采样率下能做到极好的功耗和延迟平衡流水线结构则适合更高采样率但会有流水线延迟。具体支持哪种模式得看芯片手册但任何一颗16位高速ADC的核心指标绕不开下面这几项。2.1 信噪比与有效位数才是真实分辨率很多初学者只看位数觉得16位ADC就是16位精度。实际上ADC的精度受到热噪声、时钟抖动、参考电压噪声、量化噪声的共同制约。信噪比SNR和有效位数ENOB才是衡量一个ADC真实水平的指标。ENOB的计算公式是ENOB (SNR_fs - 1.76) / 6.02比如一颗16位ADC数据手册标称SNR典型值为85dB满量程正弦输入那么ENOB (85 - 1.76) / 6.02 ≈ 13.8位也就是说有效精度不到14位。这很正常16位是编码分辨率ENOB受限于模拟前端质量。如果前端有源滤波器引入了噪声ENOB还会进一步掉。提示选择高速16位ADC时不要只盯着16-bit这个词。把SNR、THD、SFDR、ENOB这四项拉出来对比才是真正拉开差距的地方。在信号链设计上要保住这颗ADC的ENOB前端驱动放大器的噪声和失真必须显著优于ADC本身的指标。经验值驱动运放的总谐波失真应比ADC的THD低6到10dB以上否则ADC自身的优秀指标会被前端拖垮。2.2 驱动放大器选型中的为什么高速高精度ADC的前级驱动本质上是给ADC的采样电容提供一个足够的瞬态充电电流同时把信号源的输出阻抗转成ADC期望的低阻抗。SAR ADC的输入会在采样时刻产生反冲毛刺驱动运放需要在采样窗口内把电荷补充回来如果运放带宽或压摆率不够采样值就会偏小直接表现为增益误差和失真增大。我常用的选型思路是运放的单位增益带宽至少为ADC采样率的5到10倍。压摆率要满足最大输入信号幅度下的转换速率SR ≥ π × f_in × V_peak。对于16位精度运放自身的电压噪声密度和电流噪声密度要折算成输入等效噪声确保低于ADC的一个最低有效位LSB。输出级要能驱动ADC的输入电容通常几pF到几十pF必要时在运放输出和ADC输入之间加RC滤波电阻要小典型10到50Ω电容按照带宽需求来选。所谓钳位电路阻容值怎么选就是这个环节的具体话题。RC的值不是拍脑袋定的它要和ADC内部采样电容的电荷再分配行为匹配。电阻太小反冲能量大电阻太大建立时间不够。这个参数最好参考ADC手册里推荐的驱动电路或者用TINA-TI、LTspice做一次瞬态仿真来验证。2.3 采样时钟的抖动预算怎么分对一个采样率在几十MSPS以上的16位ADC时钟抖动对SNR的影响几乎成为决定性因素。时钟抖动的贡献公式可以近似写成SNR_clock -20 × log10(2π × f_in × t_jitter)假设输入信号频率是10MHz想让时钟抖动对SNR的影响不高于80dB那么t_jitter需要小于约0.16ps RMS。注意这是纯时钟抖动的影响实际系统里还有孔径延迟、电源噪声引入的抖动。所以高速ADC采样时钟必须用低抖动时钟芯片严禁直接用MCU的普通GPIO翻转来做采样时钟。这个道理很多新手没想明白CPU主频再高GPIO的抖动也在几十皮秒到几百皮秒量级用在低速采样无感一旦进入高速高精度采样ENOB会掉得非常快。配合定时器触发ADC去采样时同样需要关注触发信号的抖动这直接关系到采样间隔的均匀性。3. 四通道14位ADC的同步扫描与DMA数据搬运逻辑四通道14位ADC这个配置在现成方案里见得非常多的用途是多路模拟量的低频监测。不需要每路都配一颗独立的ADC那样成本高、面积大也不需要像高速ADC那样考虑极端的时钟抖动。四通道集成ADC真正的问题在于如何让四路信号有序、高效、不丢失地进入MCU或DSP的数据空间。3.1 扫描模式、循环采样与DMA的配合现在MCU里集成ADC的常规玩法是多通道扫描 循环采样 DMA搬运。芯片内部的多路选择器在每次触发到来时依次选通通道0、1、2、3然后分别转换转换结果依次写入数据寄存器。这个过程中CPU几乎不需要介入DMA会自动把每次转换结果搬到内存数组里。这里有个非常经典的坑DMA搬运的到底是一组完整的数据帧还是单通道数据流。如果配置不对DMA可能只搬第一个通道的数据后面的通道数据全部覆盖掉了。正确的做法是把DMA设置为循环模式并且数据长度等于通道数乘以每次采样的字节数。比如四个通道每个通道一个16位结果设置每次DMA传输4个半字内存数组长度4开启循环这样每个扫描周期结束四个通道的数据就整齐地排在数组里。注意通道切换是有稳定时间的。ADC内部的多路选择器切换到新通道后采样电容需要重新充电因此扫描模式下每通道的采样时间要设置得足够长否则后一个通道会串进前一个通道的信号。在STM32的HAL库配置里就是那个SamplingTime参数别用最低档。3.2 注入模式、中断与外设联动四通道14位ADC在固件上的灵活性还体现在支持注入模式。所谓注入模式相当于一个高优先级插入它可以在规则转换的间隙插入一个额外的转换序列通常用于数模PID控制中需要同步抓拍某一瞬间电流电压的场景。比如一个电机控制应用定时器在PWM的特定点触发注入通道开始转换这样软件可以在固定的相位点获取电流值方便做FOC矢量控制。涉及FOC定时器触发ADC采样时这个机制几乎是标准操作。中断和DMA怎么选如果只是把数据收集回来做离线处理DMA的效率和可靠性远超中断。但如果每采到一个值就要立即做判断比如对比阈值后触发保护动作那就得在转换完成中断里写快速处理逻辑。我的建议是数据通道用DMA控制/告警逻辑用注入通道中断两者各司其职。3.3 多通道芯片级集成带来的优势回到文章标题里这颗四通道14位ADC如果它和前面的16位ADC之间还有一个共享的数据总线和校准引擎那它的价值比单买一颗四通道ADC更大。因为芯片内部的校准算法可以统一修正每一路的增益误差和失调误差我在固件里只需要写一条校准完成查询指令读到的四路数据已经在数学上对齐到同一个参考基准。相比外置四通道ADC还要自己维护每路校准系数表省掉的固件工作量是实打实的。这个统一基准的理念也延伸到系统的整体设计。一个采集系统里如果有多个ADC芯片每颗芯片的参考电压都要单独处理稍有偏差通道间就有offset差。而集成方案天然规避了这个问题这在做多点温度测量、电池组单体电压监测这类需要通道一致性极高的应用中能减少大量标定时间。4. 数字可变增益放大器为什么要可变增益以及带宽-增益-噪声三角约束标题里的Digital Variable Gain Amp部分可能是很多工程师容易忽略但实际用起来最能改善体验的功能模块。它的本质是让信号链能同时适应大幅值和小幅值输入而不需要硬件改动。4.1 传统固定增益方案的局限在传统的固定增益信号链里为了同时测一个0.5V的信号和一个0.02V的信号设计者往往只能折中选取一个中间增益结果两个信号都得不到最佳动态范围。如果信号幅度本身在实时变化比如一个回波信号近处强远处弱固定增益系统动态范围不足小信号容易被噪声吃掉大信号又可能削顶。解决办法通常是外置PGA用模拟开关切换反馈网络但模拟开关的导通电阻和电容会带来失真切换过程和切换毛刺也对后端电路造成冲击。数字可变增益放大器DVGA则不同它的增益控制大多是级联式精密电阻网络实现的用开关量控制但不经过MOSFET信号路径或者直接在数字域做因而增益步进小比如每步0.5dB、误差小、切换速度快。4.2 增益、带宽与噪声的三角关系任何放大器在增益变化时都会面临三个指标互相权衡的局面输入等效噪声主要取决于输入级增益调高后输入源阻抗和反馈网络带来的噪声也会被放大表现为输出噪声变大。带宽高增益下运放的单位增益带宽不足以维持原有带宽增益提升多少带宽往往要打折多少。失真增益越高输出摆幅越接近电源轨交越失真和饱和失真风险越大。所以设计接收机、声呐、超声波前端这类对增益实时调节有要求的系统时正确的做法是分段分配增益在模拟端用DVGA完成粗增益的快速调整把信号拉到一个合适幅度然后在数字域做细增益的校准和AGC。二者配合才能在不牺牲信噪比的前提下实现一个比较大的动态范围。4.3 AGC算法的工程实现一个典型的AGC自动增益控制流程是这样的每帧数据采完后计算信号峰值或者RMS值和目标电平做比较然后通过一个PID或者查表策略更新DVGA的增益寄存器。这里有几个工程细节值得注意增益调整不要一步到位要设置步进上限比如每次增益改变不超过6dB避免AGC调整导致信号产生明显台阶感。在改变增益的那一帧数据输出端的噪声和幅度都会发生跳变软件层要做去抖处理或者这段时间丢弃不用于测量。增益变化前后需要留出建立稳定时间芯片手册通常会给出一个增益切换建立时间在切换后等待这个时间再采集数据。我在做声学测量设备时整个AGC环路最耗时的反而不是算法本身而是调试不同输入幅度下的增益切换时机。如果用这款集成DVGA最大的便利是芯片手册会给出不同增益档位下的建立时间直接用就行不用自己测量模拟开关的导通延迟。5. 电源与时钟最容易翻车的两个环节不管16位ADC还是14位ADC对电源噪声和参考电压纯净度的敏感度都远超数字芯片。这也是为什么搜索关键词里adc电源纹波降低板卡底噪会反复出现。5.1 为什么ADC对电源纹波这么敏感ADC内部的比较器、参考缓冲器、采样开关都依赖电源轨提供偏置和参考。电源上的纹波会直接调制参考电压进而被当作信号采入转换结果。尤其当纹波频率落在信号频带内时几乎没有滤波器能把它去掉。一个典型现象是示波器测芯片供电脚很干净但FFT频谱上在某个频率出现一个固定杂散排查后发现是DC-DC的开关频率。解决思路分三个层次电源树设计ADC的数字电源和模拟电源分开供电最好从源头就用两颗LDO数字LDO之后加磁珠和RC滤波再接模拟LDO。去耦电容布置每个电源引脚放100nF和10nF并联大容量电解电容放在供电入口。放的位置要紧贴引脚过孔直接打到引脚焊盘下方尽量减少走线电感。参考电压处理参考电压引脚往往是整个ADC最敏感的引脚需要单独加一个RC滤波甚至外部参考源芯片。5.2 测试板降低底噪的具体技巧ADC测试中降低板卡底噪的办法是我早期常被问到的主题。我自己在调试一块测试板时总结了几个非常有效的措施PCB设计阶段模拟地和数字地做单点连接ADC的AGND和DGND引脚附近用一个0Ω电阻或者磁珠连接。不要在ADC下方铺设大面积的数字信号线中间隔一个完整的模拟地平面。采样时钟尽量用差分走线远离数字数据线必要时在PCB上开槽隔离。如果测出来的底噪以白噪声为主一般是前端运放或者参考源噪声占主导如果是尖峰状噪声重点查时钟耦合和开关电源串扰。在采样数据的后端加数字滤波与均值平滑。一个滑动平均滤波或者一阶IIR滤波能将噪声有效值压到原来的几分之一但要注意有效带宽随之下降。5.3 参考电压的选型和布局ADC的参考电压精度直接决定绝对测量精度。常见的选择是外部精密基准源比如REF50xx系列或者ADR45xx系列的电压基准温漂系数低至2ppm/°C级别。参考输出要和ADC的REF引脚之间加一个RC低通通常取1到10Ω串联、0.1到1μF并联。这个RC的带宽要足够低以滤掉基准源的宽带噪声但又不能太低导致ADC在高速采样时参考电压来不及建立。我在某次调试中试过跳过基准IC直接用LDO输出接到REF引脚。静态测量看着没啥问题一旦ADC开始高速转换FFT上立刻冒出一堆谐波原因是LDO输出阻抗在数十kHz以上明显抬升根本扛不住内部电容阵列的负载动态。后来换成专用基准IC问题消失。所以特别提醒一句高精度ADC的参考电压千万不要图省钱省事用LDO顶替。6. 从原理图到实测调试过程与验证方法无论原理图设计得多周全最终一切都要在测试板上见真章。实际调试中我习惯按下述顺序一步步确认每步都有对应的测试方法和阈值能有效减少无效排查时间。6.1 上电初检与基础功能验证板上电后第一件事不是去读ADC转换结果而是先确认各路电源是否正常、有无严重压降和过流参考电压是否正确输出。之后用示波器查看模拟输入引脚上是否出现不合理的偏置电压可能因为运放虚短/虚断异常。接着通过SPI或并口读芯片ID寄存器确认通信正常。在这个阶段我很建议用逻辑分析仪或者示波器抓取一次完整的配置时序仔细核对写寄存器时时钟相位和数据格式。很多通信异常不是协议不对而是CPOL和CPHA配置错了。这类问题在MCU的HAL库配置中很常见改一个参数就好但能卡住人一整天。6.2 用正弦波和FFT量化SNR、THD、ENOB基础功能通了以后第二步是给ADC输入一个已知幅度、频率的低失真正弦波把采样数据搬进Python或MATLAB做加窗FFT分析。注意几个细节输入正弦波的THD必须比待测ADC好得多否则测出来的是信号源的失真。采样点数和信号频率要配合尽量满足相干采样条件或者至少加合适的窗函数比如汉宁窗抑制频谱泄漏。FFT结果的横轴不要用点数要换算成频率然后标注出基波、二次谐波、三次谐波以及各杂散的位置。通过FFT频谱可以直接读出SNR、SINAD、THD和SFDR。对比数据手册如果ENOB差出1位以上优先查处时钟、电源、参考电压以及前端驱动电路。这些位置任何一处不干净都会在频谱上留下痕迹。6.3 多通道一致性与增益切换测试四通道14位ADC还需要额外验证通道间一致性。具体做法是给所有通道输入同一个直流或者低频信号连续采样比较四路数据之间的差。如果发现某一路明显偏大或偏小检查该路的输入缓冲和前级电阻网络是否有电阻焊错或虚焊。DVGA的测试要重点关注增益切换瞬间的数据跳变和建立时间。用两个信号幅度差比较大的输入快速让AGC调节增益观察输出波形是否有明显的台阶状失真或不正常振荡。如果发现有轻微振铃可以在AGC算法里增加限制或者调整增益切换时的步进和等待时间。这个环节经验极其重要因为直接关系到后续整个闭环控制系统的稳定性。6.4 长稳与温度实验最后留出时间做长稳测试。让系统连续工作几小时每隔一段时间记录一次零漂和温漂数据。这类集成信号链的温漂通常做得不错但板上如果存在离散的电阻分压网络它们的温漂系数不一致会拖累整体表现。一次可靠的长稳测试能发现很多短时间测试看不到的问题。我的习惯是所有测试数据和配置记录都严格存档包括测试日期、温度、固件版本、输入信号参数。这样后续如果系统出现异常可以快速回溯是哪个版本的固件或哪次改动引入的退化。7. 选型建议与最后一点体会如果要给初次接触这类集成信号链的工程师一个选型方向我建议先梳理清楚自己的需求清单16位高速通道的采样率需求是多少驱动这个通道的信号源阻抗和幅度范围是否明确四通道14位ADC各路是否需要同步采样还是可以容忍轮流转换各路间隔离度的要求是多少数字可变增益放大器的增益范围、步进、带宽是否满足信号动态范围接口类型是SPI还是并行最高接口速率是否满足数据吞吐需求功耗和封装尺寸有没有限制把这些需求逐条列出来再去筛选型号效率和准确度会高很多。切忌先挑芯片再套需求那样做出来的系统大概率有一两个指标是遗憾的。在实际项目中我发现很多硬件工程师对集成信号链的第一反应是贵或者不好控制但真正花时间把这类方案用好之后往往发现它减少的研发周期和调试成本远超芯片差价。特别是当产品和测试样机之间需要快速迭代时一个高度集成的信号链模块能让你把更多精力放在核心算法和系统业务逻辑上而不是反复和模拟信号的杂散搏斗。最后分享一个我自己的体会这类芯片最考验人的往往不是硬件而是你和数据手册之间的默契程度。手册里的应用图、推荐的驱动电路、时序参数表都是原厂工程师踩过无数坑后沉淀下来的最佳实践。我第一次用某款高速ADC时为了省事跳过了手册推荐的参考电压去耦电路结果FFT杂散反复排查了三天最后老老实实按手册补上两个电容一切恢复正常。从那以后我对参考设计四个字始终保持敬畏。希望这篇分析能帮你少走一些类似弯路在信号链设计上快速进入状态。
返回列表