ARTICLE DETAIL

资讯详情

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

AD9914与HMC835组合的高速DDS+PLL频率合成方案详解

AD9914与HMC835组合的高速DDS+PLL频率合成方案详解 简介面向FPGA与射频控制开发者的AD9914和HMC835驱动调试资源基于Verilog语言实现两款芯片的SPI配置与寄存器控制逻辑适用于DDS信号源、跳频通信等应用场景。代码覆盖AD9914的扫频、定频、调频三种工作模式寄存器参数可灵活修改逻辑结构清晰适合有Verilog基础、正在调试DDS或锁相环芯片的工程师对照学习。资源共77个文件包含.v源码、.vhd模块、Quartus工程文件.qpf/.qsf/.bdf/.bsf、编译配置文件.qip、下载文件.jic/.sof及README说明文档压缩包仅1.31MB便于快速获取。项目内附PLL配置信息、引脚分配等辅助文件可直接在Quartus环境中打开工程逐步理解FPGA与射频前端芯片的SPI通信工程实现。已有893人学习下载适合作为FPGA控制射频芯片项目开发的实践参考。 刚拿到这个压缩包的时候我就知道这是一个做雷达、通信或者仪器类项目的老哥留下的典型工程资料。AD9914和HMC835.rar这两个型号放在一起基本就是一套完整的高速DDS宽带PLL频率综合方案HMC835负责提供低相噪的可变本振或采样时钟AD9914负责直接合成高速波形或产生精细跳频。无论你是做电子对抗、跳频电台、还是测试仪表里的信号源模块这套组合都是绕不开的经典架构。这个压缩包里的内容通常包含数据手册、参考原理图、寄存器配置表还有可能是别人调通了的全套固件或FPGA工程。但说实话光有文件是不够的很多人拿着这些资料照样调不出来问题往往出在对这两颗芯片协同工作的理解上。这篇文章我就基于这套组合把背后的设计逻辑、寄存器配置思路、硬件布板要点和调试时最容易踩的坑一次性讲透。1. 整体设计思路拆解为什么是DDS加PLL而不是单靠一颗芯片1.1 AD9914和HMC835各自扮演什么角色这两颗芯片单拿出来都是各自领域的猛将。AD9914是ADI家的旗舰级DDS芯片款速3.5 GSPS内置12位DAC理论上可以输出DC到1.4 GHz左右的信号。它最大的优势有两个一个是频率切换速度极快通过并行端口加载FTW频率调谐字可以达到纳秒级的跳频速度另一个是频率分辨率极细48位的频率调谐字在3.5 GHz的系统时钟下分辨率能达到微赫兹级别。这使得AD9914特别适合需要快速跳频、精确频率步进的应用。HMC835则是ADI原Hittite推出的宽带锁相环芯片内部集成了VCO压控振荡器频率覆盖范围可以做到33 MHz到4.05 GHz。它内部集成了完整的VCO不需要外置谐振腔所以环路设计相对简单而且相位噪声性能相当不错。HMC835承担的任务是提供一个高品质、可调频的参考时钟给AD9914或者在系统中作为独立的本振源使用。简单来说PLL负责把频率做到足够高、足够干净DDS负责把频率做得足够精细、跳得足够快。二者配合才能同时满足高频、低相噪、细步进、快跳频这四个看似矛盾的指标。1.2 采用DDSPLL混合架构的深层原因为什么不在单一芯片内部解决所有问题这是由芯片工艺和架构决定的。如果只用PLL比如只用HMC835你可以得到4 GHz的高频信号相位噪声也很优秀但频率分辨率受限于鉴相频率和分频比。想要实现赫兹级别的步进就必须降低鉴相频率而这会直接导致相位噪声恶化还会拉长锁定时间。PLL的锁定时间通常在几十到几百微秒级别这种速度根本无法满足快速跳频的需求。如果只用DDS比如只用AD9914频率分辨率极高跳频速度极快但输出频率上限受限于DAC性能和奈奎斯特采样定理。3.5 GSPS的采样率有效输出频率通常只能到几百MHz到1.4 GHz频率再高镜像抑制和杂散就完全失控了。而大多数射频系统需要的本振频率都在2 GHz以上甚至更高。所以最合理的架构就是把两者级联起来用HMC835锁定在一个固定或缓慢变化的频点上产生高纯度的时钟信号再用AD9914在这个时钟基础上进行精细的频率合成和快速跳变。这种方式组合了PLL的高频能力和DDS的快速跳频精细步进能力代价是系统复杂度上升但这在工程上是完全值得的。1.3 什么时候不需要这种组合写到这里必须泼一盆冷水。不是所有项目都需要DDSPLL这种复杂架构。如果系统只需要固定频点或者步进不高的本振一个HMC835加环路滤波器就足够了没必要接DDS额外增加杂散和噪声源。如果系统只工作在几百MHz以下对跳频速度要求又极高那单独用一颗AD9914可能更简单可靠。决定采用这套架构之前先问自己三个问题频率分辨率是否要求到Hz级跳频时间是否要求到μs级输出频率是否要求超过1 GHz如果三个答案都是肯定的才真正需要这套组合。2. 核心细节解析与实操要点引脚配置与参考时钟链路2.1 AD9914的电源和参考时钟设计注意事项查阅AD9914数据手册时第一页的红字部分就写着所有电源引脚都必须单独去耦。这句话在大多数芯片手册里都有模板化表述但AD9914是真不能马虎。它内部是3.3 V数字核心加1.8 V模拟核心的混合供电结构高速DAC的开关噪声对电源纹波极其敏感。实测下来的经验是模拟电源AVDD和数字电源DVDD不仅要在PCB上分区还要用磁珠或PI型滤波彻底隔离。每个电源引脚旁边的去耦电容组合应该是0.1 μF加10 μF的搭配而且0.1 μF的电容必须尽可能靠近芯片引脚距离不要超过1毫米。REFCLK引脚旁边的去耦同样关键这是DDS的命脉参考时钟上的任何噪声都会直接调制到输出信号上。2.2 HMC835环路滤波器设计的具体计算方法HMC835的电荷泵输出电流可以通过寄存器配置典型范围是0.04 mA到5 mA。环路滤波器的类型和带宽直接决定了PLL的锁定时间、相位噪声和杂散抑制水平。一个实用的初始配置是鉴相频率选100 MHz电荷泵电流选2.56 mA环路带宽选100 kHz左右相位裕度45度到50度。这里提供一个具体的环路滤波器计算流程以三阶无源环路滤波器为例计算归一化时间常数需要先确定环路带宽和相位裕度通常取45度到48度的相位裕度然后查表得出T1、T2、T3三个时间常数的比例关系。然后电荷泵增益Kp等于电荷泵电流除以2πVCO增益Kvco需要从HMC835的调谐灵敏度曲线中读取典型值在20到50 MHz/V之间具体数值取决于输出频段。分频比N等于VCO频率除以鉴相频率比如VCO输出3.5 GHz鉴相频率100 MHzN就等于35。得到这些参数之后根据锁相环的环路方程用标准的三阶环路滤波器设计公式可以算出C1、R2、C2、R3、C3这五个元件值。这里就不堆公式了强烈建议直接用ADI官方的模拟工具ADIsimPLL输入目标频率、鉴相频率、电荷泵电流、VCO增益这些参数工具会自动算出完整的环路滤波器元件值。经验之谈ADIsimPLL计算出来的理论值可以直接拿来打样但一定要预留不同封装的备用焊盘。实际调试中VCO的KVCO非线性会导致理论值偏大或偏小这时候就要靠调整R2的阻值来微调环路带宽。R2越小带宽越宽锁定越快但相噪会变差反之亦然。我一般会在PCB上预留一个并联位置方便调整。2.3 参考时钟链路分配10 MHz恒温晶振如何驱动两个芯片绝大多数系统的频率基准是一颗10 MHz的OCXO恒温晶振。但AD9914的参考时钟上限是3.5 GHzHMC835的参考输入是整数分频架构这两个芯片在频率上没法共用同一个本地震荡源所以链路分配需要动点脑筋。常用的方案是10 MHz OCXO输出经过一个功分器分为两路一路进入HMC835的参考输入通过其内部的可编程参考分频器倍频到所需频率作为DDS的参考时钟另一路不做倍频仅用于系统同步或直接作为AD9914的参考时钟但这样DDS输出频率会低于时钟频率意义不大。更实际的工程方案是让HMC835工作在整数边界模式输出一个高纯净度的点频比如3 GHz直接作为AD9914的REFCLK。这样AD9914的系统时钟是干净的3 GHz输出带宽可以覆盖DC到1.2 GHz。另一种做法是让AD9914自己产生参考时钟给HMC835使用但这样HMC835的相噪会被DDS的杂散直接污染除非做窄带滤波否则不推荐。无论采用哪种分配方式功分器之后必须加隔离放大器避免两颗芯片的反射信号通过参考链路互相串扰。否则经常会出现一个奇怪的现场单独测HMC835输出频率纯净单独测AD9914也正常但两个芯片同时上电后输出频谱上出现间隔等于参考频率的杂散。原因就是参考链路隔离度不够。3. 实操过程与核心环节实现频率规划与寄存器配置3.1 频率规划确定HMC835输出频率和AD9914分频系数的步骤先假设一个具体应用场景作为例子系统需要产生1.2 GHz到1.6 GHz的雷达线性调频信号调频带宽400 MHz调频时间100 μs频率步进1 MHz。第一步确定AD9914的系统时钟。选择3 GHz是一个合理值既低于芯片3.5 GSPS的极限又留有足够余量。系统时钟3 GHz针对1.2到1.6 GHz的输出频段信号在Nyquist带宽之内不需要谐波抑制处理但要注意镜像频率落在4.2到4.6 GHz远端经过低通滤波即可滤除。第二步配置HMC835输出频率为3 GHz。鉴相频率取100 MHz则N30这时HMC835的输出频率完全在VCO的覆盖范围内。查数据手册的VCO调谐灵敏度曲线在3 GHz附近KVCO大约为35 MHz/V。ADIsimPLL计算出的三阶环路滤波器元件值大致为C1等于100 pFR2等于2.2 kΩC2等于2.2 nFR3等于1 kΩC3等于220 pF。这个组合的环路带宽在80到100 kHz左右相位裕度约46度锁定时间实测在40 μs左右完全满足系统要求。第三步配置AD9914的采样时钟来源为外部REFCLK频率3 GHz。使用内部PLL倍频器时注意AD9914的内部锁相环倍频范围允许输入参考频率在100 MHz到500 MHz之间但我不建议你依赖内部倍频来产生3 GHz。原因在于内部倍频器是一个额外的噪声源并且它只能做整数倍频灵活性受限。外部直接输入3 GHz的干净时钟配合内部的采样时钟分频器才能发挥最好的SFDR性能。3.2 AD9914关键寄存器配置要点附实际寄存器值AD9914的寄存器配置是通过SPI或者并行端口写入了。SPI模式下每个寄存器16位宽度。实际项目中以下三个寄存器的配置最关键频率调谐字FTW的计算公式是FTW等于输出频率乘以2的48次方再除以系统时钟。这个计算公式适用于芯片手册的原始版本但在实际芯片中48位FTW的对应关系需要看具体寄存器位的定义。FTW0的寄存器地址是0x04低32位写0xAAAAAAAA高16位写0x0000AAAA这只是示例实际配置必须根据目标和系统时钟重新计算。相位累加器控制字寄存器地址是0x01其中bit1置1允许相位累加器清空bit0的取值决定是否使能频率累加器。在需要生成线性调频信号的场景中频率累加器是核心功能它可以实现从起始频率向结束频率的线性扫频这时需要把bit0设为1。输出整形控制字寄存器地址是0x03其中bit8和bit9控制DAC输出电流大小默认配置为0b0时输出电流约8.7 mA输出功率约-4 dBm如果需要提升输出功率可以试着把这两个位调到最大值输出电流达到20 mA左右输出功率大约提升4到5 dBm。注意所有寄存器写入完成后必须发送I/O更新脉冲IO_UPDATE引脚拉高再拉低新配置才会生效。这个引脚是很多新手忽略的配置了半天没反应程序查来查去最后发现是忘了发更新脉冲这个坑我踩过不只一次。3.3 HMC835寄存器配置顺序与锁定检测HMC835的寄存器配置相对复杂一共100多个寄存器但好在大部分可以保持默认值。配置顺序的推荐做法是先配置参考分频器和R分频器再配置N分频器接着设置电荷泵电流最后配置VCO的自动校准使能位。VCO校准完成后读取锁定检测寄存器确认LD引脚输出高电平代表PLL锁定正常。有一个花了很多时间才总结出来的关键经验HMC835每次上电后VCO的自动校准结果都可能存在细微差异这会导致输出频率和理论值有几十kHz的偏差。所以在上电后不要立即使用输出信号必须等待自动校准完成并确认锁定。另外如果需要通过SPI改写频率每次写入N分频值之后都会触发VCO重新校准这期间的输出信号是不稳定、不可用的系统必须有对应的时序控制不能让DDS在此期间输出有效信号。4. 常见问题与排查技巧实录4.1 AD9914输出杂散过大频谱基底抬高遇到过的情况是AD9914输出频谱总是有一个约-50 dBc的杂散无论怎么调输出频率都甩不掉。排除了电源噪声之后用示波器检查REFCLK输入这才发现时钟信号眼图边缘有严重的过冲和回沟。查了一圈发现问题出在参考时钟的驱动能力不足HMC835输出端直接通过一根长走线连到了AD9914的REFCLK引脚没有加缓冲放大器导致信号在传输线末端反射。解决方法是把HMC835的输出先经过一个低噪声的LVPECL或LVDS缓冲器再送入AD9914。缓冲器同时能提供更好的隔离度防止AD9914内部高速开关噪声反向窜入HMC835破坏VCO的稳定性。这个问题的排查思路值得记录DDS输出杂散大先查电源再查时钟最后才是查DAC配置顺序不能乱。4.2 HMC835锁定时间过长或始终无法锁定HMC835无法锁定的原因主要有三类。第一类参考信号幅度不足。HMC835的参考输入灵敏度对于正弦波信号通常需要-10 dBm以上如果10 MHz OCXO输出经过功分器后衰减过多再加一路分给其他模块到达HMC835时信号幅度可能只剩-15 dBm左右这会导致R分频器无法正常工作。用频谱仪测一下实际到达HMC835参考引脚的功率如果低于-10 dBm加一级放大器或者改用有源功分器。第二类环路滤波器元件参数不对。ADIsimPLL算出来的元件值不同版本计算器给出的结果略有差异而且实际电容电阻的容差也会影响环路特性。检查环路滤波器中电容是否有贴反的情况——这里说的贴反是指电容材质选择不当如果用了普通的X5R/X7R陶瓷电容而没有选择C0G材质电压系数会导致实际容值随调谐电压变化环路带宽随之漂移严重时就会锁定失败。第三类VCO自动校准超时。如果外部干扰导致VCO自校准时无法锁定到正确的谐振频带PLL就会反复校准。此时需要检查VCO供电电源的纹波以及芯片底部的散热焊盘是否良好接地。HMC835是裸露焊盘封装底部焊盘不仅是散热通道也是电气地如果焊接不良VCO自校准会出现极其诡异的不稳定现象。4.3 跳频时输出频率出现短暂过冲或频率拖尾这个问题在DDS应用中最常见。AD9914在快速跳频切换FTW时输出信号并不是瞬间从一个频率跳到另一个而是受限于片内数字滤波器的群延迟特性需要几纳秒到几十纳秒的过渡时间。如果系统对跳频时间要求极其严苛需要注意直接使用并行端口加载FTW同时将配置文件放到片内的F系列寄存器中并行加载方式比串行SPI写入快一个数量级。频率拖尾的另一大来源是参考时钟源的不稳定。HMC835在跳频时VCO重新校准输出时钟短暂不稳定导致AD9914输出的跳频信号尾部出现一段频率漂移。规避方法是HMC835保持在一个固定频点不要和AD9914同步跳频。如果系统确实需要两个芯片同时跳频就必须设计好PLL的环路带宽让HMC835的锁定时间快于DDS的跳频间隔并且加一路PLL锁定检测信号作为外部触发只在锁定状态有效时才允许DDS输出。4.4 常见问题速查表现象可能原因排查顺序AD9914杂散大电源去耦不足、参考时钟不干净、DAC配置不当电源→时钟链路→寄存器配置HMC835无法锁定参考幅度不足、环路元件错、焊接不良参考输入功率→环路元件→VCO自校准跳频过冲/拖尾FTW加载方式不当、PLL重新锁定并行端口配置→PLL固定频点→时序控制AD9914无输出IO_UPDATE脉冲缺失、数字核未上电SPI写入时序→IO_UPDATE→电源状态HMC835输出频率偏差VCO自动校准差异、参考频率不准校准10 MHz基准→锁定检测→频率计验证5. 系统联调顺序与性能验证方法5.1 推荐的上电与联调步骤拿到一块PCB板子,按照怎样的顺序调试最不容易出问题我的习惯是这样的先单独调试HMC835用频谱仪验证输出频率和锁定状态。在HMC835正常输出干净点频之后再把这个点频作为参考时钟接到AD9914的REFCLK输入。然后单独调试AD9914配置固定的FTW先输出一个单点频信号验证DAC输出功率和信号质量。单点频验证通过后才进入动态跳频模式的验证。整个过程中每次只能改变一个变量切忌同时修改多个寄存器配置。这是一个吃过亏的血泪教训曾经一次性修改了HMC835的N分频器和AD9914的FTW结果输出完全乱套两个芯片相互影响排查了一整天才定位到问题最后发现只是HMC835在由旧频率切换到新频率的过渡时间里输出了一个非预期的中间频率AD9914把这个中间频率当成了时钟输出了完全错误的频点。5.2 关键性能指标的测试方法相位噪声测试需要使用信号源分析仪。将DDS输出设定为固定频点主要观察偏移1 kHz、10 kHz、100 kHz处的相位噪声指标。要特别注意DDS输出信号的相噪理论上会比参考时钟差约20 log N分贝其中N等于输出频率与时钟频率的比值。比如时钟3 GHz输出1.5 GHz理论上相噪会恶化6 dB。如果实测恶化远大于这个值说明参考时钟本身承载了过多的近端噪声或者电源耦合了额外噪声。杂散抑制的测试需要使用频谱仪,并将SPAN设置为较宽范围从DC一直看到4 GHz。重点关注时钟频率、谐波、交调分量这几个频点。近端杂散是DAC的非线性导致远端杂散通常是参考时钟的谐波或电源耦合导致。测杂散时还有一个容易忽视的细节频谱仪本身的本振泄露会叠加到被测信号上所以要在被测信号路径上加一个衰减器或者隔离器避免频谱仪的反射信号干扰测量结果。6. 最后的经验总结以及这套方案的扩展方向做到这一步AD9914加HMC835这套组合已经能够输出满足大多数测试系统要求的信号了。从架构上来说这两个芯片是一对黄金搭档HMC835负责提供高纯度、高频率的时钟AD9914负责快速灵活的频率合成。它们在雷达信号模拟、跳频通信、仪器仪表甚至是一些医疗设备中都有广泛的应用场景。对于压缩包里那份资料的利用我建议不要只盯着参考原理图去抄板重点关注里面的寄存器配置文件。前人手写的寄存器配置往往比官方示例更贴近真实应用甚至包含了针对特定版本的芯片手册修正的配置值。你可以对比官方默认配置和工程实际配置的差异从中能学到很多东西。这里再给一个扩展思路AD9914的输出经过倍频器或混频器上变频就可以覆盖到X波段甚至Ku波段。具体做法是AD9914输出L波段信号外接一个无源倍频器乘以4或乘以6配合带通滤波器就能得到5到8 GHz的雷达测试信号。这种方案比直接用PLL做高频点频合成更灵活跳频速度也更快。如果你的系统正好需要这种性能这套组合还有很大的潜力可以深挖。最后说一句调板子的心得不要害怕改动厂家给的参考设计但每一次改动都要有明确的理由和数据支撑。实测数据才是检验改动的唯一标准。这块板子调完之后把调试过程、测试数据、踩过的坑记录下来你会发现自己对DDS和PLL的理解深度比光看数据手册要扎实得多。本文还有配套的精品资源点击获取
返回列表