¿Cuál es el orden exacto de ejecución para acceder a la SRAM utilizando un multplexer?

0

Hola, comunidad de ingenieros eléctricos,

Soy nuevo en esta comunidad y, de hecho, nuevo en la electrónica Así que por favor sea amable, gracias, de antemano ...

Tengo 2 x chips IC IC SRAM ASC4008 de memoria, Creo que tienen un tamaño de 512Kb cada uno.

También tengo 3 x multiplexores SN74HC595 de Texas Instruments (Creo que eso es lo que se llaman)

Y deseo escribir el código que se ejecuta en la MCU que me permitirá leer y escribir en la memoria SRAM.

Deseo utilizar la SRAM como un búfer de video para una pantalla de 1280 x 720

No estoy seguro de poder escribir en la SRAM mientras la MCU está leyendo el búfer de video de la SRAM y lo muestra en la pantalla (en un ciclo continuo)

Quería escribir en un IC SRAM mientras se leía el otro.

No estoy seguro de los pasos exactos a seguir para completar esta acción. No tengo idea de si:

  1. ¿cambia la dirección al multiplexor y luego activa el chip de la SRAM y trata de leer los datos?

o

  1. el chip habilita la SRAM, luego cambia la dirección a la SRAM a través del multiplexor y luego intenta leer los datos?

Me imagino que la secuencia sería:

  1. Establezca SRCLR Low en los chips 74HC595 (borrar registros de desplazamiento)
  2. Establezca OE Low en SRAM
  3. Establezca WE High en SRAM
  4. Establezca CE1 o CE2 bajo (cada vez que quiera acceder a SRAM IC)
  5. establece SRCLR High en los chips 74HC595
  6. Envíe la dirección 1 bit a la vez a los chips 74HC595
  7. Cuando se hayan enviado los 19 bits de la dirección a los chips 74HC595, establezca OE HIGH en los chips 74HC595

En este punto, ya no sé qué hacer a continuación, o incluso si mi lista de pasos arriba es correcta.

Por favor, ¿puede alguien informarme sobre el método correcto de manipulación de los pines para completar el acceso de lectura correctamente?

Comprendo que si me equivoco en la secuencia, los datos se perderán o se mezclarán y, de hecho, se volverán a engullir como engullidos.

He atado el pin 74HC595 shift-register-clock y el pin storage-register-clock para liberar un pin, pero si es necesario puedo deshacerme de la interfaz de programación y eso liberará dos pines para que pueda puede usar uno para los registros de reloj y luego separar los pines del reloj de registro de desplazamiento y de registro de almacenamiento.

Finalmente, leí las hojas de datos, pero como vengo de un fondo de programación, es muy difícil de entender.

Hoja de datos de ASC4008

Hoja de datos de SN74HC595

    
pregunta Zeddy

1 respuesta

1

Definitivamente estás "sobre tu cabeza" con este proyecto. Una respuesta que sea lo suficientemente detallada como para que se ponga en marcha sería demasiado larga para el formato de preguntas y respuestas A que utilizamos aquí.

Usar un par de SRAMs como un búfer de video de doble fotograma es una idea decente, pero tendrías que ejecutarlas "de plano" para producir una pantalla de 1280 × 720 (1 Mpixel). En términos de capacidad, solo tendrá 4 bits por píxel, 16 colores, como el esquema RGBI utilizado en el CGA original. Y en términos del ancho de banda requerido para leer los datos, deberá ejecutarlos a su velocidad máxima de 18 MHz (55 ns por ciclo). 36 Mpix / seg es apenas suficiente para producir una imagen 720i (entrelazada) a 30 fps.

Un registro de desplazamiento para generar las direcciones es definitivamente un no iniciador. La velocidad de datos en serie requerida sería una locura. Necesitará 5 paquetes de multiplexores quad 2: 1 para el bus de dirección y cuatro paquetes de buffers de datos bidireccionales octales para dirigir los datos a los lugares correctos. Además, necesitará lógica (contadores, etc.) para generar el tiempo de visualización.

Definitivamente es factible: cualquier geek de computadoras tan viejo como yo probablemente haya construido un controlador de pantalla como este. Pero necesita obtener mucha más experiencia con la lógica digital en general antes de poder abordarla.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas