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

 

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