ZHCSYA5 May 2025 ADS117L14 , ADS117L18
PRODUCTION DATA
SPI CRC 是一种 SPI 错误检查代码,用于检测 SPI 端口进出方向上的传输错误。主机发送的 ADC 输入数据会附带一个 CRC 字节。ADC 发送的寄存器数据也会附带一个 CRC 字节。通过 GEN_CFG3 寄存器的 SPI_CRC_EN 位启用 SPI CRC 错误检查。
SPI CRC 参数为两个字节。通过两个输入命令字节可以计算 CRC-In 代码。填充到帧开头的任何输入字节都不包括在 CRC 计算中。ADC 检查输入命令 CRC 代码与根据两个接收到的字节计算出的内部代码是否匹配。如果 CRC 代码不匹配,则不会执行命令,并且会在 STATUS 字节中设置 SPI_ERR 位。除了 STATUS 寄存器,后续寄存器写入操作将被阻止,以便可以通过将 1b 写入 SPI_ERR 位来清除 SPI CRC 错误。除非在紧接的寄存器读取命令帧中检测到 SPI_CRC 错误,否则不会阻止寄存器读取操作。
CRC-Out 代码基于输出寄存器数据字节和 STATUS 字节进行计算。如果 STATUS 被禁用,则在 CRC-Out 计算中会将该字节视为零。
CRC 值是可变长度参数与 CRC 多项式进行逐位异或 (XOR) 运算后的 8 位余数。8 位 CRC 基于 CRC-8-ATM (HEC) 多项式:X8 + X2 + X1 + 1。多项式的九个系数为:1 00000111。
以下是计算 CRC 值的过程: