¿Por qué Attiny85 no funciona en este circuito?

Estoy diseñando un circuito para controlar la potencia de un calentador usando un Attiny85. Este es el circuito:

Circuito con Attiny85

El Attiny85 está programado para arrancar con el calentador y el mosfet apagados. Cuando se presiona el botón, el calentador debe encenderse y permanecer encendido (según el programa).

Sin embargo, cuando enciendo el circuito con el interruptor en la parte inferior, una batería emite un zumbido y parece que Attiny nunca comienza a ejecutar su programa. (El voltaje en PB1 no cambia cuando se presiona el botón).

Si se desconecta alguna parte del mosfet, de repente el Attiny85 comienza a ejecutar su programa correctamente. Pero, por supuesto, el circuito no funciona con el mosfet desconectado.

Alimentar todo con una sola batería también soluciona el problema, pero luego el calentador no produce suficiente calor.

¿Por qué el Attiny85 no se carga correctamente y comienza a funcionar en este circuito?

Información adicional:
Attiny85 debe obtener 4,2 V
El calentador debe obtener 8,4 V cuando está encendido
El mosfet es un SIR404DP
Disculpas si mi diagrama es raro

EDITAR: El mosfet y las baterías pueden manejar alrededor de 10 amperios. Medí el voltaje a través del Attiny85 en 4,2 V, por lo que debería estar operativo a menos que se bloquee al arrancar.

Intenté mover el interruptor (SW) al pin VDD y obtuve el mismo resultado.

EDITAR 2:

El comentario de @Andrew Morton para reemplazar el calentador con LED funcionó. El Attiny85 los opera como se esperaba. Sin embargo, no estoy seguro de cómo hacer que funcione con el calentador.

EDIT 3: ¡ Adjuntar un capacitor entre PB1 y GND según el comentario de @Nedd funcionó! Las baterías todavía emiten un zumbido aterrador correspondiente a la frecuencia PWM, pero supongo que ese es un problema diferente.

¿Puedes cambiar el calentador por una resistencia de 1 kΩ y un LED en serie y ver si funciona? Sospecho que el calentador consume demasiada corriente para que las celdas mantengan su voltaje de salida. ¿Tiene un multímetro para verificar el suministro de voltaje al ATTiny?
¿Puede su circuito manejar los> 4A que se necesitan para el calentador?
¡Un interruptor en la línea GND está buscando problemas! Simplemente no hagas esto, ya que dará resultados inesperados. Vea este video para saber por qué: youtube.com/watch?v=2yFh7Vv0Paw en el video, el VDD no está conectado, pero se aplica el mismo principio para un GND desconectado.
Es muy inusual que una celda emita un zumbido: si tiene protección de corriente interna, esto podría estar causando problemas al encenderla. IIRC, AtTiny se inicia con todos los GPIO como entradas con un pull-up, por lo que el FET puede encenderse hasta que su programa configure PB1 como una salida y lo reduzca.
@Frog: al encender, la MCU pone todos los puertos como entrada pero no habilita los pull-ups. Sin embargo, debe habilitarse una vez que el programa se está ejecutando para que se detecte el botón pulsador.
Si los problemas están causados ​​por un encendido rápido o una oscilación involuntaria (que provoca un zumbido), intente poner un retardo RC en la línea de la puerta. Si solo cambia a una velocidad lenta, no se notarán unos pocos mS adicionales. Tal vez pruebe con 3.3k y 1uF (con la resistencia en PB1 seguida de la tapa a GND). También acepto que el interruptor de encendido debe estar en el pin de alimentación + del ATtiny. (Y el pull up en PB3, o configure el pull-up interno).

Respuestas (1)

Como se muestra, cuando el interruptor de encendido está apagado, el voltaje de suministro al ATTiny podría invertirse al alimentarse a través del FET.

Eso probablemente impide que el reinicio de encendido funcione correctamente y posiblemente podría causar daños.

Debe colocar el interruptor en el cable positivo a VDD. Con el terminal GND de la MCU yendo directamente a la batería.

Cuando se usa una sola celda, el voltaje de la MCU simplemente llega a cero debido a la conducción a través del FET, lo que reduce el problema lo suficiente como para que funcione.

De acuerdo con @kevin white. También puede intentar una prueba de conectar el calentador directamente a través de las dos baterías y luego probar el voltaje a través de la batería inferior. Dependiendo de la resistencia interna de la batería, es posible que el voltaje a través de ella baje demasiado para impulsar el ATTINY cuando el calentador está encendido.
@DanielWilliams también necesita un pullupat PB3, está en un estado definido cuando no se presiona el botón.
¿Quiere mover el interruptor (SW) al pin VDD? Intenté eso, y no hizo ninguna diferencia.
@DanielWilliams: sí, el interruptor debe estar entre el grifo de la batería y el condensador de 22uF. El GND de la MCU debe ir directamente al terminal negativo de la batería. Si funciona con la celda única pero no funciona con la posición correcta del interruptor, es posible que tenga otro error de cableado.