Buenas, soy nuevo en el foro y mi nivel de electrónica es muy básico. He leído los mensajes relacionados en este foro y no encuentro nada que me solucione mi problema.
Estoy intentando dormir este GPS mediante su pin EN. Tiene otras formas de hacerlo dormir pero, debido a la placa que empleo (FireBeetle esp32E) no lo consigo.
La forma de hacerlo es sencilla: simplemente se le envia una señal HIGH. Su estado normal de funcionamiento es LOW y pasa a dormir.
Lo consigo dormir pero el problema surge cuando intento dormir también la placa que, supongo que el pin pasa a estar en LOW y lo despierta.`
Tenés que configurar el GPIO (pin) para que retenga su estado al "dormirlo".
Revisá la documentación del ESP32.
Saludos
Muchas gracias a los dos. El problema es que no sé cómo configurar el GPIO (pin) para que retenga su estado. El pin lo puse primero en OUTPUT para que le pase al pin EN del GPS el estadp HIGH para que duerma el GPS, y antes de dormir el micro del ESP32 lo puse en INPUT con la intención de que no pasara su nuevo estado LOW cuando éste durmiera, pero no me funcionó.
Y del artículo que puso surbyte tampoco consigo sacar nada útil, ya que describe cómo dormir externamente el GPS, pero es posible que con mis escasos conocimientos en el tema se me haya pasado algo que me ayudara.
Muchas gracias a los dos.
Conseguido al final. La función que retiene el estado del pin para el ESP32 es:
"esp_sleep_enable_ext0_wakeup(GPIO_NUM_x, 1);".
Así que gracias a surbyte por el post.
Comentar para quienes necesiten dormir alguna de las numerosas placas que llevan el micro ESP32 que, aunque los consumos en modo deep sleep que proporciona el fabricante son de unos cuantos microamperios, en realidad no es así. Los consumos en este estado suelen ser muy superiores, alrededor de 5-10 mA,
De pruebas reales el FireBeetle sí que parece reducirlo a esos consumos nominales que proporciona el fabricante
Los problemas con esta placa surgen por los pocos pines disponibles, Solo 1puerto UART (Serial) por lo que la comunicación con el GPS Featherwing de Adafruit se complica. Excepto 4 pines, el resto son RTC (cuando se ponen en 1 HIGH para apagar el GPS no se puede dormir el micro) o reservados para comunicación SPI, etc.
Yo lo he resulto recibiendo los comandos NMEA del GPS por un SoftwareSerial (pines 16 y 17) y por fin conseguí apagar el GPS (junto con el micro) poniendo en 1 (HIGH) el pin 3 (Rx). Eso sí, la alimentación por batería la debo hacer a través del USB C.
Muchas gracias a los dos por vuestra ayuda y espero haber aportado también algo útil.