ZHCSQH8A September 2025 – October 2025 TCAN5102-Q1
ADVANCE INFORMATION
接收 FIFO 為只讀。
RX 緩沖區中每個幀的大小由 I2C 幀的數據長度決定。緩沖區中 RX 幀的總長度為以下各項之和
當從 FIFO 元素中讀取了所有數據字節后,對 RX FIFO 的讀取被視為完成且該 FIFO 元素被釋放。當讀取數據時,若讀取的字節數超過剩余可讀取字節數,超出部分的無效字節將返回 0x00。
從 RX FIFO 中對一幀數據進行部分讀取后,下一次對 I2C 接收 FIFO 的讀取會自動延續該幀的剩余部分,此時 CONT 位會被置為 1 以標識這種延續狀態,同時 NUM_BYTES_REMAINING 會顯示該 I2C 幀中尚待讀取的數據字節數。
從空的 RX 緩沖區讀取時,通道 0 的 NUM_BYTES_REMAINING 返回 0。幀的讀取順序始終與接收順序一致。
通過向 I2C 清除 RX FIFO 位 (I2C_FIFO_CTRL[1]) 寫入 1,可以清空 RX 緩沖區(丟棄所有幀)。
| 字節 | 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|---|
| 0 | 7:1 | 地址 | R | 0x0 | I2C 目標器件地址 |
| 0 | W/R | R | 0 | I2C 消息是 I2C 讀取還是 I2C 寫入 0 = I2C 讀取 1 = I2C 寫入 |
|
| 1 | 7 | CONT | R | 0 | 繼續讀取 0 = 此次讀取為幀數據的起始部分 1 = 此次讀取為前一次讀取的繼續 |
| 6:0 | NUM_BYTES_REMAINING | R | 0x0 | I2C 讀取 (B0.W/R = 0):地址字節之后待讀取的字節數(不包括上述任何報頭字節) I2C 寫入 (B0.W/R = 1):地址之后的 I2C 幀中的字節數(不包括上述報頭字節) 有效值 0-127。0 將不發送任何數據,僅傳輸器件地址(對于檢查 ACK 很有用) |
|
| 2 | 7 | RSVD | R | 0 | 保留 |
| 6 | DS | R | 0 | 數據卡滯 總線卡滯(時鐘或數據未釋放) |
|
| 5 | CT | R | 0 | 時鐘超時 檢測到 SMBus 時鐘超時 |
|
| 4 | CS | R | 0 | 時鐘拉伸 該幀期間發生了時鐘拉伸 |
|
| 3 | AN | R | 0 | 地址 NACK I2C 目標器件對地址字節進行了非應答 (NACK) |
|
| 2 | DN | R | 0 | 數據 NACK I2C 目標器件在寫入過程中對至少 1 個字節進行了非應答 (NACK)。 |
|
| 1 | LN | R | 0 | 最后一個字節 NACK I2C 目標器件對 I2C 幀的最后一個字節進行了非應答 |
|
| 0 | OK | R | 0 | 成功 成功完成 I2C 幀 |