Me di cuenta de que tanto en Windows XP como en 7 (y en 2 computadoras diferentes respectivamente) pude lograr que la notificación "Este dispositivo puede funcionar más rápido si lo conectas a un puerto USB 2.0 de alta velocidad" aparece si conecto el cable muy lentamente (o lucha un poco haciéndolo con una sola mano). Si lo conecto lo suficientemente rápido o normalmente, con ambas manos, no hay notificación. En cualquier caso, todos estos dispositivos parecen funcionar normalmente.
Lo que creo que sucede es que el contacto entre los cables se interrumpe durante el tiempo suficiente durante una conexión lenta / torpe que el controlador USB cree que no es 2.0 sino más lento. ¿Pero por qué piensa eso? ¿O por qué no solo dice "Eres malo conectando cables, desenchufa e intenta nuevamente"?
Respuestas:
El mensaje se refiere a la negociación de una velocidad de datos antigua de velocidad máxima (FS) de 12 Mbit / s, en lugar de la velocidad de datos de alta velocidad (HS) que es de 480 Mbit / s. Debe ser realmente difícil obtener este efecto desde un puerto USB2. El protocolo USB2.0 HS se establece después de una negociación bastante complicada entre un dispositivo y un host, porque inicialmente todos los dispositivos HS actúan como un dispositivo FS.
El proceso normal es el siguiente:
El dispositivo con capacidad HS levanta la línea D + después de recibir la señal VBUS con una resistencia de 1-1.5kΩ a 3.3V. Justo como lo haría un dispositivo FS.
El puerto del host detecta el nivel D + = alto, y después de un retraso de rebote mínimo de 100 ms, el host establece el estado USB_RESET en el bus y conduce las líneas D + y D a tierra con controladores de 45Ω durante 10 o 50 ms.
Si el dispositivo es FS, no hace nada y espera hasta el final de USB_RESET.
Si el dispositivo es HS, conduciría D-high utilizando el controlador HS (fuente de 18 mA) durante aproximadamente 1 ms. Esto creará un pulso con una amplitud de aproximadamente 800mV (18ma en una carga de 45Ω) llamado "Chirp-K";
Al detectar el FIN de Chirp-K, si el host es capaz del modo HS, devuelve esta señal (la misma de 18 mA a su propia carga de 45 Ω), ahora por unos 50 µs. Si es un host FS, ignora el Chirp-K y procede como FS.
Luego, si el host es capaz del modo HS, cambia su unidad a cable D +, formando "Chirp-J", nuevamente por 50 µs;
El host repite este patrón alterno de 50 µs durante toda la duración del estado USB_RESET (10 ms en los puertos del concentrador, 50 ms en los puertos del concentrador raíz);
Después de tres chirp-K / J alternos, el dispositivo reconoce que el host es HS y cambia al modo HS. Esto implica encender la terminación HS en el extremo del dispositivo, lo que hace que la resistencia total del cable sea de 22Ω, y la amplitud de la señal chirp cae a 400mV, a un nivel de señalización HS estándar.
El host continúa con los paquetes de inicio de trama HS (SOF) e inicia el proceso de enumeración en modo HS.
Ahora nadie sabe qué parte del meneo rompió este protocolo e hizo que el host marcara el puerto como FS.
fuente
FS
es de "velocidad completa" (USB 1.0, 12 Mbit / s),HS
es de "alta velocidad" (USB 2.0, 480 Mbit / s) ySS
sería "SuperSpeed" (USB 3.0, 5 Gbit / s).Cuando conecta un dispositivo en un puerto USB2, la computadora primero intenta negociar una conexión utilizando el protocolo de datos USB2.
Cuando eso falla, vuelve a intentarlo utilizando el protocolo de datos USB1.
Mi mejor suposición es que la conexión física (debido a la agitación de los contactos) aún no es estable durante la negociación de USB2. Por lo tanto, vuelve a USB1, a pesar de que el dispositivo es un dispositivo USB2.
Curiosamente, Windows se da cuenta de que el dispositivo debe ser capaz de alcanzar la velocidad USB2 (información que obtiene del controlador), por lo que Windows concluye que el puerto USB al que lo conectó era un puerto USB1 lento. Windows no parece verificar si el puerto en sí es compatible con USB2.
Y es por eso que obtienes el mensaje de error algo engañoso.
PD: solo lo probé con una máquina con Windows 10: el mismo efecto allí.
fuente
Es posible que lo haya insertado lo suficientemente lento como para que Windows ya haya finalizado el proceso de saludo con el controlador y que en ese momento los contactos necesarios para la comunicación USB 2.0 no se estén tocando, lo que podría hacer que Windows confunda un dispositivo USB 2.0 como un 1.1 dispositivo ya que no habría respuesta en los rieles marcados como solo presentes en USB 2.0 y superiores.
fuente