Interconexión 62256 SRAM a AVR de bajo número de pines a través de pestillos

0

Necesito agregar más de 20 kBytes de RAM al dispositivo pequeño construido alrededor de ATMega8. Además, estoy interesado en investigar si puedo sustituirlo con ATtiny2313. El objetivo es, en términos generales, almacenar datos de llegada rápida antes de servirlos a través de la interfaz serial ...

Pensé en 62256 chips, pero con ellos necesito 15 líneas de dirección y 8 líneas de datos, algo más de lo que puedo ahorrar con cualquiera de estas dos MCU. Mientras tanto, el problema es encontrar la solución con la MCU más pequeña (más barata) posible, así que no estoy listo para cambiar a algún ATMega16 o 32 que, creo, hará el truco. También he encontrado SRAM serie de Microchip, pero parece que la velocidad no será suficiente para mí ...

Así que estoy pensando en usar dos (?) cierres octales, pero me temo que estoy reinventando la rueda y aquí podría haber una solución más fácil. Es por eso que estoy aquí. Esta es mi idea actual:

  • Alimino los bytes altos y bajos de la dirección desde las salidas de dos pestillos octales;
  • Conecto 8 pines (por ejemplo, PB0..PB7) a ambos pestillos y a 8 líneas de datos;
  • Ahora necesito dos pines más para controlar los pestillos y otros dos para WE y OE del chip SRAM.

Y aquí están mis preguntas:

  • son suficientes dos pestillos, ¿es correcto que no necesito pestillos en las líneas de datos?
  • ¿Será 74hct373 una buena opción para pestillos?
  • está bien cambiar ligeramente las líneas de dirección por un byte alto (es decir, en lugar del orden A8, A9, A10, A11, A12, A13, A14, cabléelos como A8, A9, A11, A10, A14, A13, A12, por ejemplo) para simplificar el enrutamiento)?
  • tal vez haya otra solución (además de MCU más grande, pestillos o SRAM en serie) que me perdí?
pregunta Alumashka

3 respuestas

2

Suena bien. Tiene razón, no coloque un pestillo en las líneas de datos, ya que son bidireccionales. Siempre que se asegure de que la OE se desactiva cuando está programando la dirección y que nunca se activan las líneas de habilitación de cierre cuando se afirma la OE, no debería tener ningún problema. Tomará ciclos de reloj adicionales para acceder a la memoria, pero ese es el precio que paga por guardar los pines.

Básicamente sería algo como:

  1. Asegúrese de que OE y NOSOTROS estén desactivados
  2. Cargue la dirección 0..7 en las líneas de datos
  3. Enganche en el cierre de dirección inferior
  4. Cargue la dirección 8..15 en las líneas de datos
  5. Enganche en el pestillo de dirección superior
  6. Cargue los datos en las líneas de datos (para escritura) o configure para ingresar (para leer)
  7. Realice la operación utilizando los pines OE y WE.

Cambiar las líneas de dirección a la SRAM estaría bien, solo significa que las cosas se almacenarán en un orden extraño dentro de la SRAM, pero en lo que respecta a la unidad de control de temperatura será contiguo. Para flash, esto puede ser un problema ya que los accesos a la página ya no serían posibles, pero SRAM como el 62256 no tiene ese problema ya que no usa paginación.

    
respondido por el Tom Carpenter
2

Hay dispositivos SRAM con interfaces SPI. Esa es una solución más confiable y simple que tratar de emular los datos y el bus de direcciones con el puerto IO.

    
respondido por el Lior Bilia
2

Si está dispuesto a compartir solo 8 de los pines (por lo que necesitaría 15 + líneas de control), puede usar una sola 74HC573 . Esto era común con los viejos circuitos 8031 ya que los 8 bits más bajos de la dirección se multiplexaban con datos para el acceso a la memoria externa.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas