マルチスレーブ動作は、図 7-25 に示すように、1 つの I2C ラインで複数の DRV8847S デバイスを制御する場合に使用します。DRV8847 デバイスのデフォルトのデバイス アドレスは 0x60 (7 ビット アドレス) で、このアドレスを使用してすべての DRV8847S デバイスにアクセスできます。接続されている 4 つのデバイス (図 7-25 を参照) のうちデバイス 1 をプログラミングする場合のマルチスレーブ構成の手順は以下のとおりです。
- DRV8847S デバイス バリアントは、接続されているすべてのデバイスの DISFLT ビット (IC2_CON レジスタ) を 1b に書き込むことで、マルチスレーブ動作用に構成されます。この手順によって、すべての DRV8847S の nFAULT 出力ピンがディスエーブルになり、マスタとスレーブの I2C デバイス間の競合状態が回避されます。
- 3 つのデバイス (2、3、4) の nFAULT ピン (nFAULT2 ピン、nFAULT3 ピン、nFAULT4 ピン) を Low にプルして、スレーブ デバイス (デバイス 2、デバイス 3、デバイス 4) の各 I2C バスを解放します。これでデバイス 1 のみがマスターに接続されたことになります。
- DRV8847S (1) デバイスだけがコントローラに接続されているため、そのスレーブ アドレスをデフォルトの 0x60 (7 ビット アドレス) から別の固有アドレスにプログラムし直すことができます。
- 同様に、他の 3 つのデバイス (デバイス 2、デバイス 3、デバイス 4) のスレーブ アドレス (SLAVE_ADDR) も、nFAULT ピンの組み合わせによって固有アドレスに順次プログラムし直すことができます。
- すべてのスレーブ アドレスが再プログラムされたら、DISFLT ビットを 0b (IC2_CON レジスタ) に書き込みます。これによって、nFAULT 出力ピンがフォルト フラグ用にイネーブルになります。
- すべての nFAULT ピンが解放され、マルチスレーブのセットアップが完了します。これで、新たにプログラムし直されたアドレスを使用して、接続されているすべてのスレーブ デバイスにアクセスできるようになりました。
- 電源リセット (nSLEEP) の場合、いずれのデバイスでも上記の手順を繰り返す必要があります。.