¿El host USB siempre suministra alimentación a VBUS?

3

Sé bastante sobre USB, pero por alguna razón no puedo responder esta pregunta por mi cuenta.

¿El puerto de host USB (digamos, USB 2.0) siempre suministra 5 V en el pin VBUS? Si no, ¿cómo detecta la conexión del dispositivo?

Para el dispositivo (caja alimentada por bus) es fácil detectar el host detectando el pin VBUS, pero para que esto funcione, el host USB siempre debe proporcionar 5 V en el pin VBUS, lo que hace que yo haga esta pregunta.

Una cosa en la que puedo pensar es que puede proporcionar 5V, 100mA de forma predeterminada, y más solo después de una enumeración exitosa. Pero, por lo que he observado, los puertos USB de la computadora portátil tienen 5V VBUS habilitados de forma predeterminada y no están limitados a 100 mA, por lo que solo quiero entender desde el punto de vista estándar de USB.

Cualquier respuesta será muy apreciada.

    
pregunta LoveEnigma

2 respuestas

6

Un host USB clásico estándar siempre debe proporcionar VBUS (+ 5V + - 10%) a un puerto descendente, para que un dispositivo pueda iniciar la secuencia de conexión (pull D + o D- high). El puerto debe proporcionar al menos 500 mA (versión 2.0) o 900 mA (versión 3.0), independientemente de si existe alguna comunicación o archivo adjunto. Estos son "al menos" los requisitos para los "puertos de alta potencia" clásicos USB 2.0 y USB 3.0 y los concentradores con alimentación, por lo que pueden suministrar más si lo desean. Los requisitos se enumeran en la Sección 7.2 de Especificaciones USB 2.0. Las baterías pequeñas pueden tener una excepción.

  

NOTA 1: VBUS debe ser suministrado por el host incluso en modo "suspensión" (estado suspendido).

-

  

NOTA2: si un host no tiene un VBUS alto, no debería ocurrir ningún archivo adjunto, incluso si el dispositivo tiene su propia energía. Conectar peticiones (D + o D-   pull-ups) deben ocurrir solo si VBUS está presente, por USB 2.0   especificaciones sec.7.2.1. Por lo tanto, es una infracción de especificaciones solo para "tener" el   pull-ups, el pull-up debe ser condicional con VBUS.

-

  

NOTA 3: Por lo tanto, no VBUS = > sin comunicacion. Debido a esta regla, no es posible un modo "parcial" o "señalización de host" sin VBUS.

El 500 mA es un requisito para USB HOST . Este número de suministro se confunde con frecuencia con el requisito de un DISPOSITIVO USB como consumidor. Un dispositivo USB NO DEBE dibujar más de 100 mA en la etapa de conexión inicial, y puede obtener toda la energía solo cuando se enumera y recibe el comando "set_configuration ()". Los dispositivos USB informan sus requisitos de alimentación en el descriptor del dispositivo, durante esta sesión inicial "100mA". Si el host ha agotado su presupuesto de energía, puede detener la enumeración, rechazando efectivamente el dispositivo.

  

NOTA 4: como se puede ver, no hay "negociación", es "mi forma [host]" o "autopista".

-

  

NOTE5: los hosts USB no tienen medios específicos para controlar el poder real   Consumo desde sus puertos. Los controladores de host USB no tienen ningún   Registros que pueden medir / reportar el consumo de puertos. Por lo tanto, un host no puede hacer cumplir   El límite de 100 mA para controlar los dispositivos defectuosos que podrían violar los 100.   Especificación de mA, a menos que ocurra un evento drástico de sobrecorriente de puerto.   El cumplimiento con el límite de 100 mA se pensó a nivel de USB-IF.   proceso de certificación.

En resumen, los 500 mA y 100 mA son requisitos para diferentes entidades USB, una para hosts y hubs, y otra para dispositivos, nuevamente como se describe en la Sección 7.2.1. Así es como funciona desde el punto de vista estándar de USB.

Ahora las cosas son un poco diferentes con la introducción del conector Tipo-C. Los dispositivos tipo C (tanto de hosts como de periféricos) tienen prohibido emitir VBUS , inicialmente. Entonces, en lugar de tener audazmente VBUS encendido en un puerto Tipo-C, el host debe activar la fuente VBUS solo si la lógica del puerto detecta la presencia de cable / dispositivo. Lo hace detectando el nivel de voltaje en el pin "CC" (Canal de comunicación). Un host de tipo C tiene un pull-up en ambos pines CC. Un dispositivo (o conjunto de cable heredado) debe tener 5.1k desplegable. Cuando el dispositivo / cable está enchufado, el host detecta que 5.k arrastra su pull-up y, en este punto, el host tiene derechos para activar la alimentación VBUS, y comienza la comunicación USB.

    
respondido por el Ale..chenski
4

A menos que esté en algún modo de modo inactivo o de sobrecorriente, sí, un host USB ordinario (Classic 1.0 / 1.1 / 2.0) siempre suministrará energía a VBUS.

El host detecta los dispositivos USB porque tienen una resistencia de pull-up en una de las líneas de datos: D- para un dispositivo de baja velocidad y D+ para un dispositivo de velocidad completa (o un dispositivo de alta velocidad ; la alta velocidad se descubre en la señalización).

Si bien la especificación de USB prohíbe que los periféricos consuman más de 100 mA sin negociación, en la práctica muchos (la mayoría) de los hosts no hacen cumplir esto. Por lo general, tienen algún tipo de PTC o protección activa contra sobrecorriente que se activa en algún lugar por encima de los 500 mA (algunos, como los Raspberry pi originales tenían límites más bajos, y no pudieron obtener la corriente de especificaciones USB completa).

Algunos de los teléfonos inteligentes anteriores tenían una capacidad de host USB parcial no compatible, pudieron operar en el rol de señalización del host, pero no enviar VBUS a un periférico. La mayoría de los actuales tienen una bomba de carga para suministrar VBUS o no permiten la operación en modo host en absoluto.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas