ARMが外部メモリとインターフェイスするための適切な選択は何ですか?


13

LPC2132チップを使用してプロジェクトを完了しましたが、64 kbのRAMをすべて使用して問題が発生しました。

次のプロジェクトでは、外部のはるかに大きなメモリチップを参照できるものを使用したいと思います。これを行うことができるのはどのような種類のARMであり、2つのデバイスを通信させるには何をする必要がありますか?


1
SRAM、SDRAM、DDR、DDR2、DDR3について話しているのはどのようなメモリですか?
ジェイアトキンソン

1
特にありません。64 kより大きい何か
...-サモス

回答:


10

外部RAMメモリにMMUは必要ありません。必要な場合の決定要因は、単にスペースを増やすこととはまったく別の問題です。金属に直接コーディングしている場合、MMUがなくても実際に生活が楽になるかもしれません。また、MMUは事実上外部コンポーネントではなく、SoCダイ上にあることに注意してください。

ARM7の外部メモリを許可する多くのファミリのARM SoCを見つけることができます。たとえば、NXP LPC2212シリーズは最高とは言えません。Googleで最初に外部メモリインターフェイスを備えたARM7 SoCには、多くのオプションがあります。 。

ARMファミリのさまざまなコアの機能には、外部メモリコントローラを備えたSoCでほぼすべての機能を見つけることができるため、より注意を払っています。

必要なメモリの種類と動作方法については、選択したSoCと外部メモリコントローラがサポートするメモリによって異なります。たとえば、リンクされたARM7 SoC iは、外部SRAMとフラッシュおよびROMをサポートし、最大4つの16MBバンクをサポートするため、外部フラッシュとSRAMを同時にフックできます。

別のRAMとフラッシュICを使用することもできます。1つのパッケージにフラッシュとRAMの両方を含めることができるMCP(マルチチップパッケージ)と呼ばれるパッケージもあります。これらのデバイスをどのように選択するかは多くの要因に依存するため、アプリケーションについてより具体的にする必要があります。

これが簡単に接続できるかどうかは、必要な速度によって異なります。ほとんどの外部メモリコントローラーには、プログラム可能なクロックレートがあります。メモリインターフェイスのクロックレートは、少なくとも10MHzと非常に高い可能性があり、はるかに高い可能性があります。つまり、このようなブレッドボードを作成していない可能性が非常に高いため、PCBを設計し、これらのラインのシグナルインテグリティの問題に特別な注意を払う必要があります。

最善の策は、プレイしたいコアを選択し、外部メモリが搭載された多くの開発ボードの1つを見つけることです。


答えマークをありがとう。MMUが必要かどうかはわかりませんでした。Sparkfunを見ると、彼らは実際に現在販売されているLPC 2294を持っています。これには外部メモリバスがあります。私はそれで行くと思います。
サモス

4
MMUは、仮想アドレス空間を物理デバイスにマップするために使用されます。オペレーティングシステムで使用され、ページング、メモリフラグメンテーションの問題の解決、動的ハードウェアデバイスのマッピングなど、さまざまなプロセスのメモリを分離します。メモリサブシステムを仮想化します。ほとんどの場合、マルチプロセッシング機能の完全なセットを備えたオペレーティングシステムを実行する場合にのみ、MMUが必要になります。たとえば、完全なLinuxカーネルを実行するにはMMUが必要ですが、MMUなしで実行するように変更されたuClinuxがあります。
マーク

SPI / IICモードで動作する外部eepromをブレッドボードすることは問題ありませんか?24c64 ICを使用してMCUのフラッシュメモリを拡張することを楽しみにしています。
0xakhil

難しいでしょう。良いブレッドボード、非常に短いワイヤ(1インチなど)、非常に遅いクロック(2 MHzを超えるものは避けてください)が必要です。立ち上がり/立ち下がり時間を遅くするために、万一の場合に備えて、ワイヤーの代わりに200オームの抵抗を使用します。GNDもチップ間で短くする必要があることに注意してください。これは記録を破ることはありませんが、より良いボードに変換できる概念実証を提供します。
ギジェルモプランディ

5

STM32プロセッサの大規模シリーズ(32ビットCortex-M3コア)には、FSMC(フレキシブルスタティックメモリコントローラー)があります。これにより、フラッシュ、RAM、およびLCDなどのその他のメモリ周辺機器を接続できます。

tcrosleyも言ったように私はSTM32F103ZET6をお勧めすることができ、あなたは$ 68のためにeBayでのフラッシュとSRAMなどの開発ボードを得ることができます- http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411


警告、STM32xに追加する外部メモリは、内部SRAMまたは内部フラッシュほど高速ではありません。6-9Xより遅いように。高速メモリが必要な場合は、内部メモリであることを確認してください。STM32で16MB PSRAMを使用してプロジェクトを実行していますが、汎用メモリとして使用するとかなり遅くなります。
マークラカタ

1
FSMC / PSRAMを高速化することはできますが、通常のメモリ空間、つまりヒープメモリにマップすることはできません。専用のDMAアクセスを使用する必要があります。
マークラカタ

4

最近、新しいプロジェクトに同様の要件があり、STMicro STM32F103ZET6(ARM 32ビットCortex-M3)を選択しました。512Kの内部フラッシュと64Kの内部RAMが約10ドルで購入できました。最大64MBの外部メモリ(26アドレスビット)をアドレス指定できるメモリコントローラーを備えています。144ピンLQFPパッケージで利用可能。(プロトタイプにBGAを使用するのは好きではありません。)他の接着剤を必要とせずに(多重化なしで)2MBのサイプレスSRAMとインターフェイスします。


涼しい!開発ボードを使用していますか、それとも独自のボードを作成しましたか?
サモス

地元のSTMicro担当者から「IAR KickStart Kit for STM32」 iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/225が提供さ れました。ただし、マイクロは64ピンパッケージであるため、FSMCピンがないため、144ピンパッケージでボードを入手することになります。
tcrosley

何か不足していますか?26ビットで2 ^ 6 = 64 Mの場所を直接アドレス指定できます。512MBは8バイトの単語を意味します。512Mbにすべきですか?
XTL

1
@XTL:良いキャッチ、答えを修正しました。
-tcrosley

3

Atmel AT91SAM9G20かもしれませんか?

ちょっとした獣(217ピンBGAパッケージ)ですが、価格的には素晴らしいチップです。もう少し人間に優しいものを探しているなら、Atmel AT91M42800Aを試してみてください。少なくともAtmel製の外部メモリハードウェアを備えた最小のMCUだと思います。144ピンLQFPパッケージです。

Atmelにはパラメトリックセレクターがあります:http ://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC

(私はAtmelで働いていないことを付け加えるべきだと思います。たまたま彼らのものに精通しているだけです。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.