Acabo de completar un proyecto usando el chip LPC2132, pero tuve problemas con el uso de toda la memoria RAM de 64 kb.
Para mi próximo proyecto, me gustaría usar algo que pueda hacer referencia a un chip de memoria externo mucho más grande. ¿Qué tipo de ARM puede hacer esto y qué debo hacer para que los dos dispositivos hablen?
Respuestas:
No necesita una MMU para la memoria RAM externa, el factor determinante si necesita una es un problema completamente diferente de simplemente necesitar más espacio. Si ha estado codificando directamente al metal, en realidad puede facilitarle la vida al no tener una MMU. También me gustaría señalar que una MMU prácticamente nunca es un componente externo, sino más bien en el dado SoC.
Puede encontrar SoC ARM en muchas familias que permiten la memoria externa del ARM7 en adelante, por ejemplo, la serie NXP LPC2212 que no dice que sea la mejor, solo el primer SoC ARM7 que apareció en Google con una interfaz de memoria externa, hay muchas opciones .
Prestaría más atención a las características de los diversos núcleos en las familias ARM, ya que puede encontrar casi todos en SoC con controladores de memoria externos.
Ahora, en cuanto a qué tipo de memoria necesita y cómo hacer que funcione, eso depende del SoC que elija y qué memoria admita el controlador de memoria externo. Por ejemplo, el ARM7 SoC i vinculado admite SRAM externa, así como flash y roms, y admite hasta 4 bancos de 16 MB, por lo que puede conectar flash externo y SRAM al mismo tiempo.
Puede usar RAM y CI de flash separados. También hay paquetes llamados MCP (Multi Chip Package) que pueden incluir flash y ram en 1 paquete. La forma en que elija estos dispositivos depende de muchos factores, debe ser más específico acerca de su aplicación.
La facilidad de conexión depende de la velocidad que necesite. La mayoría de los controladores de memoria externa tienen frecuencias de reloj programables. Las velocidades de reloj de la interfaz de memoria podrían ser muy altas al menos 10MHz y probablemente mucho más altas. En resumen, es muy probable que no tenga un tablero como este, debe diseñar una PCB y prestar especial atención a los problemas de integridad de la señal para estas líneas.
Su mejor opción es elegir un núcleo con el que quiera jugar y encontrar uno de los muchos tableros de desarrollo con memoria externa.
fuente
La serie más grande de procesadores STM32 (núcleo Cortex-M3 de 32 bits) tiene un FSMC, que es un controlador de memoria estática flexible. Con esto, puede conectar Flash, RAM y otros periféricos de memoria como LCD y otros.
Puedo recomendar el STM32F103ZET6 como también dijo tcrosley, y puede obtener una placa de desarrollo que incluye flash y sram en eBay por $ 68 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411
fuente
Recientemente tuve un requisito similar para un nuevo proyecto, y elegí el STMicro STM32F103ZET6 (ARM Cortex-M3 de 32 bits), con 512K de Flash interno y 64K de RAM interna por alrededor de $ 10 en cantidad. Tiene un controlador de memoria que puede direccionar hasta 64 MB de memoria externa (26 bits de dirección). Disponible en un paquete LQFP de 144 pines. (No me gusta usar BGA para prototipos). Lo interconectaré con un Cypress SRAM de 2MB, sin ningún otro pegamento requerido (sin multiplexación).
fuente
Tal vez un Atmel AT91SAM9G20 ?
Es un poco una bestia (paquete BGA de 217 pines), pero es un gran chip por el precio. Si está buscando algo un poco más amigable para los humanos, quizás pruebe el Atmel AT91M42800A . Creo que es la MCU más pequeña que tiene hardware de memoria externa, al menos de Atmel. Es un paquete LQFP de 144 pines.
Atmel tiene un selector paramétrico: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC
(Supongo que debo agregar que no trabajo para Atmel; solo estoy familiarizado con sus cosas).
fuente