Creo que básicamente lo tienes. No he revisado cuidadosamente todos los detalles (por ejemplo, no revisé los límites actuales según M0 y M1), pero la idea básica es correcta.
GOOD_BAT es un poco difícil de explicar. Debe buscar la especificación de carga USB, versión 1.2. Pero lo intentaré.
Cuando un dispositivo USB se conecta a un host (por ejemplo, una PC) se supone que debe mantener el consumo de corriente del USB dentro de algún límite hasta que se reciba una configuración del host, lo que permite un límite superior (generalmente 500 mA). Esto requiere que el dispositivo tenga algo de inteligencia y pueda comunicarse a través de líneas de datos USB.
Pero si tiene un dispositivo con una batería muy baja, es posible que no pueda iniciarse completamente. Por lo que no puede ver a estos detalles USB. Así que la especificación de carga USB creó una provisión para esta condición de "batería descargada". Esto se denomina provisión de batería muerta (DBP).
Según el DBP, si un dispositivo con batería agotada está enchufado, se permite que el dispositivo tome corriente durante un tiempo sin comunicarse a través del bus de datos USB y sin recibir una configuración del host. Pero esto solo es permitido por un corto tiempo (creo que 30 minutos). El BQ24392 ayuda a implementar esto ejecutando un temporizador y monitoreando GOOD_BAT.
Básicamente, si GOOD_BAT no realiza una transición alta dentro del período del temporizador DBP en el BQ24392, desconectará la alimentación USB y los datos del resto de la placa. Esto es algo que solo se requiere principalmente para un estricto cumplimiento con USB.
Muchos dispositivos no necesitan esta funcionalidad y solo pueden establecer GOOD_BAT alto. Si necesita usar logotipos USB en su producto y empaque, es posible que deba cumplir estrictamente con todas las disposiciones de USB, y deberá verificarlo a través de las pruebas. De lo contrario, en mi opinión, el cumplimiento estricto no es realmente necesario. En ese caso, asegúrese de dibujar 500 mA o menos HASTA que esté seguro de que está conectado a un DCP o host que puede proporcionar más que eso. ENTONCES habilite el límite superior basado en el resultado de detección del tipo de cargador. Si todas estas cosas son ciertas, puedes establecer GOOD_BAT alto todo el tiempo.
Si desea admitir GOOD_BAT, la forma más sencilla es probablemente poner un comparador en VBATT. El comparador sería alimentado por USB_VBUS. También puede utilizar el procesador para hacer esto. Podría muestrear VBATT durante el arranque y la unidad GOOD_BAT alta si VBATT es > de 3V (o lo que sea). Hay muchos detalles que no estoy cubriendo aquí, como extraer energía de VBATT todo el tiempo y el modo de falla del comparador que podría permitir una carga incontrolada de la batería cuando VBUS está alto. Solo te preocuparías por esas cosas si siguieras esta ruta.
¡Buena suerte y diviértete!