題:
微控制器是否可以使用數千兆字節的DRAM模塊?
johndeo
2011-05-04 06:46:17 UTC
view on stackexchange narkive permalink

我有兩個在升級時從MacBook Pro中刪除的剩餘2GB RAM模塊。我只是想知道它們是否可以與Arduino一起使用。我真是個初學者太多了,無論如何現在都不能嘗試這樣做,但是我很好奇這是否有可能,或者這是否是微控制器無法解決的太多內存。

您可能會做一些事情來做,但是接口電路可能是結果系統中最複雜的部分,結果幾乎沒有實用價值。
感謝您的精彩回答!很有意思。我正在逐步了解各個部分如何組合在一起。謝謝。
ARM9和ARM11平台託管DDR2控制器,但是您不是在談論微控制器,而是在談論微處理器。 FPGA也可以與其連接。整個任務非常複雜。 arduino只有8位,因此它無法完成大量的尋址工作。
漢斯所說的話-任何足夠強大的微處理機都可以內置DDR控制器。我沒有仔細研究DDR控制的內部工作原理,但是實際上您需要專用的硬件來告訴您某些東西……舊模塊,舊激光打印機中的東西等等可能會更有用。
七 答案:
AngryEE
2011-05-04 06:59:24 UTC
view on stackexchange narkive permalink

我要說不:最基本的不兼容性是那些模塊上的引腳太多,甚至無法將其物理連接到Arduino。同樣適用於類似的小型微控制器。 ARM Cortex M3越來越近了,但是實際上很少有外部總線以這種方式連接RAM所必需的。(我認為)。

但我會繼續走下去。假設您可以通過某種方式將芯片與Arduino接口,則另一個基本的電氣兼容性問題是所需的電壓。我認為這些RAM模塊使用2.2V左右的電壓-在普通的Arduino板上甚至其他基本的業餘愛好者微控制器上都沒有。 Arduino的其他外部存儲器。實際上,這一直都是做到的-人們添加外部EEPROM來存儲重要的常數,或者添加SD / MMC卡來存儲Web服務器日誌等。當然,在這種情況下,RAM模塊不會給Arduino帶來真正的好處。它的主要功能是速度,而Arduino(也是,其他業餘愛好者微控制器)通常不會以25MHz的速度打破時鐘。他們太慢了,根本不在乎速度。而且,存儲容量並不是大問題,因為與SD / MMC卡的接口顯然更加容易,並且提供了足夠的可用空間。

因此,即使有可能也不是明智的選擇。

必須承認我已經考慮過將一些舊的DIP DRAM連接到我的arduino,只是幼蟲。 (但是,即使在一塊麵包板,甚至是4164年代的垃圾上,這也是可行的)。其他,我完全同意。
使用逐步的假設並得出最終條件,這就是一個高質量的答案。不錯的工作!
不要忽視刷新問題。當控制器的鼠標試圖驅動存儲器的存儲卡時,“基於命令”​​閃存的另一個原因可能是更好的匹配。
我在上面的問題中加了一條評論,但我想我應該把它真正放在這裡。非常感謝您的回答。堆棧交換是一種超級資源,這全是因為人們花時間來提供高質量的答案。
old_timer
2011-05-04 09:11:56 UTC
view on stackexchange narkive permalink

我會說不,不是在兩者之間不插入大小合適的(引腳數)fpga,fpga與內存對話,而微控制器則使用分頁方案與fpga對話。

我的想法也是。並且讓FPGA成為透明的刷新控制器。但是,實際上...在小型ARM系統上用軟件仿真arduino會更簡單,更便宜嗎?
DDR既有趣又有教育意義,這並不簡單,而且不是初學者。找到另一台筆記本電腦或主板來放置此內存,並使用側面有一點點的fpga評估板或beagleboard或類似的東西來了解DDR。第一個問題是引腳數,第二個問題是信號,時序等。當您製作自己的pcboard時,很難使其工作。它不像LCD界面或類似的東西,您可以麵包到微控制器。
JustJeff
2011-05-04 07:00:32 UTC
view on stackexchange narkive permalink

可以想像,您可以使用鎖存器系統來允許像arduino之類的東西生成32位地址,並且可以設計出一些方案來生成刷新周期,但是這樣做幾乎沒有意義,除了

接口電路可能是結果系統中最複雜的部分,結果幾乎沒有實用價值。 arduino將無法從RAM中執行代碼,存儲將是易失的,並且可能比arduino消耗更多的電量。如果要存儲數據,則SPI EEPROM可能是更好的解決方案。

在任何情況下,AVR都能從RAM執行代碼嗎?
@Nick T-我並不是間接暗示可能存在任何此類情況;我*直接*說的是,如果有人正在考慮與這種RAM進行接口連接,則認為他們可以如此使用它是錯誤的。
串行閃存或SRAM通常比EEPROM快很多。如果您需要大量非易失性數據(遠程代碼用例),則Flash可能是更好的選擇。對於大緩衝區,請使用SRAM。它比EEPROM快得多。如果您有一些需要獨立切換的配置位,那實際上就是EEPROM剩下的唯一利基市場。
@reemrevnivek-好的,我+1您的評論。如果要保留幾十個配置設置,則為EEPROM。如果要保留視頻幀,請使用SRAM。
allanw
2011-05-09 10:00:14 UTC
view on stackexchange narkive permalink

如果您查看DRAM芯片數據表,則DDR2的最低時鐘速度約為50MHz。因此,不,您將無法與它們與微控制器進行交互(除非它具有內置的硬件支持)。

更不用說您還需要相當頻繁地刷新內存! Arduino會花所有的時間來驅動內存控制線!
akohlsmith
2011-05-04 06:57:03 UTC
view on stackexchange narkive permalink

簡短的回答是“否”。

Arduino無法驅動DDR或DDR2內存接口。您可以使用帶有SPI接口和FPGA的DDR / DDR2控制器,但這是一項艱鉅的任務。

Thomas O
2011-05-04 12:43:54 UTC
view on stackexchange narkive permalink

您需要一個低壓驅動器(SSTL),並且需要某種方式來控制大約100個通道(每個差分通道,大約200個引腳。請考慮BGA。)

大多數DRAM必須在以下位置刷新至少為1kHz,甚至可能更高,以降低誤碼率。然後,這將構成一項主要的後台任務,並且甚至可能以這種速率刷新內存,從而耗盡Arduino的大部分處理能力。

您可以看到的是某些微控制器,例如PIC24F / H / dsPIC33F,它們支持並行主總線接口,該接口允許訪問某些類型的並行SRAM。甚至支持C語言,因為此外部存儲器可以映射到多個代碼變量中,甚至可以將內部和外部存儲器組合在一起的塊。外部存儲器要求您編寫一些PMB代碼。不過,您最多只能處理約1 MB。

AFAIK DDR使用SSTL而不是LVDS
@mazurnification,是的,您是正確的(我的錯誤。)儘管如此,從Arduino控制的噩夢。
然後更正您的答案!
@reemrevnivek,好的。已更正。但是,我只是指出這是不切實際的。無論使用哪種信令格式。
JRobert
2013-07-07 05:59:07 UTC
view on stackexchange narkive permalink

否,不是在內存和MCU之間沒有某種分頁接口的情況。實際上,某些AVR MCU確實具有內置的外部存儲器接口-例如Atmega2560(請參閱ATmega640 / 1280/1281/2560/2561數據表的第8節)。但是地址空間的單位是千字節,而不是千兆字節。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...