Hice un código simple para el microcontrolador que imprime un mensaje simple en la pantalla LCD una vez que se inicia el microcontrolador. Coloqué mi placa de modo que las resistencias de pull-up y la resistencia de restablecimiento (100K) y el condensador (0.1uF) entren dentro del zócalo DIP y también incluyé un condensador de desacoplamiento de 0.1uF.
Debido al diseño de PCB, agregué cables de puente con perlas de ferrita en ellos desde 5 VCC regulados al VCC del micro.
También me volví loco con los condensadores. Utilicé un condensador electrolítico de desacoplamiento de 470uF como depósito de energía principal y cerca de eso agregué un condensador de 0.047uF.
Hice los planos de potencia lo más grandes posible y los etiqueté en la pizarra como + y -.
El cristal es de 20Mhz con condensadores desplegables de 33pF.
Cada vez que intento iniciar el microcontrolador normalmente, no se ejecuta ningún código (obtengo una salida indeterminada) y la pantalla LCD nunca se inicializa.
Sin embargo, cada vez que agrego temporalmente un capacitor de 22uF y lo mantengo en los planos de energía debajo del microcontrolador mientras enciendo el circuito, el código se ejecuta y aparece el mensaje correcto en la pantalla. Entonces soldé el condensador de 22uF en el mismo lugar, probé a encender todo normalmente y no obtengo nada.
¿Hay algo que mis dedos estén haciendo para que el circuito funcione? (¿estático o algo así?) Esto realmente me desconcierta.
¿Y mi problema se eliminaría si cortara la velocidad del cristal a la mitad?