ZHCSPR9 December 2023 AFE782H1 , AFE882H1
PRODUCTION DATA
如果在有噪声的环境中使用 AFEx82H1,请使用 CRC 检查器件与系统控制器之间 SPI 数据通信的完整性。此功能默认启用,并由 CONFIG.CRC_EN 位控制。如果系统中不需要 CRC,请通过 CRC_EN 位禁用帧错误校验,并从默认的 32 位帧切换到 24 位帧。
帧错误校验基于 CRC-8-ATM (HEC) 多项式:x8 + x2 + x + 1 (9'b100000111)。
对于输出寄存器回读,AFEx82H1 会为所提供的 24 位数据提供计算出的 8 位 CRC,作为 32 位帧的一部分。
AFEx82H1 会解码 24 位输入帧数据和 8 位 CRC 以计算 CRC 余数。如果帧中不存在错误,则 CRC 余数为零。当余数为非零值(即输入帧具有 single-bit 或 multiple-bit 错误)时,ALARM_STATUS.CRC_ERR_CNT 位会递增。错误的 CRC 值会阻止对器件执行命令,从而防止 FIFO 数据因无效的读取命令而丢失。
当 CRC 错误计数器达到 CONFIG.CRC_ERR_CNT 中编程的限制时,ALARM_STATUS 寄存器中的 CRC_FLT 状态位将置位。在下一帧期间,该故障在 SDO 上报告为 ALARM_IRQ(只要未设置相应的屏蔽)。如果通过警报操作配置启用了 ALARM 引脚,则该引脚会置为低电平有效(请参阅节 6.3.3.2)。
SDO 帧中的 CRC_ERR 状态位(请参阅图 6-29)不是粘滞位,仅在前一帧进行报告。ALARM_STATUS.CRC_FLT 位是粘滞位,仅在成功读取 ALARM_STATUS 寄存器后才会被清除。读取 GEN_STATUS、MODEM_STATUS 或 ALARM_STATUS 寄存器可以清除已设置的任何粘滞位。
粘滞状态位在回读帧开始时被清除,并在回读帧结束时再次被锁存。因此,如果先前在状态寄存器中报告的故障条件在回读帧结束时不再存在,并且微控制器接收到的数据带有 CRC 错误,则故障信息将丢失。如果需要在有噪声的环境中可靠地监控状态位,请在清除状态位之前将 IRQ 引脚与状态屏蔽位结合使用以找出每个故障的状态。请设置 CONFIG.IRQ_LVL 位来监控 IRQ 引脚上的信号电平,并逐个取消屏蔽每个状态位以便从状态寄存器检索信息。