ソフトウェア・リセット呼び出しは、I2C バス上のコントローラから送信されるコマンドで、このコマンドに対応しているすべてのデバイスに対して電源オンのデフォルト状態にリセットするよう指示を出します。想定どおりに機能させるためには、I2C バスの機能を有効にして、このバスにデバイスが接続されていない状態にする必要があります。
ソフトウェア・リセット呼び出しは、以下の手順で定義します。
- I2C バスのコントローラから START 条件を送信します。
- 使用するアドレスは、予約済みのジェネラル・コールの I2C バス・アドレスで、R/W ビットを 0 にセットした「0000 0000」です。送信されるバイトは、0x00 です。
- ジェネラル・コール機能をサポートしているすべてのデバイスは、ACK を送信します。R/W ビットが 1 (読み出し) にセットされると、デバイスは NACK を送信します。
- ジェネラル・コール・アドレスの送信が確認されると、コントローラは 0x06 に相当するデータの 1 バイトのみを送信します。データ・バイトが他の値の場合、デバイスは応答を送信しないか、またはリセットを行います。1 バイト以上が送信された場合、これ以上のバイトに応答は送信されず、デバイスは無効と判断して I2C メッセージを無視します。
- データ (0x06) の 1 バイトが送信されると、コントローラはソフトウェア・リセット・シーケンスを終了させるために STOP 条件を送信します。START 条件が繰り返し送信されてもデバイスは無視し、リセットは実行されません。
上記の手順がすべて成功すると、デバイスはリセットを実行します。これにより、すべてのレジスタ値はクリアされ、電源オン時のデフォルト値に戻ります。