¿Cuál es una buena opción para que un ARM se conecte con la memoria externa?

12

Acabo de completar un proyecto con el chip LPC2132, pero tuve problemas con el uso de toda la memoria RAM de 64kb.

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?

    
pregunta samoz

4 respuestas

9

No necesita una MMU para la memoria RAM externa, el factor determinante si la necesita es un problema completamente separado de la simple necesidad de más espacio. Si ha estado codificando directamente al metal, en realidad podría hacer su vida más fácil al no tener una MMU. También me gustaría tener en cuenta que una MMU prácticamente no es un componente externo, sino que está en el dado de SoC.

Puede encontrar ARM SoC en muchas familias que permiten la memoria externa desde ARM7 hasta, por ejemplo, NXP LPC2212 Series sin decir que es lo mejor, solo el primer ARC7 SoC que apareció en Google con una interfaz de memoria externa, hay muchas opciones.

Prestaré más atención a las características de los distintos núcleos de las familias ARM, ya que puedes encontrarlas casi todas 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 admite el controlador de memoria externo. Por ejemplo, el ARM7 SoC i vinculado es compatible con SRAM externa, así como flash y roms, y admite hasta 4 bancos de 16MB, por lo que podría conectar flash externo y SRAM a la misma vez.

Usted podría usar RAM independientes y memorias flash. También hay paquetes llamados MCP (Paquete Multi Chip) que pueden incluir tanto memoria flash como 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 necesites. La mayoría de los controladores de memoria externos tienen velocidades 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 esté utilizando algo así, necesita diseñar una PCB y prestar especial atención a los problemas de integridad de la señal para estas líneas.

Tu mejor apuesta es elegir un núcleo con el que quieras jugar y encontrar uno de los muchos tableros de desarrollo con memoria externa.

    
respondido por el Mark
5

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ático flexible. Con esto puede conectar Flash, RAM y otros periféricos de memoria como LCD y similares.

Puedo recomendar el STM32F103ZET6 como también dijo tcrosley, y puede obtener una placa de desarrollo que incluya flash y sram en eBay por $ 68 - enlace

    
respondido por el Thomas Jespersen
4

Recientemente tuve un requisito similar para un nuevo proyecto y elegí el STMicro STM32F103ZET6 (ARM de 32 bits Cortex-M3), 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 los prototipos). Estaré interconectándolo con una SRAM Cypress de 2MB, sin ningún otro pegamento (no se requiere multiplexación).

    
respondido por el tcrosley
3

¿Quizás un Atmel AT91SAM9G20 ?

Es un poco de 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 el hombre, tal vez intente 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: enlace

(Supongo que debo agregar que no trabajo para Atmel; resulta que estoy familiarizado con sus cosas)

    
respondido por el pingswept

Lea otras preguntas en las etiquetas