文档:补充射频恢复与校准说明
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# 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修改。
|
||||
Reference in New Issue
Block a user