ZHCSP02B November 2022 – May 2025 TCAL9538
PRODUCTION DATA
雙向 I2C 總線由串行時鐘 (SCL) 線和串行數據 (SDA) 線組成。當連接到器件的輸出級時,兩條線都必須通過上拉電阻器連接到正電源。只有當總線不忙才能啟動數據傳輸。
當 SCL 輸入為高電平時,控制器發送啟動條件(SDA 輸入/輸出上由高電平到低電平轉換)啟動與該器件的 I2C 通信(請參閱圖 7-4)。在發送啟動條件之后,會發送器件地址字節,首先發送最高有效位 (MSB),包括數據方向位 (R/W)。
接收到有效地址字節后,該器件以應答 (ACK) 響應,在 ACK 相關時鐘脈沖的高電平期間,SDA 輸入/輸出為低電平。目標器件的地址輸入不得在啟動條件和停止條件之間更改。
在 I2C 總線上,在每個時鐘脈沖期間僅傳輸一個數據位。在時鐘周期的高脈沖期間,SDA 線上的數據必須保持穩定,因為此時數據線上的變化會被解釋為控制命令(開始或停止)(請參閱圖 7-5)。
控制器會發送停止條件,即當 SCL 輸入為高電平時,SDA 輸入/輸出由低電平到高電平轉換(請參閱圖 7-4)。
在開始和停止條件之間,可以將任意數量的數據字節從發送器傳輸到接收器。每個八位字節后跟一個 ACK 位。發送器必須先釋放 SDA 線,接收器才能發送 ACK 位。做出應答的器件必須在 ACK 時鐘脈沖期間下拉 SDA 線路,這樣,在 ACK 相關時鐘周期的高脈沖期間,SDA 線路穩定為低電平(請參閱圖 7-6)。當目標接收器被尋址時,它必須在接收到每個字節后生成一個 ACK。類似地,控制器必須在從目標發送器接收到每個字節之后生成一個 ACK。必須滿足設置和保持時間才能正常運行。
控制器接收器通過在目標發送器在時鐘沿輸出最后一個字節后不進行應答 (NACK),來向目標發送器發送數據結束信號。控制器接收器通過將 SDA 線保持為高電平來實現該目的。在這種情況下,發送器必須釋放數據線,才能使控制器生成停止條件。
圖 7-4 啟動和停止條件的定義
圖 7-5 位傳輸
圖 7-6 I2C 總線上的應答| 字節 | 位 | |||||||
|---|---|---|---|---|---|---|---|---|
| 7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) | |
| 器件 I2C 地址 | H | H | H | L | L | A1 | A0 | R/W |
| I/O 數據總線 | P7 | P6 | P5 | P4 | P3 | P2 | P1 | P0 |