STM32F43XX に外部 SRAM があり、それを使用できます。メモリ領域にアクセスしてテストできます (memtest)。
ただし、FMC の設定が正しいかどうかはわかりません。SRAM のデータシートと STM32F4 FMC インターフェースの関係を理解するのは難しいです。
SRAM CY7C1051DV33でSTM32F4XX リファレンス マニュアルを使用します。
タイミングから始めましょう (参照ページ 1591、表 256 | SRAM データシート 6 ページ):
- アドレス設定 <------- アドレス設定~書き込み終了?
- アドレスホールド <------- アドレス変化によるデータホールド?
- データ設定 <------- データ設定~書き込み終了?
- バスターン <-------- ?
- クロック分周比 <-------- ?
- データ遅延 <----------- ?
- アクセスモード <------------- ?
頻度?SRAM のクロック分周比で除算された HCLK によって定義されますか? したがって、HCLK が 100 MHz でクロック分周が 2 の場合、50 Mhz (20 ns) になります。したがって、私の STM32F4 レイテンシは常に SRAM のレイテンシ (最大 10 ns) よりも大きくなります。では、許容される最小値で問題ないのはどこでしょうか?
よろしくお願いします。
ちなみに私のNORRAM INITは次のようになります。
init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE;
init.MemoryType = FMC_MEMORY_TYPE_SRAM;
init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16;
init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE;
init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW;
init.WrapMode = FMC_WRAP_MODE_DISABLE;
init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS;
init.WriteOperation = FMC_WRITE_OPERATION_ENABLE;
init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE;
init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE;
init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE;
init.WriteBurst = FMC_WRITE_BURST_DISABLE;
init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC;