Estamos ante un problema muy peculiar. Estamos diseñando una placa basada en ESP32 con varios periféricos como controladores de motor, sensores, etc. Estamos utilizando GPIO 4,5 en el ESP32 como líneas I2C y hemos conectado tres dispositivos en el bus. El primero es el MCP23017 que está conectado al ESP32 mediante un cambiador de nivel bidireccional (funciona a 5V), el otro es el IC táctil CAP1206 y finalmente tenemos el MPU6050 interconectado con él.
Para alimentar la placa, tenemos tres opciones:
- Adaptador de CC en el que la tensión del adaptador se reduce a 5 V con un convertidor reductor y se suministra al sistema.
- Puerto USB para alimentación y programación (estamos usando el CH340G para programar el módulo ESP32).
- Finalmente, utilizamos una celda 18650 junto con un circuito basado en TP5410 que funciona como un cargador y convertidor elevador (convirtiendo los 3.7 V de la batería a 5 V).
El problema es que cuando ejecutamos nuestro dispositivo con el adaptador de CC o la alimentación USB, todo funciona bien. Sin embargo, cuando se usa con una batería, el dispositivo MPU6050 repentinamente parece colgarse después de unos 10-20 segundos.
A continuación se muestran esquemas de nuestro USB, MPU6050 y el circuito de carga.
El problema solo ocurre cuando se usa la batería y no ocurre en ningún caso cuando se usa USB / DC como fuente de alimentación.
¿Qué hemos intentado?
- Triple comprobó que todas las conexiones en el PCB estaban en lo correcto
- Descubrimos que cuando eliminamos el diodo marcado "D2" en el circuito del cargador, todo parece funcionar bien con la batería también.
Le agradecemos por tomarse el tiempo de leer esto y, con suerte, darnos alguna solución.