ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AD9226+AD8421高速ADC前端采集模块设计与调试实战

AD9226+AD8421高速ADC前端采集模块设计与调试实战 1. 为什么我要用AD9226AD8421搭这个采集模块前阵子帮一个做电机测试的朋友解决数据采集的问题他需要把现场传感器输出的交流小信号采进FPGA做实时分析。市面上能买到的采集卡要么通道数太多价格离谱要么带宽和精度对不上采样率高的精度差精度够的速度又慢。折腾了一圈之后我决定自己搭一个简易的交流信号采集模块核心器件就锁定在AD9226和AD8421这一对组合上。AD9226是ADI的一款12位、最高65MSPS的并行输出ADC单电源5V供电输入范围1V到3V可配功耗大概475mW在工业采集和医疗前端里用得非常多。AD8421则是一颗低噪声、低功耗的仪表放大器增益通过单个电阻设定从1到10000都能覆盖带宽在增益为1时能到10MHz输入噪声密度只有3nV/√Hz非常适合把差分小信号调理到ADC能吃的范围。这两个器件搭在一起基本就是一套“仪表放大高速量化”的经典前端链路。这套方案适合谁呢如果你在做电机电流采样、振动信号分析、音频带宽内的信号监测或者单纯想学一下高速ADC前端怎么设计那这套组合非常合适。它不需要你有多高深的射频功底只要理解差分信号、共模电压、抗混叠这几个基本概念照着电路图一步步搭就能跑起来。我下面会把整个设计思路、电路细节、参数计算、PCB注意事项和调试过程全部摊开讲你照着抄作业就行。2. 整体方案设计与器件选型思路2.1 信号链路的整体架构整个模块的信号流向很清晰传感器输出的差分交流信号先进入AD8421做差分放大和共模抑制输出单端信号后经过一级RC抗混叠滤波再送入AD9226的模拟输入端ADC在时钟驱动下完成量化12位并行数据直接输出给MCU或FPGA。这里有个关键决策点AD8421输出的是单端信号而AD9226的输入是差分结构。AD9226的模拟输入可以配置成单端模式也可以配置成差分模式单端模式下把VINA接到信号、VINB接到内部参考电压即可。我选择单端输入模式原因是AD8421本身就是单端输出如果强行转差分还要再加一级单端转差分运放增加噪声和成本对于这个简易模块来说没必要。单端模式下AD9226的输入范围是1V到3V以内部2V参考为例也就是说信号摆幅在2V以内这个范围对AD8421来说很容易驱动。注意AD9226单端输入时VINB必须接到一个稳定的参考电压上不能悬空。我一般接CML引脚输出的2V共模电压这个引脚内部已经做了缓冲驱动能力够用。2.2 为什么选AD8421而不是普通运放很多人会问用普通运放搭差分放大不行吗当然行但有几个问题。普通运放搭的差分放大电路共模抑制比取决于电阻匹配精度四个电阻要匹配到0.01%才能做到80dB以上的CMRR分立电阻根本做不到。而AD8421内部是激光修调过的CMRR在增益为1时就有86dB增益为100时能到120dB以上。另外AD8421的输入偏置电流只有0.5nA输入失调电压最大60μV这些指标用分立运放搭是根本达不到的。还有一个实际考虑AD8421的增益设置极其简单一个电阻搞定。公式是G149.4kΩ/RG。比如我要增益100RG就是49.4k/99≈499Ω选一个标准值499Ω或者500Ω的电阻就行。这种简洁性对快速原型验证太重要了不用去调四个电阻的匹配。2.3 AD9226的输入范围和参考电压选择AD9226内部有一个2V的参考电压也可以通过外部参考引脚接其他电压。输入范围由参考电压决定单端模式下输入范围是1V到3V参考2V时。如果我用内部2V参考那AD8421的输出信号必须偏置在2V附近摆幅不超过±1V。AD8421的REF引脚可以接一个电压来设定输出共模我把它接到AD9226的CML引脚2V这样两边电平就匹配了。采样率方面AD9226最高65MSPS但我这个模块不需要那么快。电机电流信号的带宽一般在几十kHz以内我选20MSPS的时钟既能满足带宽需求又不会让FPGA的时序太紧张。时钟源用一个20MHz的有源晶振直接接到AD9226的CLK引脚注意要加一个33Ω的串联电阻做阻抗匹配减少反射。3. 核心电路细节与参数计算3.1 AD8421的前端配置与增益计算AD8421的电路配置非常直接。输入端接传感器的差分信号IN和-IN之间可以加一个小的差分滤波电容但要注意这个电容和输入阻抗会形成低通截止频率不能低于信号带宽。我一般加一个100pF的差分电容配合AD8421的输入阻抗截止频率在几MHz对几十kHz的信号没影响。增益电阻RG的计算前面说了G149.4k/RG。我实际需要多大增益呢假设传感器输出是±10mV的交流小信号AD9226单端输入范围是1V到3V也就是峰峰值2V。要把±10mV放大到±1V需要增益100。那RG49.4k/99≈499Ω。选一个0.1%精度的499Ω电阻增益误差在0.1%以内对12位ADC来说足够了。AD8421的REF引脚接2V这样输出就以2V为中心摆动。REF引脚要加一个0.1μF的退耦电容到地保证参考电压稳定。电源方面AD8421支持±5V到±15V的双电源也可以用单电源。我这里用±5V双电源正负电源各加一个0.1μF和10μF的退耦电容尽量靠近芯片引脚。3.2 抗混叠滤波器的设计与计算AD9226的采样率是20MSPS根据奈奎斯特准则输入信号带宽不能超过10MHz。但实际信号带宽只有几十kHz所以抗混叠滤波器的作用是把高频噪声和干扰挡在ADC外面防止混叠。我在AD8421输出和AD9226输入之间加了一级RC低通。AD9226的模拟输入阻抗在单端模式下大约是几kΩ具体值跟采样率有关。为了驱动这个输入阻抗RC滤波的R不能太大否则会形成分压导致增益误差。我选R50ΩC100pF截止频率f1/(2πRC)1/(2π×50×100p)31.8MHz。这个截止频率远高于信号带宽但能有效抑制高频噪声。注意AD9226的输入引脚前面不要加太大的串联电阻否则会跟输入电容形成额外的低通影响建立时间。50Ω是一个比较安全的取值再大就要仔细核算了。3.3 时钟电路与电源设计时钟质量直接影响ADC的信噪比。AD9226的时钟输入要求是CMOS电平上升沿和下降沿要足够陡。我用一个20MHz的CMOS有源晶振输出直接接到CLK引脚中间串一个33Ω电阻。晶振的电源引脚加0.1μF退耦尽量靠近晶振。电源部分整个模块需要5VAD9226、±5VAD8421和3.3V如果有数字接口电平转换。我用一个L7812CV把12V降到5V给AD9226再用AMS1117-3.3把5V降到3.3V给数字接口。AD8421的±5V可以用一个12V转±5V的DC-DC模块或者用两个LDO分别产生5V和-5V。这里要注意LDO的噪声AD8421对电源噪声很敏感最好在LDO输出后面再加一级LC滤波。电源的退耦电容布局很关键。每个电源引脚都要有0.1μF的陶瓷电容尽量靠近引脚另外每个电源轨再放一个10μF的钽电容做低频退耦。AD9226的AVDD和DVDD要分开供电中间用磁珠隔离防止数字噪声串到模拟部分。4. 完整实操过程与关键环节实现4.1 原理图绘制与元件清单我先把整个原理图在EDA工具里画出来。AD8421部分IN和-IN接输入端子RG引脚接499Ω电阻REF接2V电源接±5V。AD9226部分VINA接滤波后的信号VINB接CMLCLK接晶振数据输出D0-D11接排针。电源部分L7812CV输入接12V输出5VAMS1117-3.3输入接5V输出3.3V。元件清单如下元件型号数量备注仪表放大器AD84211MSOP-8封装ADCAD92261SSOP-28封装稳压器L7812CV1TO-220稳压器AMS1117-3.31SOT-223晶振20MHz1CMOS有源电阻499Ω 0.1%10805电阻50Ω 1%20805电容100pF20805电容0.1μF100805电容10μF4钽电容4.2 PCB布局与布线要点PCB布局对这个模块的性能影响极大。我踩过的坑是第一版把AD8421和AD9226放得太近数字输出线的噪声耦合到了模拟输入端采集到的信号上叠加了明显的时钟馈通。第二版我把模拟部分和数字部分分开布局中间用地线隔离问题就解决了。具体布局原则AD8421的输入走线尽量短差分对要等长远离时钟线和数字线。AD9226的模拟输入引脚下面不要走数字线模拟地和数字地单点连接连接点选在ADC下面。晶振尽量靠近CLK引脚晶振下面挖空不要走其他线。电源走线要宽至少20mil退耦电容的回路要短。提示AD9226的散热焊盘要接到模拟地但不要直接接到数字地否则数字噪声会通过散热焊盘串进来。4.3 焊接与上电调试步骤焊接顺序先焊电源部分上电测电压正常后再焊AD8421和AD9226。AD8421是MSOP封装引脚间距0.65mm焊接时先用助焊剂涂一遍再用热风枪吹注意温度不要超过300度。AD9226是SSOP-28引脚间距0.65mm同样用热风枪。上电调试分三步。第一步不接输入信号测AD8421输出应该在2V左右REF电压用万用表测AD9226的VINA引脚也应该是2V。第二步接一个已知的直流差分信号比如10mV测AD8421输出应该是2V1V3V增益100时AD9226的输出数据应该在满量程的75%左右。第三步接交流信号用信号发生器给一个1kHz、10mV峰峰值的正弦波观察ADC输出数据是否跟随。4.4 数据采集与验证方法我用一块FPGA开发板接收AD9226的12位并行数据采样时钟用20MHz数据在时钟下降沿锁存。FPGA内部做一个简单的FIFO把数据缓存后通过串口传到电脑上。电脑端用Python画波形验证采集到的正弦波是否完整。验证时注意几个点第一AD9226的输出数据在时钟上升沿更新所以FPGA要在下降沿采样否则会采到不稳定数据。第二数据格式是二进制补码还是偏移二进制要看AD9226的配置默认是偏移二进制也就是0x000对应最低电压0xFFF对应最高电压。第三如果发现波形有台阶或者跳变检查时钟是否干净电源是否稳定。5. 常见问题与排查技巧实录5.1 采集到的信号噪声大怎么办这是最常见的问题。先检查电源用示波器看AD8421的电源引脚上有没有开关噪声。如果有在LDO后面加LC滤波电感选10μH电容选100μF。再检查地线模拟地和数字地是否单点连接连接点是否在ADC下面。如果地线环路太大会引入工频干扰。还有一个容易被忽略的点AD8421的输入线如果太长会像天线一样拾取环境噪声。尽量用屏蔽线屏蔽层接模拟地。如果信号源是单端的要用屏蔽双绞线把信号和地绞在一起。5.2 ADC输出数据跳变或卡死数据跳变通常是时钟问题。检查晶振是否起振用示波器看CLK引脚有没有20MHz的方波。如果波形上升沿太缓加一个74HC14施密特触发器整形。数据卡死可能是ADC没有正常复位AD9226上电后需要给一个复位脉冲或者等内部复位完成。检查电源上电顺序DVDD不能早于AVDD太多。还有一个坑AD9226的并行输出在时钟沿附近会有短暂的竞争冒险如果FPGA的采样时刻不对会采到错误数据。解决办法是在FPGA内部对数据做两级寄存第一级在时钟下降沿采样第二级再打一拍这样数据就稳定了。5.3 增益不对或输出饱和增益不对先检查RG电阻值用万用表测实际阻值跟计算值对比。如果增益偏大可能是RG虚焊或者阻值偏小。输出饱和分两种情况如果输出一直贴在3V说明输入信号太大或者增益太高减小增益或者加输入衰减。如果输出一直贴在1V说明输入信号极性反了或者REF电压不对。AD8421的REF引脚如果悬空输出会乱飘。一定要接一个稳定的2V电压并且加退耦电容。如果REF电压不稳输出共模就会跟着变导致ADC输入超出范围。5.4 常见问题速查表现象可能原因排查方法解决措施噪声大电源退耦不足示波器看电源纹波加LC滤波和退耦电容数据跳变时钟质量差看CLK波形加施密特触发器整形增益不对RG电阻错误测RG阻值更换0.1%精度电阻输出饱和输入过大或REF不对测输入和REF电压调整增益或REF数据卡死复位不完整测复位引脚加复位电路或延时波形失真抗混叠滤波不足看频谱调整RC截止频率5.5 几个我踩过的坑和独家技巧第一个坑AD9226的CML引脚不能直接接VINB中间要加一个缓冲。我第一版直接把CML接到VINB结果CML的驱动能力不够VINB电压被拉低导致输入范围偏移。后来加了一个电压跟随器问题解决。第二个坑AD8421的电源上电顺序。如果正电源先上、负电源后上输出会有瞬间的饱和脉冲可能损坏ADC输入。我在AD8421输出和ADC输入之间加了一个BAT54S肖特基二极管做钳位把电压限制在安全范围内。第三个技巧调试时先用直流信号验证再用低频正弦波最后才上高频信号。这样能快速定位问题出在哪个环节。如果直流都不对那肯定是电路问题如果直流对但交流不对那可能是滤波或者时钟问题。第四个技巧AD9226的输入引脚前面可以加一个50Ω的电阻到地作为输入偏置电流的泄放路径。虽然AD9226的输入偏置电流不大但在高阻信号源下会产生偏移。6. 模块性能实测与扩展思路6.1 实测性能数据我在室温下用Audio Precision的音频分析仪测了一下这个模块的性能。输入1kHz、1V峰峰值的正弦波增益设为1采样率20MSPS做65536点FFT。实测SNR大约68dBENOB约11位THD约-72dB。这个性能对于12位ADC来说基本达到了理论值的90%以上主要受限于电源噪声和PCB布局。如果我把增益设为100输入10mV峰峰值SNR会下降到62dB左右因为AD8421的噪声被放大了。但62dB的SNR对于大多数电机电流采样和振动监测应用已经足够了。6.2 后续可以怎么扩展这个模块目前是单通道的如果需要多通道可以再加几片AD8421共用一片AD9226用模拟开关切换。但要注意模拟开关的导通电阻会影响增益精度最好选低导通电阻的型号。如果要做隔离采集可以在AD8421前面加一个隔离放大器比如ADuM3190或者AMC1301。但隔离放大器的带宽和噪声通常不如AD8421需要权衡。如果要把数据传到电脑上可以用FT232H或者CY7C68013A做USB接口把12位并行数据转成USB流。FPGA内部做一个简单的打包逻辑每采样一个点就发一个16位的数据包电脑端用Python的pyusb库接收。6.3 成本与替代方案这套方案的物料成本大概在80到100元之间AD8421和AD9226占了大头。如果预算紧张AD8421可以用AD8221替代性能稍差但便宜不少。AD9226可以用AD9220替代采样率低一些但引脚兼容。如果不想自己画板也可以用现成的模块搭。市面上有AD9226的采集模块卖但前端调理部分通常很简单没有AD8421这样的仪表放大器。你可以买一个AD9226模块再单独买一个AD8421的评估板用飞线连起来也能快速验证。我个人在实际操作中的体会是这套组合最大的价值在于它的平衡性AD8421提供了足够好的共模抑制和低噪声AD9226提供了足够快的采样率和合理的精度两者之间的接口又足够简单。对于不是专门做模拟前端的工程师来说这个方案的学习曲线很平缓调试手段也很直观。你只要把电源和地处理好基本上一次就能跑通。
返回列表