Estoy tratando de crear un circuito de ahorro de batería casero para encender mi microcontrolador (nodemcu v2),
Estoy siguiendo http://www.ti.com/product/TPL5111/datasheet/detailed_description y creé la conexión en la placa,
TPL está conectado de la siguiente manera
En el lado MOSFET
Las siguientes son mis dudas.
Subiré mi circuito desde la placa de pruebas, pero necesito ponerle etiquetas.
A continuación se muestra un código simple que enciende el LED en el pin 13/D7
#include "AdafruitIO_WiFi.h"
#define HUZZAH
#ifdef HUZZAH
#define DONEPIN 2 // TPL5100 Done signal
#define LEDPIN 13
#else
#define DONEPIN D2 // TPL5100 Done signal
#define LEDPIN D7
#endif
#define DEBUG true
#define BAUD_RATE 115200
const char* ssid = "wifi";
const char* password = "password";
#define AIO_KEY "mykey"
AdafruitIO_WiFi io("userId", AIO_KEY, ssid, password);
void logMessage(String message, boolean noCRLF=false){
#ifdef DEBUG
if (Serial){
if (noCRLF){
Serial.print(message);
}else{
Serial.println(message);
}
}
#endif
}
void connectAdaIo(){
bool sendData = false;
logMessage("Connecting to Adafruit.io");
// connect to io.adafruit.com
io.connect();
int retry = 0;
// wait for a connection
while(io.status() < AIO_CONNECTED || retry < 10) {
logMessage(".");
retry++;
delay(500);
}
if (io.status() < AIO_CONNECTED){
sendData = false;
}
// we are connected
logMessage("Adafruit connected:" + sendData ? "true" : "false");
logMessage(io.statusText());
}
/*
* send DONE signla to TPL5100 to shut the power off
*/
void sendDone(){
digitalWrite(DONEPIN, HIGH);
delay(1);
digitalWrite(DONEPIN, LOW);
delay(1);
}
void setup() {
delay(10);
Serial.begin(BAUD_RATE);
Serial.println("Measuring Temp on DS18B20 \n");
delay(10);
pinMode(DONEPIN, OUTPUT);
pinMode(LEDPIN, OUTPUT);
digitalWrite(DONEPIN, LOW);
connectAdaIo();
}
void loop() {
io.run();
digitalWrite(LEDPIN, HIGH);
logMessage("I was here", true);
delay(3000);
digitalWrite(LEDPIN, LOW);
while(true){
sendDone();
}
}
simular este circuito : esquema creado con CircuitLab
Además de la útil sugerencia de Jim Fischer , veo otra posible causa de su problema.
Incluso cuando TPL DRV es bajo, mi LED externo a MC en el pin 13 está encendido y el voltaje es <0.5 voltios, ¿debería el microcontrolador estar APAGADO por completo?
Observe en la hoja de datos de TPL5111 que el ejemplo de "Aplicación típica" no controla un interruptor de lado bajo , sino que controla un interruptor de lado alto . Tal vez te preguntes por qué eso importa...
Mire este diagrama de su hoja de datos HTML :
Figura 1: Ejemplo de esquema TPL5111 de su hoja de datos
En ese ejemplo, no hay posibilidad de fugas desde el pin GPIO de la MCU, ni a través de las resistencias pull-up I2C que se muestran en ese ejemplo, cuando se apaga la alimentación con el interruptor de alimentación del lado alto .
Sin embargo, mirando su esquema, dado que está cambiando en el lado bajo , hay rutas de corriente "ocultas" desde el riel de alimentación a través del D2
pin MCU y la resistencia de 1MΩ a tierra, y a través del D3
pin MCU y el LED a tierra:
Figura 2: versión actual del esquema de la pregunta
Estos tipos de rutas de corriente "ocultas", a través de pines GPIO, pueden ser suficientes para encender (parcialmente) una MCU. Este es un problema bastante común cuando se utiliza la conmutación del lado bajo, ya que debe considerar todas las rutas posibles a tierra desde cada dispositivo, cuando su conexión a tierra principal (por ejemplo, Vss) está desconectada.
Puedes probar esta hipótesis en tu diseño:
D2
pin GPIO de la MCU para que no esté conectado a la resistencia desplegable de 1 MΩ o al DONE
pin TPL5111.D3
pin MCU y Vdd (es decir, el riel de alimentación positivo) en lugar de entre el D3
pin y tierra. Luego, debe cambiar su código, ya que conducir ese pin MCU High apagará el LED, y conducir el pin Low encenderá el LED.Luego, verifique nuevamente si su MCU aún enciende el LED, cuando su pin GND está desconectado por el TPL5111 y el MOSFET.
Algunos puntos más:
Ya mencioné en un comentario que SW1
en su esquema parece incorrecto, ya que cortaría directamente la fuente de alimentación cuando se presiona el interruptor. Sin embargo, supongo que es un error en el esquema y no muestra las conexiones reales que debe hacer SW1
.
Es posible que su MOSFET FQP30N06 elegido no haga un buen trabajo al encender su carga. Note que su se especifica en pero lo está cambiando usando un voltaje mucho más bajo, por lo que es será mayor que su especificación "titular" de 40 mΩ.
El TPL5111 está diseñado para conmutar una señal de potencia de nivel lógico, no una puerta MOSFET. Se especifica a 1 mA de accionamiento y 50 pF de carga (máximo absoluto 5 mA). Aunque dudo que esto sea un problema con MOSFET pequeños (valores pequeños de capacitancia de puerta), personalmente sugeriría revisar la especificación MOSFET y su idoneidad más de cerca (se me acabó el tiempo). También use un 'alcance para ver la señal de activación de la puerta, para asegurarse de que tenga tiempos de subida/bajada razonables.
Dependiendo de las limitaciones de su diseño, la disponibilidad de los componentes, etc., podría considerar invertir la señal TPL5111 DRVn usando un BJT NPN de señal pequeña o un MOSFET de canal N, y usarlo (ahora invertido, es decir, señal baja activa) para conducir la puerta de una señal adecuada . MOSFET de canal P, que actúa como controlador de lado alto . Todo depende de las razones por las que decidiste usar un interruptor de lado bajo en primer lugar.
En el lado MOSFET > 5. La PUERTA y el DRENAJE están conectados usando una resistencia de 5K ohm
¿Por qué esta resistencia de 5k está conectada entre la PUERTA y el DRENAJE? Si entiendo correctamente la topología de su circuito (lo cual es difícil sin un diagrama esquemático, por cierto), esta resistencia de 5k conecta el pin GND del microcontrolador ("uC") al pin 5 en el TPL5111, y cuando el pin 5 es lógico BAJO tendrá una ruta de corriente pequeña y continua (~1 mA) desde +5 V CC a TIERRA:
+5 VDC
-> uC VDD (POWER)
uC GND ->
-> 5k resistor ->
-> TPL5111 pin5 (LOW)
TPL5111 GND ->
-> GND
Le recomiendo que elimine esa resistencia de 5k y la reemplace con una resistencia de 10k entre la puerta del MOSFET y TIERRA para "programar" el voltaje VGS predeterminado del MOSFET a cero voltios (VGS = 0V). No he leído la hoja de datos de TPL5111, pero puede haber un breve período de tiempo durante el reinicio de encendido (POR) cuando el pin DRVn del TPL51111 (pin5) está flotando o es inestable, y la resistencia de 10k "pull down" en la puerta del MOSFET ayudará a garantizar que el MOSFET permanezca APAGADO durante ese tiempo.
Anguila trifásica
Gaurav18ca
Sam Gibson
SW1
se cierra, provoca un cortocircuito directo en la fuente de alimentación. Esto no es sensato, así que verifique y corrija el esquema (esto supone que su hardware real está conectado de manera diferente, sin un cortocircuito directo en el suministroSW1
, por lo que el error está solo en el esquema).