Descriptor USB de un dispositivo de doble alimentación

Considere un dispositivo USB 2.0 que se pueda alimentar desde el bus, desde una fuente de alimentación externa o desde ambos simultáneamente. La fuente de alimentación se puede cambiar en tiempo de ejecución mientras el USB está funcionando. El consumo máximo de corriente es conocido y no supera los 500 mA limitados por USB 2.0.

¿Debe un dispositivo de este tipo informar al host como autoalimentado o alimentado por bus?

Respuestas (2)

Si es capaz de ser alimentado por bus, entonces lo informaría como tal. El resultado final de la negociación de poder es un máximo que no puede exceder, pero que en realidad no tiene que usarlo. (La potencia máxima rara vez se aplica, pero de vez en cuando lo es).

Para hacer que su dispositivo sea un poco más inteligente, y si no le importa un poco de trabajo adicional, es posible que desee tener dos configuraciones, como mencionó Simon. La parte difícil sería determinar qué hacer si está en modo de autoalimentación y pierde la alimentación externa. No se le permiten más de 2 mA del bus sin dejar el bus y volver a enumerar (lo que puede no lograr darle más energía), y acaba de perder su suministro para realizar la función prevista. ¿Y ahora que?

Informaría dos configuraciones, una de ellas autoalimentada (implícito 2mA), la otra alimentada por bus (500mA). El dispositivo se negaría a ingresar a la configuración autoalimentada cuando la fuente de alimentación externa no está conectada.

Esto significa que si hay menos de 500 mA disponibles, por ejemplo, porque el dispositivo está conectado detrás de un concentrador alimentado por bus, el host eliminaría la configuración alimentada por bus e intentaría configurar la autoalimentada. Si el suministro externo está presente, esto tiene éxito; si falta, la configuración falla, como debería ser porque no hay suficiente energía.

Idealmente, pondría la configuración alimentada por bus primero; esta se convierte en la configuración preferida. Si el dispositivo está alimentado por bus y el suministro externo está conectado, está bien, no es necesario cambiar la configuración, y el suministro externo también se puede quitar más adelante sin problemas. Si la configuración autoalimentada está activa, es posible que el dispositivo no obtenga energía del bus, por lo que desconectar la fuente de alimentación requiere que apague el dispositivo y fuerce la reenumeración desconectando la resistencia de detección.