¿Cómo se conectan las MCU y la RAM para el acceso programático?

1

Soy nuevo en la electrónica y en la programación de microcontroladores y necesito una confirmación de que mi comprensión de algunos elementos sea correcta, ¡o tengo una gran necesidad de corrección en ellos!

Tengo un servidor basado en C que requiere aproximadamente 2 GB de RAM para funcionar correctamente. Estoy interesado en ver si hay alguna forma de actualizar este programa a una MCU basada en ARM, como la Raspberry Pi o la STM32. Si mi comprensión de los componentes de MCU es correcta, la Raspberry Pi simplemente no puede manejar esta demanda de RAM, porque es un chip Broadcom / ARM adherido a un SoC con IC de memoria fija.

Sin embargo , también entiendo que los No-SoCs como el STM32 pueden conectarse a cualquier tipo de chip de memoria. Encontré estas tarjetas de memoria de 4GB, y me pregunto si es posible colocar una de estos en una PCB junto con una MCU basada en ARM, lo que permite que el chip ARM realmente ejecute un programa muy grande en él.

Entonces pregunto: ¿es posible hacerlo? Si no, ¿por qué ? ¿Cómo son incompatibles entre sí? Si es así, ¿cómo se cablean normalmente? ¿Un ingeniero mira las hojas de datos de ambos chips y determina el cableado / IO entre ellos?

Supongo que al final del día, me pregunto por qué no hay más MCU por ahí con una gran memoria loca; y pienso que es porque la mayoría de los programas integrados / MCU no necesitan tanta memoria, o porque, por alguna razón, no pueden.

    

3 respuestas

2

La respuesta es economía.

Los procesos óptimos para CPU y RAM son diferentes, por lo que cuando ambos están en el mismo chip, se debe encontrar algún compromiso. Para un chip pequeño (no mucha RAM) esto no duele tanto, menos que agregar una RAM externa y usar una gran cantidad de pines IO para interactuar con él. Para una RAM grande (actualmente la conmutación parece estar en ~ 100Kb) tiene más sentido colocar la CPU y la RAM en diferentes chips. Hacer grandes RAM es un negocio muy especializado de gran volumen, por lo que es mejor usar lo que hay en el mercado que desarrollar un nuevo chip.

La memoria RAM a la que se vincula es un módulo de memoria RAM dinámica DDR3 estilo PC. Un módulo de este tipo tiene una interfaz específica que no es compatible con las (antiguas) líneas de dirección estándar + líneas de datos + bus de control que se encuentran en la mayoría de las MCU. Creo que necesitarías un chip de cola (puente) para hacer tal conexión. Y sí, los ingenieros leen las especificaciones y hacen el cableado (incluidos los chips de pegamento necesarios, las fuentes de alimentación, la sincronización cuidadosa, etc.) Esto puede sonar simple pero no lo es.

    
respondido por el Wouter van Ooijen
1

Los módulos DRAM necesitan un controlador de memoria para activar las actualizaciones y arbitrar el acceso. Ese controlador tiene un costo en bienes raíces de obleas, consumo de energía y conteo de pines.

Los módulos SRAM existen, pero pierden a DRAM en ambas capacidades (las células SRAM necesitan 6 transistores en comparación con el transistor y el capacitor de DRAM) y la economía (menor demanda = mayor costo). Pero son mucho más fáciles de conectar y casi todas las familias de MCU tienen al menos un dispositivo con un simple bus de memoria externa.

    
respondido por el Ignacio Vazquez-Abrams
1

A los 2GB, eso dejó de ser "micro" (en la actualidad). Hay muchos teléfonos que se envían con menos de eso. ¿Estás seguro de que realmente tienes 2Gb de datos en vivo? ¿Puedes cambiarlo a Flash? ¿Qué diablos está haciendo?

Eche un vistazo a ¿Cuál es una buena opción para que una ARM se conecte con la memoria externa? , pero creo que su mejor opción es obtener una computadora de una sola placa de algún tipo.

Usted puede obtener SoCs con interfaces DRAM. Tendrán a estar disponibles en pequeñas cantidades y en paquetes BGA.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas