ARM与外部存储器接口的最佳选择是什么?


13

我刚刚使用LPC2132芯片完成了一个项目,但遇到了用尽整个64kb RAM的问题。

对于我的下一个项目,我想使用可以引用更大的外部存储芯片的东西。哪种类型的ARM可以做到这一点,我需要怎么做才能使两个设备相互通信?


1
我们所说的SRAM,SDRAM,DDR,DDR2,DDR3什么样的存储器?
杰伊·阿特金森

1
没什么特别的。大于64k的东西…
samoz 2010年

Answers:


10

您不需要用于外部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并特别注意这些线路的信号完整性问题。

最好的选择是选择一个要使用的内核,然后在其中找到带有外部存储器的众多开发板之一。


感谢您的回答马克。是否需要MMU使我感到困惑。看一下Sparkfun,他们实际上现在有一个LPC 2294出售,它带有一个外部存储器总线。我想我会去的。
samoz

4
MMU用于将虚拟地址空间映射到物理设备。它被操作系统用来隔离不同进程的内存,用于分页,解决内存碎片问题,内存映射动态硬件设备等。它虚拟化了内存子系统。在大多数情况下,仅当您要运行具有全套多处理功能的操作系统时,才需要MMU。例如,您将需要一个MMU来运行完整的linux内核,尽管已经将uClinux修改为在没有MMU的情况下运行。
马克

在SPI / IIC模式下工作的外部eeprom电路板还可以吗?我期待使用24c64 IC扩展我的MCU的闪存。
0xakhil 2011年

这将是困难的;您需要一块优质的面包板,一根非常短的电线(例如1英寸)和一个非常慢的时钟(我要说避免使用2 MHz以上的频率)。我会使用200欧姆的电阻器代替电线,以防万一,以缩短上升/下降时间。请记住,芯片之间的GND也应短路。这不会打破任何记录,但是会为您提供概念证明,您可以将其转换为更好的董事会。
Guillermo Prandi

5

更大系列的STM32处理器(32位Cortex-M3内核)具有FSMC,这是一种灵活的静态存储器控制器。有了它,您就可以连接闪存,RAM和其他内存外设,例如LCD等。

我可以推荐作为STM32F103ZET6也tcrosley说,你可以得到一个开发板,包括闪存和SRAM在eBay上以$ 69 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411


警告,添加到STM32x的​​任何外部存储器的速度都不会与内部SRAM或内部闪存一样快。像慢6-9倍。如果需要快速存储,请确保它是内部的。我正在STM32上做一个16MB PSRAM的项目,如果将其用作通用存储器,它的速度将非常慢。
Mark Lakata 2012年

1
您可以使FSMC / PSRAM的运行速度更快,但不能仅将其映射到正常的内存空间,即用于堆内存。您必须使用专用的DMA访问。
Mark Lakata 2012年

4

我最近对一个新项目有类似的要求,并选择了STMicro STM32F103ZET6(ARM 32位Cortex-M3),512K的内部闪存和64K的内部RAM,数量大约为10美元。它具有一个存储器控制器,可以寻址多达64MB的外部存储器(26个地址位)。采用144引脚LQFP封装。(我不喜欢将BGA用于原型。)我将它与2MB赛普拉斯SRAM接口,不需要任何其他胶水(无需多路复用)。


凉!您使用的是开发板还是自己制作的?
samoz 2010年

我当地的STMicro代表给了我一个“用于STM32的IAR KickStart套件” iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/225 可以玩;但是,micro只是64引脚封装,因此没有FSMC引脚,因此我最终可能会获得带有144引脚封装的板。
tcrosley 2010年

我想念什么吗?26位可以直接寻址2 ^ 6 = 64 M个位置。512MB意味着8字节字。应该是512Mb吗?
XTL

1
@XTL:很好,我更正了我的答案。
tcrosley

3

也许是Atmel AT91SAM9G20

这有点像野兽(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工作;我只是对他们的东西很熟悉。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.