ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

基于AD9226与AD8421的交流信号采集模块电路设计与调试

基于AD9226与AD8421的交流信号采集模块电路设计与调试 1. 为什么我要用AD9226AD8421搭这个采集模块前阵子帮一个做电机测试的朋友处理数据采集的问题他需要把传感器输出的微弱交流信号采进FPGA做实时分析。市面上现成的采集卡要么采样率不够要么输入范围固定死要么价格直接劝退。翻了一圈库存手头正好有AD9226和AD8421这两颗片子就琢磨着自己搭一个简易的交流信号采集模块。AD9226是一颗12位、最高65MSPS的模数转换器并行输出接口配合FPGA或者MCU的GPIO直接读就行不需要复杂的串行协议。AD8421则是一颗低噪声、高共模抑制比的仪表放大器增益用一颗电阻就能设定非常适合把差分小信号调理到ADC的输入范围内。这两颗片子搭在一起刚好覆盖“信号调理高速采集”这条链路做交流信号采集再合适不过。这篇文章面向的是有一定模拟电路基础、想自己动手做数据采集的硬件工程师或者电子爱好者。我会把电路设计的思路、关键参数的来龙去脉、PCB布局的注意事项、以及实际调试中踩过的坑都讲清楚。你照着做基本能复现出一个可用的交流信号采集模块。整个方案的核心关键词就是AD9226、AD8421、交流信号采集模块和电路图我会围绕这四个点展开。2. 整体方案设计与核心器件选型思路2.1 信号链路的整体架构整个采集模块的信号流向很清晰被测交流信号先进入AD8421做差分放大和共模抑制输出单端信号经过抗混叠滤波再送入AD9226进行模数转换最后数字输出给控制器读取。这个链路看起来简单但每一级的接口匹配和噪声控制都有讲究。我选择AD8421而不是普通的运放搭建差分放大电路核心原因是共模抑制比。在电机测试这类场景里信号线上往往叠加了很大的共模干扰普通运放搭建的差分电路电阻匹配稍有偏差共模抑制比就会急剧下降。AD8421的共模抑制比在增益为1时就有80dB以上增益提高后更是超过100dB这是分立方案很难达到的。而且它的输入噪声密度只有3nV/√Hz对于微弱的交流信号来说前端噪声直接决定了系统的有效位数。AD9226的选择逻辑则是基于采样率和接口的平衡。65MSPS的采样率对于大多数交流信号分析场景已经绰绰有余12位的分辨率在配合良好的前端调理时有效位数能做到10位以上。更重要的是它的并行CMOS输出接口不需要配置寄存器上电就能工作对于快速搭建原型非常友好。相比之下一些串行输出的ADC虽然引脚少但配置复杂调试周期长。2.2 电源方案与基准电压的选择AD9226需要模拟5V和数字3.3V或5V供电AD8421则需要正负双电源或者单电源供电。为了简化设计我选择了单5V给AD9226的模拟部分供电同时用一颗低噪声LDO产生3.3V给数字接口。AD8421这边为了处理正负摆动的交流信号我用了一颗电荷泵产生-5V配合5V形成±5V的双电源。这里有个细节值得展开AD9226的模拟输入范围由内部基准决定默认是1V到3V以2V为共模。也就是说输入信号需要被偏置到2V附近幅度不超过1V。AD8421的输出需要加上这个2V的直流偏置。我用了两颗精密电阻分压产生2V基准再通过一颗低噪声运放缓冲后注入AD8421的REF引脚。这个2V基准的精度和噪声直接影响采集精度所以分压电阻用了0.1%精度的金属膜电阻缓冲运放选了OPA2277这类低失调电压的片子。注意AD9226的输入共模电压必须严格控制在2V附近偏离太多会导致内部采样保持电路线性度下降。如果你用单电源给AD8421供电输出摆幅受限很难覆盖到2V±1V的范围所以双电源方案在这个设计里几乎是必须的。2.3 增益设定与抗混叠滤波器的计算AD8421的增益公式是G 1 49.4kΩ / Rg。我需要把传感器输出的±10mV信号放大到±1V范围所以目标增益是100倍。代入公式100 1 49400 / Rg解得Rg 49400 / 99 ≈ 499Ω。我选了一颗499Ω的0.1%精度电阻实际增益误差在可接受范围内。抗混叠滤波器放在AD8421输出和AD9226输入之间。AD9226的采样率设为25MSPS根据奈奎斯特准则输入信号带宽不能超过12.5MHz。但实际应用中我建议把截止频率设得更低一些比如5MHz这样可以给滤波器留出足够的过渡带。我用了一阶RC低通R50ΩC680pF截止频率计算为1/(2π×50×680e-12)≈4.68MHz。这个滤波器同时起到了隔离AD8421输出和ADC开关电容负载的作用R不能太大否则会引入额外的压降和噪声。3. 核心电路细节与实操要点3.1 AD8421外围电路的关键细节AD8421的引脚不多但每个引脚的处理都不能马虎。输入端的两个引脚需要接差分信号如果信号源是单端的可以用一颗电阻把负输入端偏置到合适的共模电压。我在输入端串联了10Ω电阻并并联了100pF电容组成一个简单的RFI滤波器防止高频干扰进入放大器。这个技巧在电机测试环境里特别有用因为电机换向时会产生大量高频噪声。增益电阻Rg的走线要尽量短并且远离数字信号线。我见过有人把Rg放在板子边缘结果增益随温度漂移很大后来发现是走线太长引入了寄生热电偶效应。Rg的两端最好直接连到AD8421的RG引脚中间不要打过孔。REF引脚的驱动能力需要特别注意。AD8421的REF引脚输入阻抗大约是20kΩ如果直接用电阻分压驱动分压点的等效阻抗会与REF引脚阻抗形成分压导致实际偏置电压偏离设计值。所以必须加缓冲运放。我用的OPA2277接成电压跟随器输出直接连到REF引脚同时在运放输出和REF引脚之间串了10Ω电阻并接了0.1μF电容滤除高频噪声。3.2 AD9226的模拟输入与时钟处理AD9226的模拟输入是差分结构虽然可以单端驱动但差分驱动能获得更好的偶次谐波抑制。我的设计里AD8421输出的是单端信号所以AD9226的负输入端通过一颗0.1μF电容接地正输入端接信号。这种接法会损失一些性能但对于12位精度来说影响不大。时钟输入是AD9226设计中最容易出问题的地方。时钟信号的抖动会直接转化为采样噪声所以时钟源的选择很关键。我用了一颗低抖动的晶振通过一个LVPECL到CMOS的电平转换芯片送入AD9226的CLK引脚。时钟走线要包地处理并且远离模拟输入线。如果时钟线必须跨越模拟区域中间要加地平面隔离。提示AD9226的时钟输入有一个内部缓冲器输入电平标准是CMOS。如果你用FPGA直接驱动时钟注意FPGA的IO电平标准要设置正确否则可能导致时钟占空比失真进而影响采样精度。3.3 PCB布局与接地策略这个电路的PCB布局比原理图更重要。我把它分成了三个区域模拟区AD8421和基准电路、混合信号区AD9226、数字区输出接口。三个区域的地平面通过0Ω电阻或者磁珠在单点连接避免数字地上的噪声窜入模拟地。AD9226的模拟电源引脚和数字电源引脚要分别去耦。模拟电源用10μF钽电容并联0.1μF陶瓷电容数字电源用0.1μF陶瓷电容就够了。去耦电容要尽量靠近引脚回路面积越小越好。我见过有人把去耦电容放在板子背面结果高频性能一塌糊涂。AD8421的输入走线要对称差分对的两条线长度要一致并且尽量靠近。如果输入端有连接器连接器的地引脚要就近接到模拟地。整个模拟区域最好用铺铜包围并在地铜上打足够的过孔连接到内部地平面。4. 完整实操过程与关键环节实现4.1 元器件清单与选型建议先把整个模块的物料清单列出来方便你对照采购。核心器件就是AD9226和AD8421这两颗在主流渠道都能买到。电阻电容我优先选了0.1%精度的金属膜电阻和C0G材质的陶瓷电容温度系数和精度都有保障。器件类别型号/参数数量备注ADCAD9226ARSZ112位65MSPS仪表放大器AD8421ARMZ1低噪声基准缓冲运放OPA2277UA1低失调负压产生ICL76601电荷泵晶振25MHz1低抖动增益电阻499Ω 0.1%10805封装分压电阻10kΩ 0.1%2产生2V基准去耦电容0.1μF/10μF若干陶瓷/钽电容滤波电容680pF C0G1抗混叠连接器SMA/排针若干按需选择选型的时候有个经验AD8421有ARMZ和ARZ两种封装ARMZ是MSOP封装体积小但焊接难度大ARZ是SOIC封装手工焊接友好。如果你是自己手工焊建议选ARZ。AD9226也有多种封装ARSZ是SSOP引脚间距0.65mm需要一定的焊接功底。4.2 电路图分模块解析整个电路图我分成四个模块来看。第一个模块是电源部分外部输入5V一路直接给AD9226的模拟电源另一路经过LDO产生3.3V给数字接口还有一路经过ICL7660产生-5V给AD8421的负电源引脚。ICL7660的输出需要加滤波电容否则开关噪声会耦合到放大器输出。第二个模块是基准电压产生5V经过两颗10kΩ电阻分压得到2.5V再经过OPA2277缓冲后通过电阻分压网络调整到2V。这里我用了两级分压第一级产生2.5V第二级用一颗10kΩ和一颗40kΩ电阻分压得到2V。缓冲运放的同相输入端接2V输出接AD8421的REF引脚。第三个模块是AD8421的放大电路输入差分信号经过RFI滤波后进入IN和IN-RG引脚之间接499Ω增益电阻REF引脚接2V基准输出经过RC低通滤波后送到AD9226的正输入端。第四个模块是AD9226的采集电路模拟输入正端接滤波后的信号负端通过0.1μF电容接地时钟输入接25MHz晶振数字输出D0-D11直接引出到排针供外部控制器读取。4.3 焊接与调试步骤焊接顺序建议先焊电源部分确认各路电压正常后再焊模拟部分最后焊ADC。电源部分焊完后先不接负载用万用表测量各路电压5V输入应该在4.9V到5.1V之间3.3V输出应该在3.25V到3.35V之间-5V输出应该在-4.8V到-5.2V之间。如果负压不对检查ICL7660的振荡电容是否接好通常用10μF电容接在OSC引脚和地之间。模拟部分焊完后先不接ADC用信号发生器给AD8421输入端送一个1kHz、10mV峰峰值的正弦波用示波器测AD8421输出。理论上应该看到1V峰峰值的正弦波偏置在2V。如果输出幅度不对检查增益电阻是否焊错如果偏置不对检查REF引脚电压是否稳定在2V。ADC部分焊完后先给时钟引脚送25MHz时钟用示波器确认时钟信号干净、占空比接近50%。然后给模拟输入送一个已知幅度的直流电压读取数字输出验证转换码是否与输入电压对应。AD9226的输出码是二进制补码格式输入2V时输出码应该是0x800输入3V时是0xFFF输入1V时是0x000。注意调试时一定要先确认时钟信号正常再上电ADC否则ADC可能进入不确定状态。我遇到过时钟没接好导致ADC输出全为0的情况排查了半天才发现是时钟线虚焊。4.4 实际采集数据的验证方法模块调通后我用信号发生器送了一个10kHz、5mV峰峰值的正弦波增益设为100倍理论上ADC输入端应该是500mV峰峰值。采样率设为25MSPS采集1024个点做FFT分析。结果显示基波幅度对应约9.8位有效位数二次谐波比基波低约65dB三次谐波低约70dB。这个性能对于简易采集模块来说已经相当不错了。如果你没有信号发生器也可以用单片机产生PWM波经过RC滤波后得到正弦波作为测试信号。虽然纯度不如专用信号源但用来验证采集链路是否工作足够了。我早期调试时就是用STM32的DAC输出正弦波成本低而且方便。5. 常见问题与排查技巧实录5.1 输出噪声大、有效位数低这是最常见的问题。先检查AD8421的输入端是否悬空悬空时放大器会放大环境噪声输出看起来就是一片杂乱。如果输入端接了信号源但噪声仍然很大检查信号源的地是否与采集模块的地共地。不共地会引入很大的共模干扰AD8421虽然共模抑制比高但也有极限。另一个常见原因是基准电压不稳。用示波器交流耦合档测REF引脚如果看到明显的纹波说明缓冲运放自激了。OPA2277接成跟随器时输出端要串一个小电阻比如10Ω再接到容性负载否则容易振荡。我在REF引脚旁边放了0.1μF电容如果运放输出直接接这个电容相位裕度会下降串电阻后就没问题了。5.2 ADC输出码跳动大如果ADC输出码在输入不变的情况下跳动超过±3LSB先检查时钟质量。时钟抖动是导致码跳动的首要原因。用示波器测时钟引脚看上升沿是否陡峭、是否有过冲。如果时钟来自FPGA尝试降低驱动强度或者串联33Ω电阻匹配阻抗。电源噪声也会导致码跳动。用示波器测AD9226的模拟电源引脚交流耦合档应该看到小于1mV的纹波。如果纹波大检查去耦电容是否焊好或者换用更低噪声的LDO。我试过用开关电源直接给AD9226供电码跳动达到±10LSB换成LDO后降到±2LSB以内。5.3 增益不准确或随温度漂移增益误差主要来自增益电阻的精度。如果你用了1%精度的电阻增益误差可能达到1%对应100倍增益就是1倍的偏差。换成0.1%精度后增益误差降到0.1%以内。如果增益随温度变化明显检查增益电阻的温度系数普通厚膜电阻的温度系数可能达到100ppm/°C换成薄膜电阻可以降到25ppm/°C以下。还有一个容易被忽略的点AD8421的增益公式里的49.4kΩ是内部电阻的标称值实际值有±1%的初始误差。如果你需要精确增益可以在Rg回路里串一个微调电位器实测输出幅度后调整到目标值。我在要求高的场合就是这么做的。5.4 高频信号采集时幅度衰减如果你采集的信号频率超过1MHz发现输出幅度比预期低很可能是抗混叠滤波器的截止频率设得太低。我一开始用50Ω和680pF截止频率4.68MHz采集5MHz信号时衰减了约1dB。后来把电容换成220pF截止频率提高到14.5MHz5MHz信号的衰减就小到可以忽略了。但截止频率也不能太高否则高频噪声会混叠到有用频带。折中方案是根据实际信号最高频率来定截止频率设为信号最高频率的2到3倍比较合适。比如你最高采集5MHz信号截止频率设在10MHz到15MHz之间。5.5 常见问题速查表现象可能原因排查方法解决措施输出噪声大输入端悬空或共地不良检查输入连接和地线接信号源并确保共地输出噪声大基准电压纹波大示波器测REF引脚缓冲运放输出串电阻ADC码跳动大时钟抖动测时钟上升沿改善时钟源或串联匹配电阻ADC码跳动大电源纹波大测模拟电源引脚更换LDO或加强去耦增益不准增益电阻精度低测电阻实际值换0.1%精度电阻增益温漂电阻温度系数大加热测试换薄膜电阻高频衰减滤波器截止频率低计算截止频率减小滤波电容无输出时钟未接或虚焊测时钟引脚重新焊接时钟线6. 几个容易被忽略的实操心得第一个心得是关于AD8421的输入偏置电流。它的输入偏置电流典型值是1nA看起来很小但如果输入端对地阻抗很高比如接压电传感器这个偏置电流会在阻抗上产生压降导致输出偏置漂移。解决办法是在输入端对地接一颗1MΩ电阻给偏置电流提供回路。这个电阻的噪声要算进去1MΩ电阻在室温下的热噪声大约是127nV/√Hz对于高阻抗传感器来说是可以接受的。第二个心得是关于AD9226的数字输出驱动能力。它的输出可以直接驱动FPGA的IO但如果走线超过10cm最好在输出端串22Ω到33Ω的电阻减少反射和过冲。我一开始没串电阻采集数据时偶尔出现误码串了33Ω后误码消失。这个电阻要放在靠近ADC输出引脚的位置不能放在接收端。第三个心得是关于电源上电顺序。AD9226要求模拟电源先于数字电源上电或者同时上电。如果数字电源先上电模拟部分还没建立ADC可能进入闩锁状态电流急剧增大。我在电源部分加了一颗简单的RC延时电路让数字3.3V比模拟5V晚几十毫秒建立彻底解决了这个问题。如果你用FPGA控制也可以在FPGA配置完成后再使能ADC的电源。第四个心得是关于测试点的预留。PCB上一定要给关键信号留测试点AD8421的输出、REF引脚、AD9226的时钟输入、模拟电源。调试时用示波器探头直接点测试点比到处找引脚方便得多。测试点用1mm的焊盘就行不用装元件需要时焊一根飞线出来。这个模块我前后打了三版PCB才稳定下来第一版是地平面分割不合理数字噪声窜到模拟部分第二版是基准缓冲运放自激第三版调整了布局和补偿才达到满意的性能。如果你第一次做建议先把原理图仔细检查一遍特别是电源和地的连接然后布局时严格分区能少走很多弯路。后续如果想扩展可以在AD9226输出后加一片FIFO缓存实现连续采集也可以把数字输出改成LVDS提高传输距离。
返回列表