ZHCSR05A May 2023 – September 2023 AMC130M03
PRODUCTION DATA
AMC130M03 在输入和输出数据上都具有循环冗余校验 (CRC) 引擎,以减少 SPI 通信错误。对于输入或输出 CRC,CRC 字的宽度为 16 位。覆盖范围包括启用 CRC 的 SPI 帧中的所有字,包括零填充位或符号扩展位。
SPI 输入上的 CRC 是可选的,可以通过写入 MODE 寄存器中的 RX_CRC_EN 位来启用和禁用。默认情况下禁用输入 CRC。器件会根据基于输入数据生成的 CRC 检查提供的输入 CRC。如果 CRC 字不匹配,则会发生 CRC 错误。如果输入 CRC 校验失败,则器件不执行任何命令,WREG 命令除外。即使 CRC 校验失败,WREG 命令也始终执行。对于所有 CRC 错误,该器件都会设置 STATUS 寄存器中的 CRC_ERR 位。发生 CRC 错误的帧之后的 SPI 帧中输出的响应是 NULL 命令的响应,这意味着 STATUS 寄存器加上转换数据在随后的 SPI 帧中输出。CRC_ERR 位在 STATUS 寄存器输出时清除。
输出 CRC 不是可选的,始终显示在输出帧的末尾。如果未使用输出 CRC,主机可以忽略该数据。
有两种类型的 CRC 多项式可用:CCITT CRC 和 ANSI CRC (CRC-16)。CRC 设置决定了输入和输出 CRC 的算法。CRC 类型由 MODE 寄存器中的 CRC_TYPE 位进行编程。表 8-10 列出了两种 CRC 类型的详细信息。
CRC 计算使用 FFFFh 的种子值进行初始化,以在 DIN 或 DOUT 始终为低电平时检测错误。
CRC 类型 | 多项式 | 二进制多项式 |
---|---|---|
CCITT CRC | x16 + x12 + x5 + 1 | 0001 0000 0010 0001 |
ANSI CRC | x16 + x15 + x2 + 1 | 1000 0000 0000 0101 |