工具与软件:
您好!
我将使用非连续的 sysref 在 AFE7950上运行 Latte 日志的输出、并且由于在代码中的两个不同点运行宏后未设置 macro_done、因此会出现一些错误。 宏操作码没有进行记录、我无法从注释中看出宏尝试执行的操作。
以下是 MACRO_DONE 未被置位的第一个情况(第1718-1737行)的摘录:
SPIRead 00f0、0、0
//读取 macro_ready=0x1;地址(0xf0[7:0])
SPIPoll 00f0、0、0、01
SPIWrite 00a3、00、0、7 //macro_operand_REG0=0x1;地址(0xa0[7:0]、0xa1[7:0]、0xa2[7:0]、0xa3[7:0]、0xa4[7:0])
SPIWrite 00a2、00、0、7
SPIWrite 00a1、00、0、7
SPIWrite 00a0、01、0、7
SPIWrite 0193、78、0、7 //macro_opcode=0x78;Address (0x193[7:0]、0x194[7:0])
等待0.001
SPIRead 00f0、2、2
// READ MACRO_DONE=0x1;Address (0xf0[7:2])
SPIPoll 00f0、2、2、04
SPIReadCheck 00f0、3、00
最终的 SPIReadCheck 失败。 有什么想法、为什么 macro_opcode=0x78无法完成?
如果我注释掉了失败的 SPIReadCheck、则代码可以在编程的稍后部分、会发生类似的错误、但会针对不同的 macro_opcode。
以下是摘录 (第3529-3551行):
//start:将 TX 链参数配置到顶部 MCU
SPIWrite 0018、20、0、7 //macro=0x1;地址(0x18[7:5])
SPIRead 00f0、0、0
//读取 macro_ready=0x1;地址(0xf0[7:0])
SPIPoll 00f0、0、0、01
SPIWrite 00a3、00、0、7 //macro_operand_REG0=0x1;地址(0xa0[7:0]、0xa1[7:0]、0xa2[7:0]、0xa3[7:0]、0xa4[7:0])
SPIWrite 00a2、00、0、7
SPIWrite 00a1、00、0、7
SPIWrite 00a0、01、0、7
SPIWrite 0193、8d、0、7 //macro_opcode=0x8d;地址(0x193[7:0]、0x194[7:0])
等待0.001
SPIRead 00f0、2、2
// READ MACRO_DONE=0x1;Address (0xf0[7:2])
SPIPoll 00f0、2、2、04
SPIReadCheck 00f0、3、00
最终的 SPIReadCheck 会产生一个错误。 有什么想法、为什么 macro_opcode=0x8d 无法完成?
如果我注释掉两个失败的 SPIReadCheck、脚本就会完成、但我会在从下电上电到下电上电的通道中看到某种随机失准。 我将 LMFS=8821与 TI JESD204C IP 配合使用。 在发送测试复数正弦波时、我会在与 NCO 频率相差+/-的预期偏移频率下看到两个不同振幅的音调。 有时、4个 DAC 中的一个具有良好的输出(单偏移音调)、但在下电上电时、不良行为会在不同的 DAC 通道上随机发生。 我想知道发生故障的宏是否可以解决这种奇怪的行为。
感谢您的任何帮助或建议!
