プロジェクトの場合、外部メモリが必要です。 1MBのSRAMを購入しました。
STM32を使用していて、FSMCを発見しました。これの目的を理解するのに苦労しました。
私がそれについて読んだことは、それを使用することによって、あなたに直接の記憶場所を与えるという事実に私を導きました。したがって、特定のピン(CE、OE、WEなど)をパイロットすることなくメモリに書き込むことができます。また、GPIO書き込みレジスタを使用せずにSRAMへの書き込み/読み取りができるため、はるかに高速です。 (もちろん、もっと多くの利点があります)。私が「正しければ、それを使用するのは非常に良い考えだと思います。
そのように考えるのは正しいですか?完全に間違っていましたか?
コメント
- 何を読みましたか?専用ドキュメントを読みましたか?
- より速く?いいえ..
- FSMCが利点を提供するかどうかは、使用しているSTM32によって異なります。たとえば、バリューライン製品(M2ベース)では使用されませんが、高値で価値が提供されます。 AHBバスを使用したパフォーマンスライン。構成の詳細を提供しないため、'お役に立てません。
- @JackCreasey " M2ベース"?私は'何をしているのかわからない'ここを参照してください。Cortex-M2のようなものはありません。すべてのSTM32マイクロコントローラーにはAHBがありますが、すべてがFSMCをサポートしているわけではありません。
- @duskwuff申し訳ありません。タイプミス…意味のあるM3ベース。
回答
私はそのように考えるのは正しいですか?完全に間違っていましたか?
FSMCは、揮発性の構成でデータを保存するために使用できます。一部の(すべてではない)STM32は、FSMCがアドレス空間(0x60000000)にマップされています。高速アクセスが不要なデータを格納するには、シリアルSRAMを使用するのが最適です。実行で一般的な値に使用すると、プログラムの速度が大幅に低下する可能性があります。
FSMCで使用するピンを構成し、インターフェイスに頭を巻いてテストする必要があります。
コメント
- こんにちは@ laptop2d確かに、後で処理できるように、カメラからのデータを保存するために使用したいだけです。一部の画像についてはTFTディスプレイ用。 FSMCがメモリ位置を提供するため、プログラミング側の内部MCURAMに書き込むように動作することを理解しました。正しく取得できれば、FSMCにハードウェア内のすべてのピンを自動的に制御させることは、すべてのコマンドピンを手動でパイロットしようとするよりもMCUにとってはるかに高速です。ところで、STM32L496ZG MCUとこのSRAMを使用している': cypress.com/file/43811/download
- ROMのように使用して、遅いと期待することもできますが、アドレス空間にあり、揮発性です。つまり、TFTディスプレイに使用する場合、画像を頻繁にフェッチする必要がある場合は、画像をフェッチするたびに遅延が発生します。 FMSCは少し速いかもしれませんが、データがシリアルに送信されるため、RAMよりもはるかに遅くなります。 meta.stackexchange.com/questions/126180/ …