
干活儿之前先说一句搞射频收发系统最怕的就是芯片选型没问题、原理图照着参考设计抄了、软件API也调了结果板子上电之后测试指标一塌糊涂又不知道从哪儿下手查。这篇文章我打算用ADRV9026这颗四发四收的射频收发器把从原理图设计、电源时钟、软件初始化到射频校准、常见问题排查的完整链路走一遍。全程都是实操视角适合正在做4T4R射频系统、相控阵前端、软件无线电平台或者想把ADRV9026用起来的硬件工程师和嵌入式工程师参考。1. ADRV9026这颗芯片到底强在哪四发四收之外的隐藏价值1.1 从参数看定位真正的宽带收发一体方案ADRV9026是ADIRadioVerse系列里的高端型号四通道发射、四通道接收、两个ORX观测接收通道频率范围覆盖75MHz到6GHz单通道最大处理带宽到200MHz。这意味着一个芯片就能覆盖从HF/VHF到sub-6GHz的大部分无线频段无论是做4G/5G基站前传、数字阵列雷达、电子战模拟器还是通用的软件无线电平台一颗芯片就能把射频前端的大半壁江山扛下来。很多人第一眼看到4T4R脑子里想的是不就是四发四收嘛但实际上这颗芯片真正值钱的地方在于它在SoC里集成了大量的射频信号处理链路不只是简单的ADC/DAC加混频器。接收链路里包含LNA、可调增益、镜像抑制校准、数字下变频、抽取滤波发射链路里包含插值滤波、数字上变频、可调增益、功率检测。芯片内部还有ARM处理器负责运行协议栈和实时校准算法。换句话说ADRV9026不是一颗射频前端而是一颗射频SoC外部电路只需要提供电源、时钟和射频链路数字部分直接走JESD204B接口对接FPGA或者ASIC。1.2 内置DPD和ORX这个特性直接影响系统架构ADRV9026的发射链路支持数字预失真DPD而且这个能力是硬件加速的不是靠外部FPGA跑软件。DPD的意义在于功放PA是一个强非线性器件尤其到了饱和区附近AM-AM和AM-PM失真会严重恶化EVM和邻道泄漏比ACLR。如果不做预失真功放只能回退到线性区工作效率很低做了DPD之后PA可以工作在更高的功率点效率大幅提升这对基站功耗和散热来说都是决定性的。但DPD不是凭空工作的它需要观察PA输出信号这就是ORXObservation Receiver通道存在的意义。ORX会把耦合回来的功放输出信号数字化和发射的参考信号做对比计算出预失真系数。所以设计电路的时候不能只想着主收发通道从PA耦合端口到ORX的射频链路、衰减器配置、隔离度要求都要在原理图阶段就考虑好。很多人做第一版ADRV9026设计时没重视ORX这一路后面想加DPD的时候发现耦合路径不对、增益不够只能改版这是很常见的坑。1.3 和AD937x、ADRV9009的选型对比很多人在选型时会在AD9371、ADRV9009和ADRV9026之间纠结我简单说说我的理解。AD9371是双通道收发带宽覆盖到100MHz适合大多数中频应用。ADRV9009在AD9371的基础上集成了DPD和ORX是很多软件无线电平台的首选。而ADRV9026是四通道、200MHz带宽通道数量翻倍带宽翻倍集成度更高pin脚也更密。如果系统只要求双通道用ADRV9026反而有点浪费BOM成本、PCB面积、调试复杂度都会上升但如果系统做4T4R、8T8R的模块化设计ADRV9026一颗芯片就能覆盖4个通道两颗就是8T8R这种扩展性对阵列系统来说非常友好。还有一个需要考虑的点ADRV9026的封装是BGA脚距更小对PCB工艺和焊接要求更高小批量打样时要确认工厂能不能处理。2. 原理图设计把4T4R从概念变成电路2.1 电源树设计电平、纹波、上电时序一个都不能少ADRV9026的电源域非常细这既是优点也是痛点。优点在于灵敏度控制可以做得很精细数字、模拟、接口、PLL各走各的电源域相互干扰小痛点在于设计者需要把每一路电源都理清楚哪一路该用LDO、哪一路可以用DC-DC、哪一路对纹波敏感稍有不慎就会埋下隐患。核心电源域包括电源域典型电压说明AVDD1.0V左右模拟主电源对纹波最敏感建议LDODVDD1.0V左右数字核心电源电流大可用高效率DC-DCIOVDD1.8V或3.3V数字IO接口电平取决于FPGA侧的电平VDD_1P81.8V模拟辅助电源PLL、LDO供电VDD_3P33.3V某些接口和内部电路辅助电源VAA_TX/RX视具体配置发射/接收模拟前端专用电源设计电源树时我的经验是模拟域AVDD和VDD_1P8老老实实用低噪声LDO输入级可以用DC-DC先把电压降下来再进LDO既保证效率又保证纹波数字域DVDD可以放心用DC-DC但要注意开关频率不要落在ADC采样带宽的整数倍谐波上否则会形成杂散。上电时序方面数据手册给出了严格的要求一般逻辑是先给DVDD和IOVDD再给AVDD和VDD_1P8最后给VDD_3P3而且要确保各路电源上升时间在合理范围内。最稳妥的做法是用电源监控芯片或者FPGA的GPIO控制每一路电源的使能引脚按顺序拉起来。2.2 时钟电路参考时钟、SYSREF、JESD时钟的三角关系ADRV9026对时钟的要求可以用苛刻但不复杂来形容。外部需要提供一个参考时钟REF_CLK一般取10MHz到100MHz之间的频率芯片内部的PLL会把它倍频到需要的射频本振频率和采样时钟频率。注意这个参考时钟不是直接给ADC/DAC用的芯片内部的时钟树会基于它生成所有内部时钟所以参考时钟的相位噪声和抖动直接决定整个系统的底噪水平。如果采用确定性时延deterministic latency的JESD204B链路还需要SYSREF信号。SYSREF是一个周期性的脉冲或边沿信号用于同步所有JESD204B设备的数据帧边界。多片ADRV9026级联做同步波束成形时SYSREF必须来自同一个时钟源而且要走等长的PCB走线必要情况下要用蛇形线补偿。我见过不少同步问题最后查出来都是SYSREF的走线长度不一致导致的这个细节在原理图阶段很难发现只能在PCB阶段控制。参考时钟的选型上普通晶振在大多数场景下够用但对相噪要求高的系统比如雷达、卫星通信建议用OCXO或者高精度恒温晶振配合时钟分配芯片比如AD9528同时给多片ADRV9026提供REF_CLK和SYSREF。另外REF_CLK输入需要AC耦合建议预留π型滤波或者匹配电阻的位置方便调试时调整。2.3 射频前端从SMA到芯片引脚之间少了什么ADRV9026的射频端口是差分结构发射和接收通道都是差分输入输出。这就要求在芯片和天线/SMA连接器之间设计巴伦balun或差分匹配网络。巴伦的选择直接影响增益平坦度和回波损耗宽频带应用建议用传输线变压器式巴伦窄带应用可以用集总参数匹配。接收通道前面一般要加SAW滤波器或者LC带通滤波器把带外干扰和镜像频率滤掉。这里要特别注意滤波器插损会直接挤占接收链路的预算而ADRV9026内部LNA的增益有限所以滤波器选型不能只看带外抑制还要关注插损和带内平坦度。发射通道后面则需要考虑是否需要外置PA如果需要芯片发射端到PA输入端之间的驱动电平要留够余量并且要预留功率检测耦合器的位置。TDD模式下的T/R开关设计是另一个容易被忽视的点。如果做的是时分双工系统收发共用一根天线T/R开关的切换速度、隔离度、插损都会影响系统性能。开关控制信号建议用FPGA的GPIO直接驱动时序上和ADRV9026的帧同步信号对齐避免收发切换瞬间造成信号泄漏。2.4 JESD204B数据接口高速SerDes的布局布线要点ADRV9026和FPGA之间的数据接口是JESD204B单lane速率通常在10Gbps级别。这个接口的PCB设计要求比普通数字信号高一个量级差分阻抗100Ω、对内等长、对间等长、过孔数量尽量少、参考层完整。JESD204B的lane速率越高对PCB损耗越敏感FR4板材在10Gbps以上损耗很大建议使用Megtron6等高速板材或者至少是低损耗FR4并且走线长度要尽量短。JESD204B的配置参数L、M、F、S、N、K等必须在FPGA和ADRV9026两侧保持一致。常见的配置是8B/10B编码、多lane拼接数据位宽和通道数不同参数组合也不同。建议在硬件设计阶段就把FPGA侧的JESD204B IP配置思路想清楚是采用单核多lane还是多核单lane这会影响FPGA的资源占用和后期的调试复杂度。另外SerDes的参考时钟通常是device clock也要和JESD204B的lane速率有确定的倍数关系这个关系错了链路根本起不来。3. 软件初始化与固件加载芯片开机的正确姿势3.1 上电复位与硬件就绪判断ADRV9026上电后不会自动进入工作状态需要外部MCU或FPGA通过SPI接口完成初始化。复位方式有两种硬件复位RESETB引脚拉低和软件复位SPI写寄存器硬件复位更彻底我习惯在每次上电初始化前先做一次硬件复位。复位释放后芯片内部的ARM处理器会开始加载boot ROM这个加载过程需要一段时间。判断芯片是否就绪有两种方法轮询SPI寄存器或者读取GPIO中断引脚状态。ADRV9026有专用的GPIO可以配置为ARM就绪输出建议在原理图设计时就把这个引脚引到FPGA或MCU的GPIO上软件轮询不到的时候可以通过硬件信号判断是芯片没启动还是SPI通信有问题。一个容易踩的坑是SPI片选和时钟极性配置。ADRV9026的SPI支持CPOL/CPHA的多种组合配置错了会读回全FF或者全00看起来像是芯片挂死实际上是SPI时序不对。建议在真正做复杂初始化之前先写一个最简单的读芯片ID的程序读回的值正确再往下走这一步骤能省大量排错时间。3.2 API初始化流程官方库的调用顺序不能乱ADI为ADRV9026提供了完整的API库包括初始化、配置、校准、监控等函数。API调用的顺序是有严格依赖关系的基本可以概括为五个阶段设备初始化加载固件到内部ARM建立SPI通信读取芯片版本信息。时钟初始化配置PLL、参考时钟分频比、SYSREF参数建立内部时钟树。JESD204B配置配置lane数、速率、编码方式、链路的确定性时延。射频初始化配置收发频率、增益、滤波参数设置TDD/FDD模式。校准依次执行各通道的发射/接收校准。API库里每个函数都有返回值强烈建议每调用一个函数就检查返回值并把出错码映射到具体寄存器这样能快速定位是参数配置错误还是芯片状态不对。很多人在初始化的时候只关注有没有报错忽略了报错码的具体含义其实ADI的API出错码定义非常详细对照文档能直接找到问题根源。3.3 时钟配置与JESD链路建立的关键参数时钟配置的核心是算清楚各个时钟域的频率关系。ADRV9026的采样时钟ADC/DAC采样率由参考时钟和内部PLL共同决定而JESD204B的lane速率由采样时钟、数据位宽、lane数量共同决定。这些参数之间存在严格的等式关系Lane速率 (采样率 × 数据位宽 × 通道数 × 过采样因子) / (Lane数 × 编码效率)如果是4T4R、每个通道200MHz采样、16bit数据位宽、4条lane算下来单lane速率就非常高了必须用8B/10B编码或者64B/66B编码来平衡。硬件设计时FPGA侧的JESD204B IP必须支持这个lane速率否则只能降低采样率或者增加lane数。JESD链路建立的过程是ADRV9026和FPGA上电后分别配置好JESD204B参数然后通过SYSREF对齐帧边界接着发送CGScode group synchronization序列和ILASinitial lane alignment sequence序列完成多lane对齐和数据映射。这个过程中最容易出现的问题是链路偶尔能起来经常起不来90%的情况是SYSREF时序不稳定或者参考时钟抖动过大。3.4 TDD/FDD模式下的收发使能顺序ADRV9026支持TDD和FDD两种双工模式模式不同收发使能的时序完全不同。FDD模式下收发通道同时工作使能顺序比较简单只需要确保JESD链路建立后再打开射频通道即可。TDD模式下收发通道分时工作切换时间由帧结构决定ADRV9026支持通过GPIO或SPI触发通道使能。TDD切换的关键在于收发切换瞬态的管理。发射通道从关断到开启需要建立时间包括PLL锁定、增益建立、滤波电容充电如果切换时间不够发射信号前几个符号的EVM会很差。接收通道同理从保护状态到正常工作也需要时间。ADRV9026提供了发射使能提前量TxEnablePrecursor和接收使能延迟RxEnableDelay等参数需要根据实际帧结构精心调整。我一般会先调一个保守的时序预留更多切换时间确认功能正常后再逐步压缩找到性能和时间的最佳平衡点。4. 射频校准4T4R系统性能的胜负手4.1 为什么必须校准那些看不见的IQ不平衡很多人第一次接触ADRV9026时有个误区以为数字芯片的射频性能是出厂就完美的实际上ASIC内部的模拟前端在制造过程中会引入各种误差——IQ两路的增益不匹配、相位不匹配、本振泄漏、直流偏置这些误差在芯片出厂时有一定程度的校准但温度变化、工作频率变化、供电电压变化都会让误差重新出现而且每个通道、每个频点都不一样。ADRV9026有一整套内部校准流程涵盖发射和接收链路的IQ失衡校正、LO泄漏校正、基带DC偏移校正等。这些校准本质上是在芯片内部测量误差然后用数字补偿的方式抵消掉。校准需要一定的信号条件和时间一般是在系统初始化时自动执行也可以在温度或频率变化后手动触发。校准之后的性能差异非常显著。以发射EVM为例未校准时典型EVM可能只有3%-5%校准之后能改善到1%以下ACLR更是天壤之别未校准时的镜像抑制和载波泄漏会把邻道指标直接拉爆。可以说是校准决定性能下限天线决定性能上限。4.2 校准项与操作流程默认值和手动触发的选择ADRV9026的校准可以分为上电校准和实时校准两类。上电校准包括RxQEC接收I/Q失衡校准对接收通道施加已知测试信号计算I/Q增益和相位误差。TxQEC发射I/Q失衡校准通过内部反馈路径测量发射I/Q误差。RxLO泄漏校准调整接收通道的LO泄漏消除电路。TxLO泄漏校准调整发射通道的LO泄漏消除电路。基带DC偏移校准扣除信号链路上的DC偏置。ORX校准对观测接收机做类似的I/Q校准。校准可以在API初始化时自动执行也可以通过API函数手动触发。我的建议是系统初始化时先做一次全量自动校准确保基本性能达标然后根据实际工作频点和温度环境在关键频点上手动触发一次定向校准进一步优化性能。ADRV9026还支持定期校准基于温度监测自动触发如果系统工作环境温度变化大这个功能建议开启。4.3 温度和频率对校准的影响校准结果对频率和温度极其敏感。频率不同链路增益和相位变化很大校准系数也不同温度变化时模拟前端的增益和偏置也会漂移。所以校准不是在实验室校一次就一劳永逸而是要持续监测、持续修正。ADRV9026提供了温度校准表的机制可以在不同温度点分别校准并保存系数运行时根据当前温度插值使用。这个功能在阵列系统里尤其重要因为多片芯片的温度漂移如果不一致会导致不同通道之间的幅度相位差异波束成形性能会显著恶化。我建议在实际部署前做一次温度循环实验标定每个温度点的校准系数把温度表做完整。5. 常见问题解析我从调试现场踩过的坑5.1 JESD链路不稳定从CGS失败到偶发断链场景ADRV9026和FPGA之间的JESD204B链路初始化时经常报CGS失败偶尔能跑起来但运行一段时间后链路掉链需要重启才能恢复。排查链路先确认ADRV9026侧的JESD204B发送端参数是否和FPGA侧IP配置完全一致包括L/M/F/S参数、的8B/10B编码开关、K字符位置。然后检查REF_CLK的稳定性和抖动用频谱仪接一个高阻探头看参考时钟的相噪如果相噪底抬高说明时钟源的选型或供电有问题。最后检查PCB走线JESD204B高速线如果跨分割或者离其他高速信号太近会造成眼图闭合。我遇到的实际案例问题不在参数而在于FPGA侧的JESD204B参考时钟来自一颗PLLPLL的环路滤波器电容选小了导致时钟抖动偏大。换大电容后链路稳定性立刻改善CGS一次通过连续跑72小时没有断链。5.2 接收灵敏度差底噪抬高的元凶场景接收通道校准能过、EVM也能测但是整体灵敏度比预期差了好几dB表现为信噪比上不去。排查链路先用频谱仪测芯片接收端口的底噪如果底噪明显高于理论值说明有干扰进入接收链路或者电源噪声太大。用示波器测AVDD电源纹波纹波过大时ADC的SNR会直接恶化。断开外部射频输入将芯片接收端口接50Ω负载测静音时的底噪水平这样可以区分是外部干扰还是内部噪声。这个问题的常见根源有三个第一AVDD电源的LDO选型不好PSRR不够开关电源的纹波直接耦合进模拟前端第二PCB布局时数字信号线和模拟射频线间距太近串扰严重第三SPI接口的时序噪声耦合到了敏感引脚。我处理过一个案例是SPI信号线走线过长高速翻转时产生了振铃振铃频率落在接收频段内导致灵敏度下降在SPI线上串联22Ω电阻后问题消失。5.3 发射EVM差问题可能根本不在射频链路场景发射通道在频点A测试EVM很正常换到频点B之后EVM突然恶化而且反复校准都没有改善。排查链路先确认是不是频点B处的本振频率恰好和某个内部时钟或其谐波重合形成杂散干扰。ADRV9026内部时钟树复杂多个PLL的频率如果有整数倍关系会产生互调产物。用频谱仪看发射频谱如果EVM差的频点上有非预期的杂散峰基本上是时钟谐波。解决办法是调整参考时钟频率或者改变内部PLL的分频系数让互调产物移出工作频段。另一个人为因素发射EVM差可能是外部PA的非线性引起的如果没有做DPDPA压缩点附近的EVM会急剧恶化。有些人在实验室测试时把发射功率调得很高以为ADRV9026能直接驱动高功率PA忽略了驱动电平过高会让PA进入饱和区这时查芯片参数是没有意义的需要先把PA回退到线性区再测。5.4 多片同步失败SYSREF和复位时序的拉锯场景两片ADRV9026做8T8R单独调试都正常一起上电后JESD204B同步总是失败或者同步成功了但通道间的相对时延不稳定。排查链路SYSREF信号的走线长度是否一致、SYSREF的幅度和上升沿是否满足芯片输入要求、SYSREF信号是否在正确的时刻到达和复位释放的关系这些都是检查重点。多片级联场景下所有芯片的RESETB释放时间必须对齐如果一片先释放、另一片后释放SYSREF的相位关系就乱了。我的做法是在原理图阶段就用一片时钟芯片同时驱动所有ADRV9026的REF_CLK和SYSREF并把所有RESETB引脚统一接到FPGA由FPGA控制同时释放。PCB上SYSREF走线做严格的等长设计并在末端加RC滤波整形。这样改动后多片同步的成功率能提升到接近100%。5.5 初始化卡死API返回值看不明白的排错思路场景执行API初始化到某个阶段函数一直不返回或者返回一个不明的错误码。排查链路用调试器挂到ADRV9026的SPI总线上检查出错时的寄存器状态。常见的卡死原因是固件加载不完整——SPI速率太高、片选时序太紧、固件文件损坏保不齐。另外如果芯片的ARM看门狗超时也会导致初始化挂起这时需要检查供电电压是否在所有电源域都稳定建立后再释放复位。我习惯用最小系统法排错先不连接FPGA的JESD204B只连接SPI和电源完成最小初始化跑通之后再一步步加入时钟、JESD、射频部分。这样可以把问题隔离在最小范围内避免多个环节纠缠在一起无法定位。6. 我自己的一点心得体会最后分享几个我在多个ADRV9026项目里沉淀下来的经验希望对你有用。第一拿到新的ADRV9026板子不要急着跑完整API流程先花半天时间把最小系统跑通——SPI能稳定读写、REF_CLK有信号、芯片ID能读回、电源纹波在指标内。这个基础打扎实了后面所有调试都会顺利很多。第二做好日志和版本管理。ADRV9026的项目涉及FPGA工程、API版本、固件版本、寄存器配置脚本任何一环不匹配都会导致诡异现象。我习惯在每次调试前记录API库版本、FPGA工程哈希和寄存器配置的变更记录出现问题时能回溯到具体改动。第三调试时准备一个高阻输入的有源探头很多时候靠频谱仪和示波器的普通探头测不到关键信号的真实情况而高阻探头能测量芯片引脚附近的微小信号判断电源纹波、时钟边沿质量、串扰问题时会省很多力气。第四别忽视散热设计。ADRV9026在4T4R全通道满负荷工作时功耗不小热设计不好会影响校准系数稳定性严重时还会触发芯片过温保护。热点设计在原理图阶段就要算清楚。4T4R射频系统的开发是一条完整的链路从方案选型到原理图从PCB到软件从校准到系统联调每个环节都有它自己的坑。这篇文章把我踩过的和一些别人踩过我见过的坑都列出来了希望你能少走一些弯路。如果你正在做ADRV9026相关项目也欢迎把你的问题或者心得留在评论区咱们可以一起探讨。