さらにプログラマビリティを高めるため、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 レジスタに書き込むには、次の手順に従う必要があります。
- コントローラが START 条件 (S) を生成して書き込み動作を開始し、HD3SS3220 の 7 ビット アドレスと 0 値 R/W ビットを送信して書き込みサイクルを示します。
- HD3SS3220 デバイスが、アドレス サイクルをアクノリッジします。
- コントローラが 1 バイトのデータ (MSB ファースト) で構成された書き込むサブアドレス (HD3SS3220 デバイス内の I2C レジスタ) を送信します。
- HD3SS3220 デバイスが、サブアドレス サイクルをアクノリッジします。
- コントローラが I2C レジスタに書き込むデータの最初のバイトを送信します。
- HD3SS3220 デバイスが、バイト転送をアクノリッジします。
- コントローラが書き込むデータの追加のバイトを送信し続けます。各バイト転送は、HD3SS3220 デバイスからのアクノリッジで完了します。
- コントローラが停止条件 (P) を生成して書き込み動作を終了します。
HD3SS3220 の I2C レジスタを読み出すには、次の手順に従う必要があります。
- コントローラが開始条件 (S) を生成して読み出し動作を開始し、HD3SS3220 の 7 ビット アドレスと 1 値 R/W ビットを送信して読み出しサイクルを示します。
- HD3SS3220 デバイスが、アドレス サイクルをアクノリッジします。
- HD3SS3220 デバイスは、レジスタ 00h または最後の読み出しサブアドレス + 1 から、メモリ レジスタの内容を MSB ファーストで送信します。読み出しの前に I2C レジスタへの書き込みが発生した場合、HD3SS3220 デバイスは書き込みで指定されたサブアドレスから開始します。
- HD3SS3220 デバイスは、各バイト転送の後、コントローラからのアクノリッジ (ACK) または非アクノリッジ (NACK) を待ちます。I2C コントローラは、各データ バイト転送の受信をアクノリッジします。
- HD3SS3220 デバイスは、ACK を受信するとデータの次のバイトを送信します。
- マスタが停止条件 (P) を生成して読み取り動作を終了します。
I2C 読み出しの開始サブアドレスを設定するには、次の手順に従う必要があります。
- コントローラが START 条件 (S) を生成して書き込み動作を開始し、HD3SS3220 の 7 ビット アドレスと 0 値 R/W ビットを送信して読み出しサイクルを示します。
- HD3SS3220 デバイスが、アドレス サイクルをアクノリッジします。
- コントローラが 1 バイトのデータ (MSB ファースト) で構成される読み出すサブアドレス (HD3SS3220 デバイス内の I2C レジスタ) を送信します。
- HD3SS3220 デバイスが、サブアドレス サイクルをアクノリッジします。
- マスタが停止条件 (P) を生成して読み取り動作を終了します。
注: 読み出し手順にサブアドレス指定が含まれていない場合、読み出しはレジスタ オフセット 00h から開始し、I2C コントローラが読み出し動作を終了するまでレジスタの内容をバイト単位で送信します。読み出しの前に I2C レジスタへの書き込みが発生した場合、読み出しはアドレス書き込みで指定されたサブアドレスから開始します。