¿Cómo se llama este componente?

0

Supongamos que tengo 512 leds en una cuadrícula de 16 por 32. Quiero controlar lo que se muestra en la cuadrícula.

Para hacer esto, supongamos que tengo un contador de temporizador que está contando constantemente entre 0 y 31 en binario. Este temporizador está conectado a 2 cosas. El primero es un decodificador para que una columna de los LED se "active".

El segundo es un tipo o RAM (no sé cómo llamarlo), que tiene palabras de 16 bits y 64 direcciones. El temporizador está conectado a los 5 bits inferiores del sistema de direccionamiento del ram, y la rejilla de LED está conectada a las salidas.

El microcontrolador se conecta al bit de dirección superior para que este sistema pueda tener dos memorias separadas para capturar datos. Uno está activo mientras el micro escribe en las otras ubicaciones de memoria.

Aquí hay un esquema simplificado (obviamente tendré transistores y lo que no sea necesario):

Mi pregunta es: ¿Qué puedo usar para la memoria RAM? ¿Y cómo se llama?

Algunos requisitos:

  • Puede leerse a 32kHz
  • Tiene al menos 64 palabras con un tamaño de palabra de al menos 16 bits
  • Se puede escribir mientras se siguen leyendo otras direcciones de memoria
pregunta DarthRubik

2 respuestas

1

Necesitarás algo de SRAM. Podría usar DRAM, pero eso requeriría controladores adicionales y sería excesivo, ya que no necesita tanta capacidad. Por otro lado, SRAM es mucho más simple pero con menor densidad (menos memoria por chip), pero nuevamente, ya que solo necesitas 128 bytes de RAM, eso es muy pequeño.

Si desea leer mientras escribe, necesita una variante de doble puerto. Básicamente, tienen dos buses de direcciones para que pueda acceder a dos valores diferentes al mismo tiempo. Para las memorias simples de doble puerto, una es una dirección de lectura, la otra es una dirección de escritura, por lo que puede leer desde un puerto y escribir en el otro puerto de forma independiente. Existe una cosa llamada una verdadera memoria de doble puerto, que tiene dos puertos de lectura / escritura completamente independientes, pero probablemente no necesite eso, y será más difícil de conseguir de todos modos.

Dado que lo estás utilizando como un buffer de cuadros, necesitarás que sea paralelo (la SRAM en serie no lo va a cortar). Puede buscar 16 bits de memoria ancha o 8 bits de ancho: si tiene 8 bits de ancho, simplemente puede conectar dos de ellos con la misma dirección y líneas de control y tiene una versión de 16 bits de ancho.

Básicamente, busque una memoria SRAM de doble puerto de 8 o 16 bits con suficiente profundidad para lo que necesita (no importa si es más profunda de lo que necesita, simplemente no usa las palabras adicionales). Elija cualquier motor de búsqueda o sitio web de distribuidores y comience a buscar, ya que las preguntas de compras están fuera de tema, por lo que no voy a buscarlo.

    
respondido por el Tom Carpenter
0

Usted menciona que va a utilizar un microcontrolador. Abandonaría la idea de utilizar una memoria RAM de doble banco en el circuito de actualización de matriz de LED y en su lugar simplemente utilizaría RAM dentro del microcontrolador, que el software puede enviar una ubicación a la vez a un banco de pines de puerto que controlan los bits de columna de LED. Esto también simplifica el diseño porque ya no es necesario tener un contador externo, ya que la dirección de la columna simplemente puede provenir de otro banco de pines de puerto.

Si el microcontrolador que está utilizando actualmente tiene recursos limitados para respaldar esta idea, entonces considere simplemente agregar una segunda MCU que acepte la tarea de respaldar la actualización de la pantalla. Los microcontroladores de gama baja capaces de hacer este tipo de trabajo están disponibles fácilmente a un costo menor que el lote de componentes que ya ha trazado en su diagrama. Los datos de la pantalla se pueden enviar desde la MCU principal a la otra a través de una conexión TTL UART o I 2 C.

Si la idea de usar la lógica dedicada a baja frecuencia es realmente una estrategia de diseño que desea mantener, entonces podría recomendarle que considere seriamente la implementación de toda la lógica en un FPGA pequeño. Hay FPGA que contienen matrices SRAM incrustadas que pueden configurarse con un comportamiento de doble puerto tal como lo describe. He realizado algunos diseños como ese con una interfaz SPI para cargar datos en la RAM interna que luego se escanea y se usa para la funcionalidad interna. Mis diseños utilizan un reloj de 50 MHz, pero no habría ninguna razón para que un FPGA no se pueda sincronizar a una baja frecuencia.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas