ZHCSR04 September 2023 AMC130M02
PRODUCTION DATA
AMC130M02 在輸入和輸出數(shù)據(jù)上都具有循環(huán)冗余校驗(yàn) (CRC) 引擎,以減少 SPI 通信錯誤。對于輸入或輸出 CRC,CRC 字的寬度為 16 位。覆蓋范圍包括啟用 CRC 的 SPI 幀中的所有字,包括零填充位或符號擴(kuò)展位。
SPI 輸入上的 CRC 是可選的,可以通過寫入 MODE 寄存器中的 RX_CRC_EN 位來啟用和禁用。默認(rèn)情況下禁用輸入 CRC。器件會根據(jù)基于輸入數(shù)據(jù)生成的 CRC 檢查提供的輸入 CRC。如果 CRC 字不匹配,則會發(fā)生 CRC 錯誤。如果輸入 CRC 校驗(yàn)失敗,則器件不執(zhí)行任何命令,WREG 命令除外。即使 CRC 校驗(yàn)失敗,WREG 命令也始終執(zhí)行。對于所有 CRC 錯誤,該器件都會設(shè)置 STATUS 寄存器中的 CRC_ERR 位。發(fā)生 CRC 錯誤的幀之后的 SPI 幀中輸出的響應(yīng)是 NULL 命令的響應(yīng),這意味著 STATUS 寄存器加上轉(zhuǎn)換數(shù)據(jù)在隨后的 SPI 幀中輸出。CRC_ERR 位在 STATUS 寄存器輸出時清除。
輸出 CRC 不是可選的,始終顯示在輸出幀的末尾。如果未使用輸出 CRC,主機(jī)可以忽略該數(shù)據(jù)。
有兩種類型的 CRC 多項式可用:CCITT CRC 和 ANSI CRC (CRC-16)。CRC 設(shè)置決定了輸入和輸出 CRC 的算法。CRC 類型由 MODE 寄存器中的 CRC_TYPE 位進(jìn)行編程。表 8-9 列出了兩種 CRC 類型的詳細(xì)信息。
CRC 計算使用 FFFFh 的種子值進(jìn)行初始化,以在 DIN 或 DOUT 始終為低電平時檢測錯誤。
CRC 類型 | 多項式 | 二進(jìn)制多項式 |
---|---|---|
CCITT CRC | x16 + x12 + x5 + 1 | 0001 0000 0010 0001 |
ANSI CRC | x16 + x15 + x2 + 1 | 1000 0000 0000 0101 |