Cómo configurar USB OTG como fuente de alimentación

1

Tengo una computadora ARM con un puerto USB 2.0 OTG, y quiero usarla como fuente de alimentación de 5V 100mA (para manejar un par de leds). Sin embargo, cuando conecto una carga (LED + resistencia) a través de un cable OTG, la alimentación no se suministra constantemente. El LED parpadea brevemente 4 o 5 veces, y luego se apaga hasta que vuelvo a enchufar el cable OTG. Además, el comando dmesg informa:

musb-hdrc: configured as A device timeout

Supongo que eso significa que el host OTG suministró la alimentación por un corto tiempo, pero no pudo detectar un esclavo USB en el bus y apagó el conector.

¿Qué se necesita para engañar al controlador de host OTG para creer que hay un esclavo conectado, por lo que sigue suministrando energía? ¿Es posible lograr esto con un simple esquema, o es absolutamente necesario implementar el protocolo USB? ¿Hay un chip con bajo consumo de energía que podría usar para esto?

    
pregunta Dmitry Grigoryev

1 respuesta

2

Relacionado: Cómo obtener más de 100 mA desde un puerto USB

¿Tiene alguna forma de forzar el hardware USB en modo host (no OTG)? Veo un código del núcleo aquí (con definiciones de bit de registro aquí )

/*
* Wait for the musb to set as A device to enable the
* VBUS
*/
while (musb_readb(musb->mregs, MUSB_DEVCTL) &
         MUSB_DEVCTL_BDEVICE) {

    mdelay(5);
    cpu_relax();

    if (time_after(jiffies, timeout)
          || loops-- <= 0) {
        dev_err(musb->controller,
        "configured as A device timeout");
        break;
    }
}

Esto es solo una conjetura, pero si puede forzar el controlador en modo host, puede borrar el bit BDEVICE en DEVCTL. La especificación OTG permite un mínimo de 1.1 segundos y un máximo de 30 segundos para que un dispositivo B se conecte antes de que el host pueda apagarse. No creo que el simple USB incluya este comportamiento.

Si eso no funciona, probablemente tendrás que pasar por la enumeración. Esto requerirá un controlador IC. Los chips convertidores USB programables de FTDI probablemente harán el trabajo.

    
respondido por el Adam Haun

Lea otras preguntas en las etiquetas