為了實現進一步的可編程性,可使用 I2C 來控制 HD3SS3220。HD3SS3220 本地 I2C 接口可在器件上電時的 x 個時鐘周期后進行讀取/寫入。SCL 和 SDA 端子分別用于 I2C 時鐘和 I2C 數據。如果 I2C 是首選的控制方法,則必須相應地設置 ADDR 引腳。
表 6-5 HD3SS3220 I2C 目標地址| ADDR 引腳 | 位 7 (MSB) | 位 6 | 位 5 | 位 4 | 位 3 | 位 2 | 位 1 | 位 0 (W/R) |
|---|
| H | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0/1 |
| L | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0/1 |
寫入 HD3SS3220 I2C 寄存器時應遵循以下過程:
- 控制器通過生成啟動條件 (S) 以及 HD3SS3220 7 位地址和一個用以指示寫入周期的零值 R/W 位來啟動寫入操作。
- HD3SS3220 器件確認地址周期。
- 控制器提供要寫入的子地址(HD3SS3220 器件中的 I2C 寄存器),其中包含一個字節的數據,MSB 在前。
- HD3SS3220 器件確認子地址周期。
- 控制器提供要寫入 I2C 寄存器的數據的第一個字節。
- HD3SS3220 器件確認字節傳輸。
- 控制器可以繼續提供要寫入的額外字節的數據,每個字節傳輸都在 HD3SS3220 器件發出確認后完成。
- 控制器通過生成停止條件 (P) 來終止寫入操作。
讀取 HD3SS3220 I2C 寄存器時應遵循以下過程:
- 控制器通過生成啟動條件 (S) 以及 HD3SS3220 7 地址和一個用以指示讀取周期的 R/W 位(值為 1)來啟動讀取操作。
- HD3SS3220 器件確認地址周期。
- HD3SS3220 器件從寄存器 00h 或上次讀取的子地址的后一個地址開始傳輸存儲器寄存器的內容,MSB 在前。如果寫入 I2C 寄存器發生在讀取之前,則 HD3SS3220 器件從寫入中指定的子地址開始。
- 在每次字節傳輸后,HD3SS3220 器件等待控制器發出確認 (ACK) 或不確認 (NACK);I2C 控制器確認接收到傳輸的每個數據字節。
- 如果接收到 ACK,HD3SS3220 器件將傳輸下一個字節的數據。
- 控制器通過生成停止條件 (P) 來終止讀取操作。
為 I2C 讀取設置起始子地址時應遵循以下過程:
- 控制器通過生成啟動條件 (S) 以及 HD3SS3220 7 位地址和一個用以指示讀取周期的零值 R/W 位來啟動讀取操作。
- HD3SS3220 器件確認地址周期。
- 控制器提供要讀取的子地址(HD3SS3220 器件中的 I2C 寄存器),其中包含一個字節的數據,MSB 在前。
- HD3SS3220 器件確認子地址周期。
- 控制器通過生成停止條件 (P) 來終止讀取操作。
注: 如果讀取過程不包含子尋址,則讀取操作從寄存器偏移 00h 開始并逐字節繼續,直到 I2C 控制器終止讀取操作為止。如果 I2C 地址寫入發生在讀取之前,則讀取操作從地址寫入指定的子地址開始。