Estaba haciendo una placa con un atmega328 mcu (para usar con las bibliotecas Arduino) para hacer algunas cosas de comunicación por cable. Ya que estaba grabando el tablero de todos modos, decidí probar e implementar una funcionalidad de software simple, sin pensar mucho en ello. Una vez que grabé y armé la placa, mis cosas de un solo cable funcionan bien, pero el circuito de software no. Estaba hurgando y no puedo entender por qué no funciona.
La idea es que al presionar un botón momentáneo (durante 2-3 segundos), se conectará la batería al regulador de 5 V, que a su vez alimenta la MCU. Lo primero que hace la MCU es establecer un pin digital alto (línea etiquetada PWR en el diagrama a continuación), para bloquear el N-MOSFET Q1 y omitir el interruptor de botón pulsador. Cuando se suelta el interruptor, el circuito debe permanecer alimentado a través del MOSFET.
Lo que en realidad sucede es que al presionar el botón pulsador se enciende la placa como se esperaba. La compuerta del FET es conducida a 5V por la MCU como se esperaba, pero tan pronto como se suelta el botón, todo se apaga. Parece que el FET no está pasando por alto el botón por alguna razón, pero no puedo entender por qué. El FET Vgs es 1.8V, R6, R7 y D1 están allí, por lo que puedo presionar otra vez el botón para generar una interrupción en la línea BTN, luego bajar la línea PWR y apagar la placa.
¿Entonces la pregunta es qué está mal aquí? ¿Por qué el Q1 MOSFET no permanece bloqueado una vez que se suelta el botón (conectado al encabezado PWRSW)? Estoy seguro de que no es algo complicado, pero no puedo entender por qué, tal vez porque lo he estado mirando por mucho tiempo ...