Estoy diseñando un dispositivo con comunicaciones USB, usando un microcontrolador STM32F105. Tiene una batería LiPo, que se carga desde el puerto USB mediante un controlador de carga LTC4077. En general, utilizará un puerto de carga de alta corriente para cargar la batería, pero a veces se conectará a una PC para las comunicaciones de datos.
Para mantenerse dentro de la especificación USB, el controlador de carga inicialmente permite una corriente de carga de 100 mA. Si el STM32F se enumera con un host USB apropiado, afirma una línea lógica que le indica al controlador de carga que tome 500 mA.
Tengo un interruptor de alimentación entre la batería / cargador y el resto del circuito. Cuando el interruptor está apagado, el microcontrolador no tiene alimentación y la batería se cargará a 100 mA.
P : ¿Cómo cargo a una corriente más alta sin la intervención del microcontrolador?
La especificación de carga de batería USB 1.2 (se encuentra aquí) ofrece diferentes opciones de hardware para cargar puertos, para permitir "Dispositivos portátiles" (como el mío) para determinar las capacidades del puerto de carga sin enumeración. Por ejemplo, un "Puerto de carga dedicado" (sin capacidad de comunicación) coloca una resistencia de 200 ohmios entre D + y D-. Si el dispositivo portátil detecta esta conexión, entonces puede asumir que el dispositivo puede suministrar una corriente más alta.
He encontrado algunos circuitos integrados de administración de cargos, como el MAX77301 , que maneja esta detección y establecer sus niveles actuales de carga adecuadamente. Sin embargo, hacen su propia enumeración y no pasan a través de los datos USB. Supongo que no se pueden colocar en paralelo con la ruta de comunicación de datos.
¿Qué me estoy perdiendo? ¿Qué se considera una buena práctica para lograr lo que estoy buscando hacer?
Gracias.