S32K341で外部フラッシュを使用したいです。外部フラッシュメモリのIDを読み取ろうとしています。IPコマンドで行おうとすると、SR[BUSY]フラグが0になるのを待ってしまいます。データ、cs、およびclkの行は静かです。データラインはハイステートで、clkはローです。内部FIRCを利用したいです。
初期化のどの手順が欠けていますか?
1. QuadSPIクロックイネーブル(MC_ME)
2. ピン セットアップは、RTD パッケージの例からコピーしたもので、クワッド spi を考慮してS32K342。
3. MCRモジュールによるQuadSPIの有効化
4. LUTのロック解除、0インデックスへのシーケンス(cmd(0x9F)、読み取り、停止)、LUTのロック
5. まず、アドレス0x00をSFARに、0をIPCR[SEQID]に、4をIDATSZに書き込みます。
データラインに信号がないのはなぜですか?
ご回答ありがとうございます。ARM DAPを介してデバイスと通信しています。ドライバーをリレーしていますが、ドライバーを使用していません。
なんとかデバイスを適切に初期化することができました。次に、ExtフラッシュのIDを読み取ります。私は適切なコマンドを送信し、正しい答えを得ています。RBSR レジスタは、新しいデータがバッファーに現れたことを示しています。しかし、RDBRレジスタを読み取ると、そこにはデータがありません。
なぜNXPドライバを使用していないのですか?
ドライバーは、RTD FLS ドライバー パック (リアルタイム フラッシュ ドライバー、内部フラッシュと QuadSPI をサポート) の一部です。
https://www.nxp.com/design/software/automotive-software-and-tools/real-time-drivers-rtd:AUTOMOTIVE-R...
それ以外の場合は、QuadSPIを扱うアプリケーションノートがあります。
https://www.nxp.com/docs/en/application-note/AN12193.pdf
QuadSPIは、SPIコマンドのルックアップテーブルを使用するため、高度に構成可能なモジュールであり、理論的にはユーザーがコードを任意のSPIメモリに適合させることができます。