He creado dos circuitos idénticos. La única diferencia entre ellos, aparte del número de líneas en la pantalla LCD, es que el circuito antiguo utiliza resistencias de pull-up de 10K en lugar de resistencias de pull-up de 100K. Te lo explicaré más a fondo ...
Creé un circuito en el que los datos se introducen en serie en los registros de desplazamiento (74HC164) a través de un puerto serie. La salida de los registros se conecta a una EEPROM AT28C256 que luego carga los datos a un LCD. Esto evita que el microcontrolador use su espacio para almacenar largos mensajes LCD.
Cuando probé las cosas, ambos circuitos encendieron la pantalla LCD como se esperaba, sin embargo, en el circuito más nuevo, la pantalla LCD no respondió a nada, como en el circuito anterior, la pantalla LCD respondió y produjo el texto correcto en la pantalla.
Probé la pantalla LCD en el circuito anterior (aunque no encajaba), y la pantalla LCD funciona.
También probé el nuevo circuito y arreglé todos los cortocircuitos y circuitos abiertos que pude encontrar.
En ambos circuitos, los pull-ups que describí anteriormente están conectados a las salidas de los registros de desplazamiento (74HC164) porque me dijeron que una solución era usar el 74HCT164 en lugar del 74HC164, pero podrían crear EMI, y su más difícil de encontrar 74HCT.
¿La razón por la que salté a 100K es porque quería ahorrar energía en mi circuito pero la pregunta es si 100K es un valor demasiado alto de resistencia entre una salida de 74HC y una entrada de cmos? Si es así, ¿cuál es el valor máximo que debería usar?
EDITAR: Solo para aclarar, el circuito antiguo usa la recuperación de resistencia de 10K y el nuevo circuito usa la resistencia de recuperación de 100K. Aparte de eso, el esquema de abajo se usó para ambos circuitos. Los artículos marcados con J eran grapas que conducen la electricidad.
El LCDCLKB y el LCDCLK se conectan entre sí para evitar que las entradas del 74HC164 puedan flotar.