Control de potencia Wemos D1 con MOSFET de canal P

[Nota: esta es la continuación de otra pregunta , la primera es mi intento de implementar la misma idea usando un MOSFET de canal N. Según las respuestas que recibí allí, salí, compré un MOSFET de canal P y me encontré con más preguntas que antes :)]

Estoy tratando de implementar algo similar a esto: https://youtu.be/nbMfb0dIvYc?t=4m27s

La idea es que el microcontrolador (un Wemos D1 Mini en mi caso) sea alimentado por un interruptor externo. Tan pronto como se inicia, configura un MOSFET para que pueda mantener su conexión de alimentación hasta que termine el trabajo para el que está configurado. Al final, se "mata a sí mismo" cortando la energía a través del MOSFET.

Así que compré un MOSFET de canal P ( IRF9Z34N ; probablemente no sea ideal con un Vgs (th) máximo de -4 V, pero fue la mejor pieza de orificio pasante que pude encontrar). Y construí el siguiente circuito:Primer intento

Cuando presiono el interruptor, el D1 se enciende correctamente, baja el pin de la compuerta MOSFET y revisa todo su código. Al final, tira del pasador de la puerta hacia arriba y se apaga.

Sin embargo, algo está mal. Al apagarse (después de configurar D5 en ALTO), habría esperado que el voltaje de la compuerta fuera a +5V a través de la resistencia pull-up. En cambio, se mantiene alrededor de 1,25 V, lo suficiente como para mantener el MOSFET parcialmente abierto, con suficiente corriente atravesándolo para mantener la MCU en un estado extraño, no vivo pero tampoco muerto (la MCU no recibe suficiente corriente para seguir ejecutando su código, pero recibe suficiente para evitar que se reinicie por completo y comience de nuevo cuando presiono el interruptor).

Basado en la sugerencia recibida de Brian Drummond sobre mi pregunta original, construí un arreglo de MOSFET dual:

MOSFET NP

Esto parece funcionar, pero parece innecesariamente complicado, especialmente en comparación con el esquema original (vea el video de YouTube arriba, a partir de las 04:24 ).

Entonces mi pregunta es: ¿hay alguna forma de "guardar" el esquema original? ¿Puedo implementar esto usando solo un MOSFET de canal P? ¿Si es así, cómo?

Si ayuda, aquí está el esquema del Wemos D1 Mini. Tenga en cuenta que lo estoy alimentando a través de la línea de 5V, que luego pasa por un regulador de potencia.

Sospecho que ya podemos ver la causa probable... Sin embargo, para estar seguros: ¿Cuál es el número de pieza del MOSFET de canal P que está utilizando? No vi eso en la pregunta. Un enlace a su hoja de datos sería útil.
Lo siento, quería copiar/pegar el P/N (IRF9Z34N) justo antes de mencionar el Vgs(th), pero de alguna manera el nombre no se logró. Edité la pregunta para agregarla.
Dos MOSFET y dos resistencias están lejos de ser innecesariamente complicados en mi libro :)
@anrieff: el doble de complicado que el original :). Y tratar de simplificarlo está demostrando ser una experiencia de aprendizaje en sí misma :P
Cierto, pero tenga en cuenta que en EE, ser demasiado entusiasta en minimizar el número de piezas rara vez es una buena estrategia. Si realmente quisiera un interruptor de una sola parte, podría ser un LDO (con pin de activación) o un SSR para el elemento de paso.
De acuerdo, tal vez la frase "innecesariamente complicada" fue un error de mi parte. No editaré la pregunta porque sería confuso para otras personas. Pero reformularé aquí: descubrí que necesitaba una parte más, y estoy tratando de averiguar por qué sucede eso y si el esquema original se puede implementar correctamente (y cómo).
La peor parte de todo esto es que en realidad tengo un LDO (con pin Habilitar) en el tablero. Pero en realidad, acceder y controlar ese pin significaría cortar físicamente un rastro de PCB y conectarse a un pin SMD. Y eso parece demasiado más allá de mi capacidad de soldadura actual :)

Respuestas (1)

Según sus comentarios, analicemos por qué la solución PMOS única no funciona.

Todos los pines de E/S de los microcontroladores modernos usan diodos de protección para proteger los circuitos internos sensibles de las condiciones de falla, por ejemplo, si maneja externamente 5V o -5V en un pin de una MCU, que funciona con 3.3V. Esto también podría ocurrir debido a ESD y, sin dicha protección, los dispositivos se destruyen fácilmente.

Sin embargo, esto tiene dos consecuencias:

  1. Si se apaga un chip de microcontrolador (0 V en su pin de alimentación (Vdd), al colocar un voltaje suficiente en cualquier pin de E/S, se producirá un "desbordamiento" de corriente en el pin Vdd, y el chip cobrará vida, como si lo has encendido normalmente
  2. Nuevamente, en una MCU apagada, si tiene una resistencia pull-up a un suministro activo, fluirá una pequeña corriente hacia el chip, intente encenderlo, pero como la corriente es insuficiente, se colgará en este "ni encendido, ni apagado" que está viendo.

Una regla general simple es que, si una MCU está controlando algo, y se espera que la MCU esté apagada o deshabilitada durante algún tiempo (por ejemplo, en modo de suspensión, para MCU que no mantienen sus E/S controladas). durante el sueño), es mejor si la cosa controlada requiere una señal de "encendido activo" y hay una resistencia desplegable . Ninguna resistencia a la puerta de un MOSFET sería mala, el pull-up es peor, el pull-down funciona.

Tenga en cuenta que este tipo de precauciones no son necesarias si se espera que la MCU esté siempre activa. No es la mejor práctica, ya que las resistencias cuestan centavos, pero podría omitir la resistencia desplegable en tal caso.

Para su configuración, la solución de dos MOSFET es lo mejor que puede obtener.

Otro escenario para explorar, que puede brindar la misma funcionalidad sin ningún MOSFET, es usar la funcionalidad de suspensión/restablecimiento/reactivación al cambiar de la MCU (no soy experto en Wemos, pero apuesto a que tiene algo así ). Cuando quieras "apagarte", simplemente te vas a dormir. La MCU aún consumirá algo de corriente, pero eso sería demasiado pequeño para importar. Y su interruptor puede conectarse a un pin de reinicio de la MCU o, si desea mantener el estado del procesador, a un pin en el que haya configurado la interrupción/activación por cambio.

Gracias por la respuesta tan detallada; definitivamente responde al "por qué" :). Para abordar su sugerencia final, el ESP8266 tiene una buena opción de suspensión profunda, y lo intenté inicialmente. Sin embargo, no pude diseñar un circuito que generara el pulso de reinicio para activar el dispositivo. Intentaré hacer otra pregunta para obtener algunos consejos. ¡Una vez mas, Gracias!