Tengo una placa alimentada por batería con un ATMega328P y algunos otros periféricos, como una tarjeta SD, RTC, sensores, etc. El diseño de la placa debe ser de la potencia más baja posible, manteniendo el ATMega328P como una MCU. La placa utiliza el cargador de arranque Arduino, etc.
Agregué un chip FT232RL USB a UART al diseño, para brindar mejores comunicaciones serie que tener que tener un convertidor externo de serie. El FT232RL tiene una entrada de 5V desde el USB con un generador de 3.3V a bordo que se conecta al suministro de 3.3VIO que necesita. Así que el FT232RL se alimenta desde el USB cuando está conectado. El circuito de alimentación de la batería está separado. TX y RX están conectados al ATmega328P RX y TX.
El problema es que cuando se desconecta la alimentación del FT232RL, el chip aún extrae algo de energía parásita a través de las líneas ATmega328P RX y TX. Otro pin ATmega328P se usa para detectar TX desde el chip, por lo que el ATmega328P puede apagar la serie cada vez. Incluso con la serie apagada y el TX establecido en 0V, y el RX en entrada, el FT232RL aún consume algo de energía del RX, más aún si los pull-ups están habilitados. Esto aumenta el consumo de energía.
Mi solución es (cuando no se detecta actividad en serie)
- Deshabilitar puerto serie
- Establezca TX en 0V
- Establezca RX para ingresar y agregar una resistencia desplegable externa.
Sin embargo, esto parece un poco poco elegante. ¿Hay alguna solución de hardware que funcione? ¿Alguna otra sugerencia?