JAJSML0 December 2025 ADS125P08
PRODUCTION DATA
SPI の巡回冗長性検査 (CRC) は、ホスト コントローラとの間の送信エラーを検出するために使用される検査コードです。ホストは SDI 経由で ADC 入力データとともに CRC-IN バイトを送信し、デバイスは SDO 経由で出力データとともに CRC-OUT バイトを送信します。SPI CRC を有効するには、SPI_CRC_EN ビットを使用します。さらに、STATUS_EN ビットを使用して STATUS ヘッダの送信を有効にすることで、SPI 入力 CRC 故障の発生を通知として受け取ることができます。
CRC-IN コードは、ホストによって 2 つのコマンド バイトにおいて計算されます。フレームの先頭にパディングされる入力バイトは、CRC-IN の計算に含まれません。ADC は、入力コマンドの CRC-IN コードを、2 つの受信入力コマンド バイトについて計算された内部コードと比較してチェックします。CRC-IN コードが一致しない場合、コマンドは実行されず、STATUS_LSB バイトの SPI_CRC_FAULTn ビットが 0b に設定されます。
STATUS ヘッダの一部として SPI_CRC_FAULTn ビットが出力され、前のフレームで CRC エラーが発生したことを即座に示します。次の SPI フレームで SPI_CRC_FAULTn ビットは、現在のフレームに SPI CRC エラーがないと仮定して自動的にクリアされます。
出力 CRC コードの計算に使用されるバイト数は、SDO のフレームで送信されるデータ バイトの数によって異なります。出力 CRC の計算に使用されるバイト数を、表 7-46 に示します。
| アクション | ステータス ヘッダ イネーブル | バイト数 | ビット数と説明 |
|---|---|---|---|
| 変換データの読み取り | なし | 3 | 24 ビットの変換データ |
| レジスタ データの読み取り | なし | 3 | 8 ビットのレジスタ データ + 8 ビットのアドレス バイト + 8 ビットの 00h パディング |
| 変換データの読み取り | あり | 5 | 16 ビットの STATUS ヘッダ + 24 ビットの変換データ |
| レジスタ データの読み取り | あり | 5 | 16 ビットの STATUS ヘッダ + 8 ビットのレジスタ データ + 8 ビットのアドレス ワード + 8 ビットの 00h パディング |
CRC コード計算は、CRC 多項式を使用した可変長引数のビット単位排他論理和 (XOR) 演算の 8 ビットの剰余です。CRC は CRC-8-ATM (HEC) 多項式:X8 + X2 + X1 + 1 に基づいています。この多項式には、9 つの係数として100000111.CRC 計算は、SDI および SDO/DRDY が High または Low に固着した場合にエラーを検出するため、すべて 1 に初期化されます。
図 7-44 に、CRC 計算を視覚的に示します。CRC の値は、次の手順で計算します。
ここでダウンロードできるサンプル C コードには、潜在的な CRC 実装が含まれています。