我刚刚使用 LPC2132 芯片完成了一个项目,但遇到了用完整个 64kb RAM 的问题。
对于我的下一个项目,我想使用可以引用外部更大内存芯片的东西。什么样的 ARM 可以做到这一点,我需要做什么才能让这两个设备通话?
我刚刚使用 LPC2132 芯片完成了一个项目,但遇到了用完整个 64kb RAM 的问题。
对于我的下一个项目,我想使用可以引用外部更大内存芯片的东西。什么样的 ARM 可以做到这一点,我需要做什么才能让这两个设备通话?
您不需要用于外部 RAM 存储器的 MMU,如果您需要一个 MMU,决定因素是与仅仅需要更多空间完全不同的问题。如果您一直在直接对金属进行编码,那么实际上没有 MMU 可能会让您的生活更轻松。我还想指出,MMU 实际上从来都不是外部组件,而是在 SoC 芯片上。
您可以在许多系列中找到允许从 ARM7 开始的外部存储器的 ARM SoC,例如NXP LPC2212 系列并不是最好的,只是谷歌上第一个带有外部存储器接口的 ARM7 SoC,有很多选择.
我会更加关注 ARM 系列中各种内核的特性,因为您可以在带有外部存储控制器的 SoC 中找到几乎所有内核。
现在至于您需要什么类型的内存以及如何使其工作,这取决于您选择的 SoC 以及外部内存控制器支持的内存。例如,我链接的 ARM7 SoC 支持外部 SRAM 以及闪存和 ROM,并支持多达 4 个 16MB 的存储库,因此您可以同时将外部闪存和 SRAM 连接到它。
您可以使用单独的 RAM 和闪存 IC,还有称为 MCP(多芯片封装)的封装,它可以在 1 个封装中包含闪存和 ram。您如何选择这些设备取决于许多因素,您需要更具体地了解您的应用程序。
连接起来有多容易取决于您需要的速度。大多数外部存储器控制器具有可编程时钟速率。内存接口时钟频率可能非常高,至少 10MHz 并且可能更高。简而言之,您很可能不会像这样的面包板,您需要设计一个 PCB 并特别注意这些线路的信号完整性问题。
你最好的选择是选择一个你想玩的内核,然后从众多带有外部存储器的开发板中找到一个。
更大系列的 STM32 处理器(32 位 Cortex-M3 内核)有一个 FSMC,它是一个灵活的静态内存控制器。有了它,您可以连接闪存、RAM 和其他内存外围设备,如 LCD 等。
我可以像 tcrosley 所说的那样推荐 STM32F103ZET6,您可以在 ebay 上以 68 美元的价格购买包括闪存和 sram 的开发板 - 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 连接,不需要任何其他胶水(不需要多路复用)。
也许是爱特梅尔 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 工作;我只是碰巧熟悉他们的东西。)