Leyendo / escribiendo un chip SRAM con un Arduino

2

El fondo

Quiero poder programar un Atmel AT28C256 EEPROM a través de un Arduino Uno. No tuve suerte en poder escribir / leer desde él, así que he recurrido al uso de un chip SRAM para simplificar las cosas (la EEPROM puede estar en modo de protección contra escritura, por ejemplo).

Desde el Arduino estoy manejando 3 registros de desplazamiento SN74HC95N que están conectados en serie, lo que me permite escribir direcciones de 16 bits y 8 bits de datos. Hasta ahora, bien, esto está funcionando bien y lo he verificado con un analizador lógico.

El problema

Sin embargo, el intento de leer / escribir en SRAM no me da nada en la lectura. La hoja de datos para el chip está aquí , y parece ser un asunto bastante simple (para usar) que funciona con Una gama relativamente amplia de voltajes.

Según mi multímetro hay aproximadamente 4.5V entre VCC y GND, y tengo una tapa de 100uF para ayudar a suavizar las cosas. Todo esto está construido sobre una placa de pan y el esquema es lo que (espero) esperaría, simplemente estoy conectando la dirección (aunque las 4 líneas de dirección principales están conectadas a tierra ya que mi EEPROM tiene menos pines que la SRAM) &erio; líneas de datos y luego conducir las otras entradas desde el Arduino.

El código está intentando escribir 8 bytes, con los valores 1-8 a la dirección 0-7. La salida del analizador lógico está debajo (solo se muestran las dos primeras líneas de datos, pero aún así deberían mostrar la salida en la fase de lectura), con escritura a la izquierda y lectura hacia la derecha.

Los dos registros de desplazamiento para la dirección siempre están habilitados para la salida, el dato uno está deshabilitado para las operaciones de lectura para evitar la contención.

Enviar ayuda!

Por lo que puedo saber, estoy enviando las señales correctas, y el tiempo de los pulsos también parece ser correcto (el mínimo de 50 ns en CE y WE y los míos son 100us). Espero ver dos pulsos de salida en el área resaltada arriba, pero claramente me estoy perdiendo algo. ¿Estoy haciendo algo obviamente mal con las entradas de control aquí o es más probable que esto se deba a mis habilidades en electrónica de aficionados? Puedo incluir código, pero espero que la salida hable por sí misma.

    
pregunta Matt Lacey

1 respuesta

3

Creo que quizás no estás deshabilitando los bits de datos de las salidas 74xx95, por lo que están luchando con las salidas de datos RAM. Las salidas lógicas de '0' tienden a ganar cuando un '0' y '1' se dirigen a una línea de señal simultáneamente. Necesita un método en su circuito para hacer flotar / deshabilitar / triestatal sus salidas 74xx95 para que las salidas de RAM puedan tomar el control.

Desde el nivel de detalle que puedo ver en el trazado, se ve bastante limpio. Pero no hay suficiente resolución para ver lo que CE y NOSOTROS estamos haciendo con precisión.

    
respondido por el Entrepreneur

Lea otras preguntas en las etiquetas