我刚刚使用LPC2132芯片完成了一个项目,但遇到了用尽整个64kb RAM的问题。
对于我的下一个项目,我想使用可以引用更大的外部存储芯片的东西。哪种类型的ARM可以做到这一点,我需要怎么做才能使两个设备相互通信?
我刚刚使用LPC2132芯片完成了一个项目,但遇到了用尽整个64kb RAM的问题。
对于我的下一个项目,我想使用可以引用更大的外部存储芯片的东西。哪种类型的ARM可以做到这一点,我需要怎么做才能使两个设备相互通信?
Answers:
您不需要用于外部RAM存储器的MMU,是否需要MMU的决定因素是一个完全独立的问题,而不是仅仅需要更多的空间。如果您一直在直接对金属进行编码,那么实际上没有MMU可能会使您的生活更轻松。我还要指出的是,MMU实际上不是外部组件,而是SoC芯片上的组件。
您可以在许多家族中找到ARM SoC,这些家族允许使用ARM7上的外部存储器,例如NXP LPC2212系列并没有说最好,只是Google推出的第一个带有外部存储器接口的ARM7 SoC,有很多选择。
我会更加关注ARM系列中各种内核的功能,因为您几乎可以在带有外部存储器控制器的SoC中找到所有这些内核。
现在,关于所需的内存类型以及如何使其工作,这取决于您选择的SoC和外部内存控制器支持的内存。例如,链接的ARM7 SoC i支持外部SRAM,闪存和ROM,并最多支持4个16MB的存储区,因此您可以同时将外部闪存和SRAM连接到它。
您可以使用单独的RAM和闪存IC,也有称为MCP(多芯片封装)的封装,可以在1个封装中同时包含闪存和ram。如何选择这些设备取决于许多因素,您需要对您的应用程序更加具体。
连接起来有多容易取决于您所需的速度。大多数外部存储器控制器具有可编程的时钟速率。存储器接口时钟速率可能非常高,至少10MHz,甚至可能更高。简而言之,您很可能不喜欢这种方式,因此需要设计PCB并特别注意这些线路的信号完整性问题。
最好的选择是选择一个要使用的内核,然后在其中找到带有外部存储器的众多开发板之一。
更大系列的STM32处理器(32位Cortex-M3内核)具有FSMC,这是一种灵活的静态存储器控制器。有了它,您就可以连接闪存,RAM和其他内存外设,例如LCD等。
我可以推荐作为STM32F103ZET6也tcrosley说,你可以得到一个开发板,包括闪存和SRAM在eBay上以$ 69 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411
我最近对一个新项目有类似的要求,并选择了STMicro STM32F103ZET6(ARM 32位Cortex-M3),512K的内部闪存和64K的内部RAM,数量大约为10美元。它具有一个存储器控制器,可以寻址多达64MB的外部存储器(26个地址位)。采用144引脚LQFP封装。(我不喜欢将BGA用于原型。)我将它与2MB赛普拉斯SRAM接口,不需要任何其他胶水(无需多路复用)。
这有点像野兽(217针BGA封装),但对于价格而言,它是一个很棒的芯片。如果您正在寻找更人性化的东西,请尝试Atmel AT91M42800A。我认为这是最小的具有外部存储器硬件的MCU,至少来自Atmel。它是144引脚LQFP封装。
Atmel具有参数选择器:http : //www.atmel.com/dyn/products/param_table_v2.asp? family_id=605&OrderBy=part_no&Direction= ASC
(我想我应该补充一点,我不为Atmel工作;我只是对他们的东西很熟悉。)