通過 I2C 執行的 MCT8316A-Q1 讀取操作涉及以下序列。
- I2C 啟動條件。
- 序列從 I2C 目標起始字節開始。
- 起始字節后跟 24 位控制字。控制字中的位 23 必須為 1,因為它是一個讀取操作。
- 控制字后跟重復啟動或正常啟動。
- MCT8316A-Q1 在 SDA 上發送數據字節。MCT8316A-Q1 發送的字節數取決于控制字中的 DLEN 字段。
- 在發送數據字節時,首先發送 LSB 字節。有關更多詳細信息,請參閱下面的示例。
- 16 位/32 位讀取 – 發回控制字中所述的地址中的數據。
- 64 位讀取 – 64 位被視為兩個 32 位讀取。控制字中所述的地址用作地址 0。地址 1 由 MCT8316A-Q1 通過將地址 0 遞增 2 在內部進行計算。MCT8316A-Q1 一共發送 8 個數據字節。前 4 個字節(以 LSB 在前的方式發送)從地址 0 讀取,接下來的 4 個字節從地址 1 讀取。
- MCT8316A-Q1 需要花一些時間來處理控制字并從給定的地址讀取數據。這涉及一些延遲。具有目標 ID 的重復啟動很可能被否定確認。如果 MCT8316A-Q1 已否定確認 I2C 讀取請求,則在幾個周期后重試。在該重試期間,不必將整個數據包連同控制字一起發送。僅發送具有目標 ID 和讀取位的啟動條件就足夠了。
- 如果啟用了 CRC,則 MCT8316A-Q1 會在末尾發送一個額外的 CRC 字節。如果啟用了 CRC,則外部 MCU I2C 控制器必須在發送停止位之前讀取該附加字節。CRC 是針對整個數據包(目標 ID + W 位、控制字、目標 ID + R 位、數據字節)進行計算的。
- I2C 停止條件。