# ATSC ADRV9009 射频信号主链路 本文档按当前工程源码整理 FPGA 到激励器 RF 接口的实际信号路径。 ## 射频信号主路径 ```mermaid flowchart TD INPUT["TS 流 / 测试数据"] --> MOD["FPGA ATSC 8VSB 调制"] MOD --> DPD["FPGA DPD 与 IQ 处理"] DPD --> ROUTE["打开 FPGA IQ 路由
FBROUTE = 0x10"] ROUTE --> JESD_TX["FPGA JESD204B TX0
2 Lane · Subclass 0 · 无 SYSREF"] JESD_TX --> DEF["ADRV9009 JESD Deframer"] DEF --> DAC["ADRV9009 TX1 DAC 与插值滤波"] DAC --> MIX["正交调制 + RF PLL 上变频"] MIX --> TX_PATH{"ADRV9009 TX1 通道使能?"} TX_PATH -->|"TALISE_setRxTxEnable(..., TAL_TX1)"| ADRV_ATT["ADRV9009 TX 衰减
0~40000 mdB"] TX_PATH -->|"TAL_TXOFF"| STOP1["芯片内部 TX 停止"] ADRV_ATT --> HMC["HMC472 外部衰减
0~63,每步 0.5 dB"] HMC --> RF_SW{"板级 RF 开关?"} RF_SW -->|"FPGA seg1:0x26 = 1"| RF_OUT["激励器 RF 输出接口"] RF_SW -->|"FPGA seg1:0x26 = 0"| STOP2["外部 RF 接口隔离"] WE["当前频点 WE"] --> POWER["总衰减计算"] LCD["LCD / 网页输出功率"] --> POWER HW["HardwareVersion
V1.0:0 dB
V1.1:当前代码 +11 dB 补偿"] --> POWER POWER --> SPLIT["衰减分配
ADRV9009 优选约 8 dB
其余优先分配给 HMC472"] SPLIT --> ADRV_ATT SPLIT --> HMC MIX -. "TX1 → ORx1 内部映射" .-> ORX["ADRV9009 ORx1"] ORX --> FRAMER["ADRV9009 JESD Framer B"] FRAMER --> FPGA_FB["FPGA 反馈 IQ"] FPGA_FB --> FAGC["ORx FAGC"] FPGA_FB --> DPD_FB["DPD 反馈计算"] FPGA_FB --> QUALITY["SNR / 左右带肩计算"] FAGC -. "调节 ORx 增益" .-> ORX DPD_FB -. "更新预失真参数" .-> DPD ``` ## 三层射频开关 1. `TALISE_radioOn()`:ADRV9009 ARM 进入 Radio On 状态。 2. `TALISE_setRxTxEnable(..., TAL_TX1)`:开启 ADRV9009 TX1 信号链。 3. FPGA `seg1:0x26 = 1`:接通板级物理 RF 输出开关。 三层状态以及功率衰减配置均正确后,外部 RF 接口才会稳定输出射频。 ## 关键源码入口 - `bsp/fpga.c::fpga_save_all_para()`:恢复 FPGA、RF、WE、DPD 等参数。 - `adrv9009/adrv9009_config.c::adrv9009_init()`:初始化 ADRV9009 与 JESD 链路。 - `adrv9009/jesd204b_config.c::jesd204b_tx0_cfg()`:配置 FPGA JESD204B TX0。 - `adrv9009/adrv9009_config.c::adrv9009_set_tx_path_enable()`:控制 ADRV9009 TX1。 - `bsp/fpga.c::fpga_save_power()`:计算并分配 ADRV9009/HMC472 衰减。 - `bsp/fpga.c::fpga_set_rf_output_with_para()`:控制最终板级 RF 输出。