按照以下程序將數據寫入 TUSB521-Q1 I2C 寄存器(請參閱 圖 7-2):
- 控制器通過生成啟動條件 (S) 以及 TUSB521-Q1 7 位地址和一個用以指示寫入周期的零值 W/R 位來啟動寫入操作。
- TUSB521-Q1 確認地址周期。
- 控制器提供要寫入的 TUSB521-Q1 中的寄存器偏移,其中包含一個字節的數據,MSB 優先。
- TUSB521-Q1 確認子地址周期。
- 控制器提供要寫入 I2C 寄存器的數據的第一個字節。
- TUSB521-Q1 確認字節傳輸。
- 控制器可以繼續提供要寫入的額外字節的數據,每個字節傳輸都在 TUSB521-Q1 發出確認后完成。
- 控制器通過生成停止條件 (P) 來終止寫入操作。
按照以下程序在不重復啟動的情況下讀取 TUSB521-Q1 I2C 寄存器(請參閱 圖 7-3)。
- 控制器通過生成啟動條件 (S) 以及 TUSB521-Q1 7 位地址和一個用以指示讀取周期的零值 W/R 位來啟動讀取操作。
- TUSB521-Q1 確認 7 位地址周期。
- 在確認之后,控制器繼續發送時鐘。
- TUSB521-Q1 從寄存器 00h 或上次讀取的寄存器偏移 +1 處開始傳輸存儲器寄存器的內容,MSB 優先。如果寫入 I2C 寄存器發生在讀取之前,則 TUSB521-Q1 應從寫入中指定的寄存器偏移處開始。
- 在每次字節傳輸后,TUSB521-Q1 會等待控制器發出確認 (ACK) 或不確認 (NACK);I2C 控制器確認接收到傳輸的每個數據字節。
- 如果接收到 ACK,則只要控制器提供時鐘,TUSB521-Q1 就會傳輸下一個數據字節。如果接收到 NAK,則 TUSB521-Q1 停止提供數據并等待停止條件 (P)。
- 控制器通過生成停止條件 (P) 來終止寫入操作。
按照以下程序通過重復啟動來讀取 TUSB521-Q1 I2C 寄存器(請參閱 圖 7-4)。
- 控制器通過生成啟動條件 (S) 以及 TUSB521-Q1 7 位地址和一個用以指示寫入周期的零值 W/R 位來啟動讀取操作。
- TUSB521-Q1 確認 7 位地址周期。
- 控制器提供要寫入的 TUSB521-Q1 中的寄存器偏移,其中包含一個字節的數據,MSB 優先。
- TUSB521-Q1 確認寄存器偏移周期。
- 控制器提供重復啟動條件 (Sr)。
- 控制器通過生成啟動條件 (S) 以及 TUSB521-Q1 7 位地址和一個用以指示讀取周期的 1 值 W/R 位來啟動讀取操作。
- TUSB521-Q1 確認 7 位地址周期。
- TUSB521-Q1 從寄存器偏移處開始傳輸存儲器寄存器的內容,MSB 優先。
- 在每次字節傳輸后,TUSB521-Q1 應等待控制器發出確認 (ACK) 或不確認 (NACK);I2C 控制器確認接收到傳輸的每個數據字節。
- 如果接收到 ACK,則只要控制器提供時鐘,TUSB521-Q1 就會傳輸下一個數據字節。如果接收到 NAK,則 TUSB521-Q1 停止提供數據并等待停止條件 (P)。
- 控制器通過生成停止條件 (P) 來終止讀取操作。
按照以下程序為 I2C 讀取設置起始子地址(請參閱 圖 7-5)。
- 控制器通過生成啟動條件 (S) 以及 TUSB521-Q1 7 位地址和一個用以指示寫入周期的零值 W/R 位來啟動寫入操作。
- TUSB521-Q1 確認地址周期。
- 控制器提供要寫入的 TUSB521-Q1 中的寄存器偏移,其中包含一個字節的數據,MSB 優先。
- TUSB521-Q1 確認寄存器偏移周期。
- 控制器通過生成停止條件 (P) 來終止寫入操作。
注: 初始上電之后,如果讀取過程不包含寄存器偏移(請參閱 圖 7-3),則讀取從寄存器偏移 00h 開始并通過寄存器逐字節繼續,直到 I2C 控制器終止讀取操作為止。在讀取操作期間,無論是否接收到來自 I2C 控制器的 ACK,TUSB521-Q1 都會自動遞增最后一個傳輸字節的 I2C 內部寄存器地址。
軟件只能訪問(讀取或寫入)本文檔中詳述的地址。訪問保留或未記錄的地址可能會導致 TUSB521-Q1 進入未定義狀態。