ZHCAE60 June   2024 AFE7900 , AFE7901 , AFE7903 , AFE7906 , AFE7950 , AFE7950-SP , AFE7951 , AFE7953 , AFE7954 , AFE7955 , AFE7958

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 引言
  5. 2 启动期间 SPI 故障
    1. 2.1 有关芯片读数的详细信息
    2. 2.2 芯片读取检查的故障和修复
    3. 2.3 对针对 PLL 页面的 SPI 访问进行轮询检查
    4. 2.4 关于 PLL 页面访问 SPI 轮询检查的故障和修复
    5. 2.5 指示熔丝组自动加载状态的读取检查
    6. 2.6 自动加载读取检查的故障和修复
  6. 3 中断启动流程的宏故障
    1. 3.1 针对宏错误的读取检查和针对宏完成的轮询检查
    2. 3.2 宏错误的故障和修复以及宏完成的轮询检查
  7. 4 AFE PLL 故障
    1. 4.1 PLL 锁定的读取检查
    2. 4.2 PLL 读取检查的故障和修复
  8. 5 AFE 内部 Sysref 标志故障
    1. 5.1 sysref 标志位的读取检查状态
    2. 5.2 Sysref 标志位的读取检查状态的故障和修复
  9. 6 JESD 链路检查失败
    1. 6.1 指示 JESD 链路建立状态的多项读取检查
    2. 6.2 JESD 错误的故障和修复
  10. 7 使用 CAPI 验证串行器/解串器和 JESD 链路
    1. 7.1 有用的串行器/解串器调试 CAPI
    2. 7.2 有用的 JESD 调试 CAPI
  11. 8 TX 链验证
  12. 9 RX 链验证
  13. 10器件运行状况
  14. 11总结
  15. 12参考资料

针对宏错误的读取检查和针对宏完成的轮询检查

  1. 通过 SPI 对器件进行配置,采用直接寄存器读取/写入(对于简单配置)和寄存器写入(用于启动宏)相结合的方式。宏命令将内部器件配置序列抽象为一组简单的配置,简化了主机交互。这些命令将复杂的配置缩减为简单的写入,避免了主机端的计算复杂性,并在响应时提供简单的状态信息。宏命令在启动过程中多处使用。
  2. 宏操作码:用于通知 AFE 将要执行操作的操作码。针对 AFE 的差分操作,定义了不同的宏操作码。
    宏操作数:操作数是用于在 AFE 中执行操作的值或表达式。
  3. 第一个 SPIPoll,对地址 0xf0 中的第 0 位进行轮询,指示宏/MCU 是否准备好进行下一步操作。如果轮询失败,MCU 仍然没有为新操作做好准备,此时如果我们运行新的宏操作,MCU 可能无法执行。
  4. 稍后,如果宏就绪检查通过,则加载操作数和操作码。
  5. 之后,对宏完成状态进行轮询 #SPIPoll 00f0,2,2,04。这是为了检查宏操作是否完成。
  6. 然后读取 0xf0 第 3 位的读取检查,以检查宏操作是无误执行还是出错。
  7. 如果任何一项检查失败,启动都会中断。下面将讨论如果发生宏错误和故障,如何找出错误并解决问题。

示例代码

SPIPoll 00f0,0,0,01        	//MACRO_READY
SPIWrite 00a3,00,0,7	//MACRO_OPERAND_REG
SPIWrite 00a2,00,0,7	//MACRO_OPERAND_REG
SPIWrite 00a1,00,0,7	//MACRO_OPERAND_REG
SPIWrite 00a0,02,0,7	//MACRO_OPERAND_REG
SPIWrite 0193,01,0,7	//MACRO_OPCODE=0x1;
WAIT 0.001
SPIRead 00f0,2,2	//Read	MACRO_DONE=0x1;
SPIPoll 00f0,2,2,04
SPIReadCheck 00f0,3,3,00	//Read	MACRO_ERROR=0x0;
SPIRead 00f1,0,7	//Read	MACRO_ERROR_OPCODE=0x0;
SPIRead 00f0,4,4	//Read	MACRO_ERROR_IN_OPCODE=0x0;
SPIRead 00f0,5,5	//Read	MACRO_ERROR_OPCODE_NOT_ALLOWED=0x0;
SPIRead 00f0,6,6	//Read	MACRO_ERROR_IN_OPERAND=0x0;
SPIRead 00f0,7,7	//Read	MACRO_ERROR_IN_EXECUTION=0x0;
SPIRead 00f3,0,7	//Read	MACRO_ERROR_EXTENDED_CODE=0x0;
SPIRead 00f2,0,7	//Read	MACRO_ERROR_EXTENDED_CODE=0x0;