Um chip para ligar o USB 2
No Twitter, [whitequark] encontrou e destacou um design intrigante – uma placa de acesso para o VL670, acompanhada por um artigo extenso, mas muito fácil de digerir, sobre sua utilidade e funcionamento interno. O VL670 é um chip que resolve um problema surpreendente – converter sinais USB 2.0 em USB 3.0.
Se você possui um dispositivo USB 2.0 e um host com apenas sinais USB 3.0 disponíveis, este chip é para você. Pode ser intrigante - por que isso é necessário? É sobre o segredo obscuro pouco conhecido do USB3, que qualquer um pode deduzir se tiver que lidar com um conector USB 3.0 de 9 pinos em que um dos três pares diferenciais não faz contato.
Quando você vê uma porta "3.0" azul, na verdade é USB 2 e USB 3 - duas interfaces separadas unidas em um único conector. O USB 3 usa dois pares diferenciais unidirecionais, semelhante ao PCI-E, enquanto o USB 2 usa um único bidirecional, e as duas interfaces em um conector azul operam basicamente independentemente uma da outra. Há muitas implicações nisso que são contra-intuitivas se você simplesmente considerar "USB 3.0" como "USB compatível com versões anteriores mais rápido", e elas têm consequências dolorosas.
Por exemplo, os CIs de hub USB 3 têm duas entidades de hub separadas - uma para USB 3 e outra para USB 2. Mesmo se você tiver um hub USB 3 conectado a uma porta USB 3, vários dispositivos USB 2 conectados a ele ainda não podem romper o limite de uplink USB 2 de 480 MBps. Se você já pensou que um hub mais rápido com um uplink mais rápido resolveria os problemas de velocidade do seu dispositivo USB 2 - os engenheiros do USB-IF, aparentemente, pensaram de forma diferente; e você pode ter que encontrar uma solução alternativa para sua configuração "muitos SDRs baratos e Pi 4 em uma caixa".
Como um truque divertido, como a enumeração de dispositivos USB 3 usa apenas USB 2 como fallback, você pode, em teoria, conectar oito dispositivos a um hub USB 3 de quatro portas - quatro dispositivos USB 2 e quatro dispositivos USB 3. Na verdade, alguns dispositivos USB usam exclusivamente faixas USB 3 e nem mesmo se conectam a faixas USB 2. Sim, isso também significa que você pode conectar seis dispositivos USB a um Raspberry Pi 4 e até sete se mudar a porta OTG para o modo host.
Portanto, se você estiver preso entre USB 2 e USB 3, o VL670 é uma solução funcional. Mas, como está tratando de uma deficiência no padrão, ele próprio não está totalmente em conformidade. (Não que a não conformidade com o padrão USB tenha impedido alguém.)
Existe uma placa de desenvolvimento de código aberto para a qual você pode solicitar peças e construir, com chips VL670 aparentemente disponíveis no TaoBao. Para que este chip foi originalmente planejado? Aparentemente, VirtualLink, um padrão que muitas pessoas se sentem felizes em ver morto. No entanto, o extenso artigo mencionado acima fala sobre casos de uso mais relacionáveis - por exemplo, verifica-se que os sinais USB 3 são mais fáceis de isolar galvanicamente!
Discutimos a peculiaridade do USB 3 versus USB 2 de passagem, mas vale a pena estabelecer suas implicações com mais clareza. Se você já se perguntou sobre outras partes obscuras do USB, você deve conferir o Hacking USB Hack Chat que tivemos com [Kate Temkin]!