JAJSLX8C june 2022 – june 2023 TCAL6416
PRODUCTION DATA
双方向 I2C バスは、シリアル・クロック (SCL) ラインとシリアル・データ (SDA) ラインで構成されます。デバイスの出力段に接続するときは、両方のラインをプルアップ抵抗経由で正の電源に接続する必要があります。データ転送は、バスがビジー状態でないときにのみ開始できます。
このデバイスとの I2C 通信は、START 条件を送信するコントローラによって開始されます。START 条件は、SCL 入力が High のときに、SDA 入力 / 出力が High から Low に遷移することです (図 8-4 を参照)。START 条件の後、デバイスのアドレス・バイトが送信されます。最初は、データ方向ビット (R/W) を含む最上位ビット (MSB) が最初に送信されます。
有効なアドレス・バイトを受信すると、このデバイスは、ACK 関連のクロック・パルスが High のときに SDA 入力 / 出力を Low にするアクノリッジ (ACK) で応答します。レスポンダ・デバイスのアドレス入力を START 条件と STOP 条件の間で変更することはできません。
I2C バスでは、各クロック・パルスの間に 1 つのデータ・ビットのみが転送されます。SDA ラインのデータは、クロック周期の High パルス中は安定している必要があります。この時点でデータ・ラインが変化すると、制御コマンド (START または STOP) として解釈されるためです (図 8-5 を参照)。
STOP 条件は、SCL 入力が High のときに SDA 入力 / 出力が Low から High に遷移することで、コントローラから送信されます (図 8-4 を参照)。
START 条件と STOP 条件の間に、トランスミッタからレシーバへ任意の数のデータ・バイトを転送できます。8 ビットの各バイトの後に 1 つの ACK ビットが続きます。レシーバが ACK ビットを送信する前に、トランスミッタは SDA ラインを解放する必要があります。アクノリッジを行うデバイスは、ACK 関連のクロック周期が High パルスのときは SDA ラインが安定して Low を維持できるように、ACK クロック・パルスの間は SDA ラインをプルダウンする必要があります (図 8-6 を参照)。レスポンダのレシーバがアドレス指定されている場合、各バイトを受信した後に ACK を生成する必要があります。同様に、コントローラはレスポンダのトランスミッタから受信した各バイトの後に ACK を生成する必要があります。適切な動作のためには、セットアップ時間とホールド時間の条件を満たす必要があります。
コントローラのレシーバは、最後のバイトがレスポンダからクロック出力された後、アクノリッジ (NACK) を生成せずに、データの終了をレスポンダのトランスミッタに通知します。これは、コントローラのレシーバで SDA ラインを High に保持することにより行われます。この場合、コントローラが STOP 条件を生成できるように、トランスミッタはデータ・ラインを解放する必要があります。
バイト | ビット | |||||||
---|---|---|---|---|---|---|---|---|
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) | |
デバイスの I2C アドレス | L | H | L | L | L | L | ADDR | R/W |
I/O データ・バス | P07 | P06 | P05 | P04 | P03 | P02 | P01 | P00 |
P17 | P16 | P15 | P14 | P13 | P12 | P11 | P10 |