¿Una forma fácil de saber si una MCU de bajo consumo es compatible con la memoria externa?

1

Por favor, perdona mi ignorancia, ya que soy muy nuevo en esto. Estoy buscando construir un PCB personalizado y he encontrado varios módulos de bajo consumo con MCU internas.

¿Hay una manera fácil / rápida de determinar si estas MCU son compatibles con la memoria externa? De mi investigación, tienden a tener RAM / ROM incrustada, pero mi aplicación requerirá 4 - 8G.

Estos chips en particular son: 1. enlace 2. enlace

¡Gracias!

    
pregunta user40845

2 respuestas

4

Los chips a los que se refiere están en la familia TI 430, que es una arquitectura de 16 bits. Necesitará chips de 32 o 64 bits para admitir GB de memoria externa.

Si desea que la memoria externa se asigne al espacio de direcciones de la MCU, debe encontrar una que tenga una MMU (unidad de administración de memoria). La selección más amplia de procesadores que tienen MMU (además de los procesadores 80x86 y AMD utilizados en las PC) son las diversas arquitecturas ARM.

Para RAM, deseará ver varios procesadores ARM con interfaces de memoria externa, como DDR3 de 32 bits, que es el mismo tipo de RAM que puede encontrar en una PC. Debe buscar "DDR3 ARM de 32 bits" o similar.

Aquí hay un ejemplo de un procesador ARM con una interfaz de este tipo , y aquí hay un documento que explica la interfaz de memoria. en detalle. Este es un procesador más antiguo (ARM5) y una memoria más antigua (DDR2), pero lo elegí debido a la buena explicación de la interfaz de la memoria del procesador.

La mayoría de los sistemas Linux arrancan desde algún cargador de arranque y luego copian el kernel de Linux, etc., de un sistema de archivos contenido en una tarjeta SD (por ejemplo) en la RAM para ejecutar. Si agregó un sistema de batería de respaldo a su RAM externa, podría hacerlo no volátil y no tener que arrancar todo el tiempo.

No queda claro en tu publicación si quieres RAM externa, Flash o ambas. Además de las opciones de RAM, también puede ver las opciones de flash externo buscando "ARM ECC NAND flash". (El ECC se apoya en el código de corrección de errores, que es necesario para las grandes memorias flash).

A menos que realmente realmente quiera construir su propio sistema compatible con Linux, que será un lote de trabajo, le sugiero que consulte uno de los sistemas de código abierto como BeagleBone Black . Tiene menos memoria de la que está buscando, pero como el diseño es de código abierto, es posible que pueda expandirla.

Los sistemas Linux típicos tienen aproximadamente medio GB de RAM y un par de GB de Flash. ¿Cuál es su aplicación que requiere de 4 a 8 GB de memoria externa?

    
respondido por el tcrosley
4

Usted pregunta acerca de las MCU, lo que significa unidad del microcontrolador . La definición de un microcontrolador es básicamente que tiene un programa interno independiente y una memoria de datos. Hay algunos microcontroladores relativamente inusuales que permiten extender el espacio de direcciones de datos o programas a través de una memoria externa, pero luego ya no los estás utilizando como microcontroladores. De hecho, a menudo esto se conoce como modo de microprocesador . Incluso entonces, es probable que aún te quede el espacio de direcciones relativamente pequeño del microcontrolador.

Sin embargo, puede implementar cualquier tamaño de memoria que desee con casi cualquier microcontrolador, solo que la CPU no podrá acceder a ella de forma nativa a través de sus instrucciones. No hay nada que le impida utilizar algunos de los pines de E / S del microcontrolador para implementar los buses de acceso a la memoria para la memoria externa. Luego toma el código que escribes en el micro para leer y escribir las palabras de esa memoria. La lectura y escritura de la memoria desde la aplicación se realizará a través de llamadas de subrutina o posiblemente macros.

Este método está bien si la memoria se usa para datos. El acceso a él será más lento que a la memoria de datos nativos, pero su tamaño solo se limita a lo que elija implementar externamente. Las direcciones a esta memoria pueden usar tantos bits dentro de la micro como sea necesario.

Si estás pensando que esta memoria contendría programas, eso tampoco funcionará. El micro no podrá ejecutar de forma nativa las instrucciones de la memoria. Sin embargo, si el problema principal es el tamaño del programa y la velocidad no es tan importante, entonces puede hacer que su propio código actúe como un intérprete para ejecutar las instrucciones almacenadas en la memoria externa en una máquina virtual implementada en código nativo.

Sin embargo, es probable que nada de esto te ofrezca lo que quieres, ya que dices "mi aplicación requerirá 4-8 G". No dices lo que significa "G", pero si esa es solo una forma errónea de decir GB, entonces un microprocesador más grande y de propósito general es más adecuado para tu problema. Diseñar una computadora con un microprocesador de propósito general es mucho más complicado que conectar un microcontrolador. Buscaría en el estante computadoras de una sola placa para esta necesidad. A menos que esto deba ser físicamente pequeño, una PC normal parece ajustarse a sus requisitos.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas