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