読み出しコマンドシーケンスをSPI Flashへ発行中に割り込みが発生すると、どうなりますか? - KBA203731 - Community Translated (JA)

Version 1

    Community Translated by  KaKi_1384211 Expert          Version: **

     

    Translation - English: What Happens if an Interrupt Occurs while Sending the Read Command Sequence to SPI Flash? - KBA203731

     

    質問:

    読み出しコマンドシーケンスをSPI Flashへ発行中に割り込みが発生すると、どうなりますか?

     

    内容:

    割り込みが発生した際のSPI信号の管理方法に依存します。

    参考として、S25FL127SのデータシートからQuad-I/Oリード時の読出し信号を下記に示します。

    Case 1 : Chipイネーブル, CS#が開放された場合 :

    割り込みによりホストがCS#信号のLowへの遷移が停止された場合、CS#のプルアップ抵抗はCS#信号をHighにします。

    これにより、Flash Memoryの状態はアクティブモードからスタンバイモードになります。

    この時点で読み出し処理は終了し、Flash Memoryは読み出しコマンドシーケンス前のステップに関する状態を失います。

    割り込み処理後のリカバリーは再度、読み出しコマンドを実行することです。

     

    Case 2 : 全てのSPI信号が安定したデジタル状態で維持された場合 :

    この状態はCS#Low、それぞれのIOやクロックが安定しており(もしくは、クロックが動作していない)HOLD#がアクティブでない状態を意味します。

    この場合、Flash Memoryはクロックの再開を待っているアクティブモードのままです

    割り込み処理後のリカバリーはクロックの再開、もしくは、CS#を開放し、読み出しコマンドを再実行することです。

     

    Case 3 : SPI Memoryコントローラが自動的に読み出しの管理を継続する場合 :

    多くのSPI Memoryコントローラは読み出し処理を続けます。この場合、読み出しコマンドは中断されず、リカバリーは必要ありません。

     

    上記Case 12の場合、読み出し中断後の最適はリカバリーはCS#を開放した上で、読み出しコマンドを再実行することです。

    ソフトウェア制御の読み出しの場合、Flash Memoryの読み出し処理の間、割り込みを無効にし、システムとして論理的に

    都合良いポイントで、割り込み処理を入れる方法があります。