Files
repo-smod-atsc/doc/modify_guide_260825/PR17_DPD结束后恢复ORx_FAGC实时跟踪方案.md
T

109 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PR17:DPD结束后恢复ORx FAGC实时跟踪
## 1. 背景
当前冷启动流程会调用 `boot_cfg_fagc_update()`,向 FPGA 的
`FPGA_ADDR_DPD_CTRL3` 写入 `DPD_CTRL3_FAGC_UPDATE`,因此在未执行
DPD Update 时,ORx FAGC保持实时跟踪。
执行DPD Update后,FAGC在训练阶段工作一段时间,然后被锁定。DPD完整结束后,
当前流程没有恢复冷启动时的FAGC工作状态,导致后续ORx反馈射频电平发生较大变化时,
FAGC不能再次收敛。
## 2. 需求
DPD Update完整结束后,恢复与设备冷启动后相同的ORx FAGC实时跟踪状态。
要求:
- 只修改i.MX6应用代码。
- 不修改FPGA RTL。
- 不修改ORx DAGC逻辑。
- 不改变DPD训练期间现有的FAGC启停和锁定时序。
- 不触发新的DPD训练,不清除已经生成的DPD系数。
## 3. 修改方案
目标文件:
```text
imx6/src/atsc_app/bsp/dpd_proc.c
```
复用现有函数:
```c
boot_cfg_fagc_update();
```
该函数定义于:
```text
imx6/src/atsc_app/bsp/fpga.c
```
如果 `dpd_proc.c` 中没有函数声明,则增加:
```c
extern void boot_cfg_fagc_update(void);
```
在DPD Update完整成功结束、即将退出更新状态机的位置,调用:
```c
/* 恢复冷启动后的ORx FAGC实时跟踪状态。 */
boot_cfg_fagc_update();
log_printf(LOG_INFO, I_USER_CFG,
"[DPD] update complete, ORx FAGC tracking restored\n");
```
如果该完整结束出口当前执行以下最终清零:
```c
fpga_byte_write(0x05, FPGA_ADDR_DPD_CTRL3, 0);
```
则将这一次最终清零替换为 `boot_cfg_fagc_update()`。
必须保留phase 1、phase 7以及其他DPD训练阶段内部用于锁定FAGC的
`FPGA_ADDR_DPD_CTRL3 = 0` 操作。这些操作属于现有DPD收敛流程,不能替换。
如果工程中存在多套DPD Update状态机,应分别检查它们的完整成功结束出口,确保最终都恢复FAGC。
## 4. 修改后的工作状态
1. 冷启动、不执行DPD Update:行为不变,FAGC持续实时跟踪。
2. DPD训练期间:行为不变,FAGC先收敛,再按现有流程锁定。
3. DPD Update完整结束:重新置位 `DPD_CTRL3_FAGC_UPDATE`。
4. 后续ORx反馈电平超出RTL现有死区时,FAGC再次调整ADRV9009 ORx增益。
5. DAGC控制方式和已完成的DPD系数保持不变。
## 5. 注意事项
- `boot_cfg_fagc_update()` 只有在ADRV9009 SPI控制权属于FPGA时才会写入;DPD结束时应确认SPI控制权已经交还FPGA。
- 不增加 `DPD_CTRL3_FAGC_SLOWDN`,确保恢复状态与当前冷启动后的状态完全一致。
- 不触发 `DPD_START`。
- 只修改整个DPD Update的最终出口,不修改phase之间的临时控制操作。
## 6. 验证步骤
1. 冷启动设备,不执行DPD Update,记录FAGC控制字或ORx `gain_index`的工作状态。
2. 执行一次完整DPD Update。
3. 确认DPD结束后日志出现:
```text
[DPD] update complete, ORx FAGC tracking restored
```
4. DPD结束后改变反馈链路衰减,使ORx输入电平变化超过现有约±1 dB死区。
5. 确认FAGC控制字及ADRV9009 ORx `gain_index`重新变化并最终稳定。
6. 确认DPD系数没有被清除或重新训练,发射输出保持正常。
## 7. 验收标准
- DPD Update结束后,FAGC工作状态与冷启动且未执行DPD时一致。
- 反馈射频电平明显变化后,FAGC能够重新收敛。
- DPD训练阶段原有的FAGC锁定逻辑不变。
- 不涉及RTL和DAGC修改。