Notei que no Windows XP e 7 (e em 2 computadores diferentes, respectivamente), eu conseguia obter a notificação "Este dispositivo pode ter um desempenho mais rápido se você o conectar a uma porta USB 2.0 de alta velocidade" para aparecer se eu conectar o cabo bem devagar (ou lute um pouco com apenas uma mão). Se eu conectá-lo com rapidez suficiente ou normalmente, com as duas mãos, não há notificação. Em ambos os casos, todos esses dispositivos parecem funcionar normalmente.
O que eu acho que acontece é que o contato entre os fios é interrompido por tempo suficiente durante a conexão lenta / desajeitada que o controlador USB acha que não é 2,0, mas mais lento. Mas por que isso acontece? Ou por que não diz apenas "Você é ruim em conectar cabos, desconecte e tente novamente"?
Respostas:
A mensagem refere-se à negociação de uma taxa de dados antiga de velocidade total (FS) de 12 Mbit / s, em vez da taxa de dados de alta velocidade (HS) que é de 480 Mbit / s. Deve ser realmente difícil obter esse efeito em uma porta USB2. O protocolo USB 2.0 HS é estabelecido após uma negociação bastante complicada entre um dispositivo e o host, porque inicialmente todos os dispositivos HS atuam como um dispositivo FS.
O processo normal é o seguinte:
O dispositivo compatível com HS puxa a linha D + após receber o sinal VBUS com um resistor de 1-1,5kΩ a 3,3V. Assim como um dispositivo FS faria.
A porta do host detecta o D + = alto e, após um atraso mínimo de 100ms, o host afirma o estado USB_RESET no barramento, levando as linhas D + e D- ao terra com drivers de 45Ω por 10 ou 50ms.
Se o dispositivo for FS, ele não fará nada e aguarda até o final do USB_RESET.
Se o dispositivo for HS, ele conduziria D-high usando o driver HS (fonte de 18mA) por cerca de 1ms. Isso criará um pulso com amplitude de cerca de 800mV (18ma em carga de 45Ω) chamado "Chirp-K";
Após a detecção do END do Chirp-K, se o host for capaz do modo HS, ele direciona esse sinal de volta (os mesmos 18mA para a própria carga de 45Ω), agora por cerca de 50µs. Se for um host do FS, ele ignora o Chirp-K e prossegue como FS.
Então, se o host é capaz do modo HS, ele muda sua unidade para o fio D +, formando "Chirp-J", novamente por 50µs;
O host repete esse padrão alternativo de 50µs por toda a duração do estado USB_RESET (10ms nas portas do hub, 50ms nas portas do hub raiz);
Após três chirp-K / J alternados, o dispositivo reconhece que o host é HS e alterna para o próprio modo HS. Isso implica ativar a terminação HS na extremidade do dispositivo, o que eleva a resistência total do fio a 22Ω e a amplitude do sinal de chirp cai para 400mV, para um nível de sinalização HS padrão.
O host continua com os pacotes de início de quadro do HS (SOF) e inicia o processo de enumeração no modo HS.
Agora, ninguém sabe qual parte da manobra quebrou esse protocolo e fez o host marcar a porta como FS.
fonte
FS
é "velocidade máxima" (USB 1.0, 12 Mbit / s),HS
é "alta velocidade" (USB 2.0, 480 Mbit / s) eSS
seria "SuperSpeed" (USB 3.0, 5 Gbit / s).Quando você conecta um dispositivo a uma porta USB2, o computador tenta negociar uma conexão usando o protocolo de dados USB2.
Quando isso falha, ele tenta novamente usando o protocolo de dados USB1.
Meu melhor palpite é que a conexão física (devido à oscilação dos contatos) ainda não está estável durante a negociação do USB2. Portanto, ele volta ao USB1, mesmo que o dispositivo seja USB2.
O engraçado é que o Windows percebe que o dispositivo deve ter velocidade USB2 (informações obtidas do driver) e, portanto, o Windows conclui que a porta USB na qual você o conectou era uma porta USB1 lenta. O Windows parece não verificar se a porta em si é compatível com USB2.
E é por isso que você recebe a mensagem de erro um tanto enganadora.
PS Apenas tentei eu mesmo com uma máquina Windows 10: O mesmo efeito lá.
fonte
Pode ser que você o tenha inserido lento o suficiente para que o Windows já termine o processo de agitação das mãos com o controlador e, naquele momento, os contatos necessários para a comunicação USB 2.0 não estivessem tocando. Isso pode levar o Windows a confundir um dispositivo USB 2.0 como 1.1 dispositivo, pois não haveria resposta nos trilhos marcados como presentes apenas no USB 2.0 ou superior.
fonte