アップグレード時にMacBook Proから取り外した2 GBのRAMモジュールが2つあります。これらは、たとえばArduinoで使用できるのかと思っていました。とにかくこれを実際に試してみるには初心者が多すぎますが、それが可能なのか、それともマイクロコントローラーが対処するにはメモリが多すぎるのか興味があります。
アップグレード時にMacBook Proから取り外した2 GBのRAMモジュールが2つあります。これらは、たとえばArduinoで使用できるのかと思っていました。とにかくこれを実際に試してみるには初心者が多すぎますが、それが可能なのか、それともマイクロコントローラーが対処するにはメモリが多すぎるのか興味があります。
回答:
私はノーと言います:最も基本的な非互換性は、それらのモジュールのピンが多すぎて物理的にArduinoに接続できないことです。同様の小さなマイクロコントローラにも同じ。ARM Cortex M3は近づいてきていますが、実際にはそのような方法でRAMをインターフェースするのに必要な外部バスを持っているものはほとんどありません(私は思う)。
しかし、私はさらに進んでいきます。チップをArduinoに接続できると仮定すると、別の基本的な電気的互換性の問題は、必要な電圧です。これらのRAMモジュールは2.2Vのような奇妙なものを使用すると思います-バニラArduinoボードや実際には他の基本的な愛好家のマイクロコントローラには存在しません。
それが処理されたと仮定すると、チップはArduinoの他の外部メモリとほとんど同じように機能します。これは実際に常に行われます。外部EEPROMを追加して、Webサーバーログなどの保存用の重要な定数またはSD / MMCカードを保存します。もちろん、このコンテキスト内では、RAMモジュールはArduinoにとって実質的な利点はありません。その主な機能は速度であり、Arduino(およびはい、他の愛好家のマイクロコントローラー)は通常、クロック速度で25MHzを壊しません。速度が気にならないほど遅すぎます。また、SD / MMCカードとのインターフェースは明らかに簡単であり、使用できるスペースが大きいため、ストレージサイズは大きな問題ではありません。
したがって、たとえ可能であっても、実際にはお勧めできません。
良いサイズ(ピンカウント)のfpgaを間に挟まない限り、fpgaはメモリと通信し、マイクロコントローラーはページングスキームを使用してfpgaと通信します。
Arduinoのようなものが32ビットのアドレスを生成できるようにラッチのシステムを使用することも考えられます。おそらく、リフレッシュサイクルを生成するためのスキームを考案することもできますが、技術的な場合を除いて、ほとんど意味がありません。運動。
インターフェイス回路はおそらく、結果として得られるシステムの最も複雑な部分であり、結果にはほとんど実用的な価値はありません。arduinoはRAMからコードを実行できず、ストレージは揮発性であり、おそらくarduinoよりも多くの電力を消費します。データを保存する場合は、おそらくSPI EEPROMがはるかに優れたソリューションです。
低電圧ドライバ(SSTL)と、約100チャネル(各差動、約200ピン。BGAを考えてください。)を制御する何らかの方法が必要です。
ほとんどのDRAMは、少なくとも1kHzでリフレッシュする必要があります。おそらく、ビットエラーレートを低くするにはさらに高くする必要があります。これは主要なバックグラウンドタスクを形成し、Arduinoの処理能力のほとんどを使用します(そのような速度でメモリを更新することさえ可能であれば)。
ただし、PIC24F / H / dsPIC33Fなどの一部のマイクロコントローラーでは、パラレルマスターバスインターフェイスをサポートしているため、一部のタイプのパラレルSRAMにアクセスできます。この外部メモリは、複数のコード変数や、内部メモリと外部メモリの両方を組み合わせたブロックにマッピングできるため、Cでのサポートもあります。外部メモリには、PMBコードを記述する必要があります。ただし、これで対処できるのは約1 MBまでです。