ホストと BQ79600-Q1 の間の通信は SPI モードに構成できます (Topic Link Label7.3.1.3 を参照)。ホストは常に SPI マスターであり、BQ79600-Q1 は常にスレーブです。物理層では、SPI は 4 本の共通ピン (nCS、SCLK、MOSI、MISO) と SPI_RDY を含む 5 ピン・インターフェイスです。SPI インターフェイスでは、各ビットは Low から High へのクロック遷移時に取り込まれ、High から Low へのクロック遷移時に伝搬されます。なお、1 バイトには 8 ビットが含まれます (図 7-13 を参照)。アイドル・モードでは、MISO は High に駆動されることに注意します。MCU が複数のスレーブと通信する場合、BQ79600 の MISO と MCU の間にトライステート・バッファを追加します。
注: 物理層では、SPI インターフェイスは全二重ですが、フレーム層では、デイジー・チェーンが半二重のみをサポートしているため、SPI インターフェイスは実質的に半二重です。これは、常にコマンド・フレームと応答フレームのどちらか一方のみが、MCU とデバイスの間で送信されることを意味します。
- MCU からデバイスにコマンドが送られるとき、BQ79600 の TX FIFO (2 つのバッファ) は空であるはずであり、0xFF が MCU に送られます (FIFO 診断モードを除く)。
- デバイスから MCU に応答が送られると、MCU はクロックに同期して 0xFF を取り込みます。
- ホストは、2MHz~6MHz の範囲の SPI クロックを供給するものとします。この範囲は、事前定義された FIFO のサイズによって設定されます。SPI は 6MHz で動作することもできますが、デイジー・チェーン速度が依然としてスループットを制限しているため、システム全体のスループットは増加しません。
- デイジー・チェーン・インターフェイスでの競合を回避するため、MCU は予期されるすべての応答フレームを受け取る (または待機タイマが満了する) まで待機してから、次のコマンド・フレームを BQ79600 に送る必要があります。Figure 7-16 のフローチャートを参照してください。
- マスタは、コマンド・フレームをデバイスに送っていないとき、常に MOSI を「1」に駆動する必要があります。
- ホスト読み出しモード:ホストの観点からすれば、読み出しモードは、有効な読み出しコマンドの先頭バイトから予定の受信バイトの最終バイトまでです。
- デバイス読み出しモード:有効な読み出しコマンドの先頭バイトから開始します。TX FIFO がタイムアウトし、FIFO が空になると、デバイスは読み出しモードを終了します。デバイス読み出しモードは、ホスト読み出しモードのサブセットです。(通信フォルト・レジスタ 0x2301、0x2302 を理解するために使われる概念)
- デバイスはデバイス読み出しモードを終了するまで、COMM CLEAR 以外、MOSI からのすべてのデータを拒絶します。
- SPI モジュールは、デバイス読み出しモードに再び入るまで、デイジー・チェーン (スタック・デバイス) からのいかなるデータも、TX FIFO タイムアウトGUID-855E27E4-6D46-4C4F-92DB-EEB56BE8F8B7.html#T5922410-89の後の SPI モジュール自身からのいかなるデータも拒絶します。
- コマンド・フレームの場合、デバイスはフレームの開始のしるしとして nCS の立ち下がりエッジを使い、フレームの終了のしるしとして立ち上がりエッジを使います。フレーム (最大 14 文字) の間中、MCU は nCS を Low に切り替えて保持し、このフレームの最後に nCS を High に戻す必要があります。nCS が Low の間、SCLK を止めるのは正しい方法です。コマンド・フレームの最中に nCS にパルスを印加することはサポートされていません。
- 応答フレームの場合、nCS は終始 Low にとどまる必要はありませんが、コマンド・フレームの送信と同様です。ホストは nCS を High に切り替え、フレームの最中に (バイトの境界で) SPI 読み出しを停止できます。