ESP8266 reduce el consumo de energía causado por IC/componentes adicionales a bordo durante el sueño profundo

Necesito reducir la energía consumida por un circuito basado en ESP8266 y circuitos adicionales (sensores I2C, sensor basado en resistencia de luz, etc.). A estas alturas, cuando configuro ESP8266 en suspensión profunda, todavía tengo un consumo de energía relevante causado por componentes adicionales. No todos los circuitos integrados tienen un modo de 'sueño profundo' que se puede configurar para reducir la potencia, por lo que traté de desconectar la línea VCC que alimenta todos los componentes adicionales en la placa de pruebas y la caída de corriente fue suficiente para permitir el funcionamiento de todo el circuito con la batería.

Así que mi idea es manejar la línea de sensores VCC con un mosfet manejado por el ESP8266, algo como:

  • en el encendido ESP8266 ( setup()método Arduino), lo primero que enciendo es el mosfet para encender todos los sensores
  • pequeña pausa para permitir que todos los circuitos integrados se inicien y estabilicen
  • realizar todas las operaciones (leer sensor, cálculo, etc.)
  • apagar mosfet
  • Convierte ESP8266 en sueño profundo

Entonces preguntaría:

  1. ¿Es una forma factible o puede llevar a algún tipo de problema?
  2. si uso un mosfet de canal N, el resultado es un interruptor de lado bajo, que deja a GND flotando. Esto me parece mal, ¿verdad?
  3. si uso un interruptor de lado alto (mosfet de canal P), ¿es suficiente una resistencia pull-up para asegurar que el mosfet esté completamente cerrado cuando el micro entra en modo de suspensión profunda?

Todo el circuito VCC es 3.3v

También deberá asegurarse de que los dispositivos periféricos tengan entradas controladas por el ESP en un nivel bajo o tendrá un consumo de corriente y posiblemente una sobretensión eléctrica. es decir, el ESP deberá tener esas salidas bajas antes de apagar los periféricos.

Respuestas (1)

Quitar la energía de los sensores es la mejor manera de reducir el consumo de energía cuando no los necesita. Puede hacer un interruptor de lado bajo porque sus sensores no usan mucha corriente, por lo que la tierra estará tan cerca de la tierra real que no importará. Sin embargo, los pines de los sensores pueden estar en el nivel de VCC, por lo que debe observar dónde se conectan, por ejemplo, las líneas I2C a su MCU, las entradas allí deben ser flotantes. Por otro lado, si usa el interruptor del lado alto, entonces, por supuesto, sus líneas I2C deben ser bajas o, de lo contrario, la resistencia pull-up en esas enviará energía a sus sensores (algo a tener en cuenta si realmente está tratando de minimizar el consumo de energía). Cuando hablas de un mosfet y dices "completamente cerrado", eso significa que está "ENCENDIDO" porque debes pensar en él como un interruptor en un circuito, por ejemplo, piense en un interruptor de cuchillo. No es una válvula en una línea de agua, por lo que puede ser confuso, pero para responder a su pregunta, un tirón en el canal p es suficiente para mantenerlo completamente cerrado (también conocido como abierto) (sin tener en cuenta las fugas, consulte la hoja de datos en caso de duda ).

Entonces, debido a que tengo I2C, por lo que entiendo de su respuesta, un interruptor de lado bajo es mejor debido a que con GND desconectado, ¿no hay flujo de corriente incluso a través de líneas I2C?
las líneas i2c se elevan debido a las resistencias, que pueden ser internas de su microcontrolador, en cuyo caso puede apagarlas y dejar que las líneas floten por completo. si son externos puedes alimentarlos desde tu micro para que también puedas apagarlos. si no puede apagarlos, entonces el interruptor del lado bajo sería lo mejor y permitiría que todos sus sensores se eleven completamente a VCC.