Un chip per collegare USB 2
Su Twitter, [whitequark] ha trovato e messo in evidenza un design intrigante: una breakout board per il VL670, accompagnata da un articolo ampio ma molto facile da digerire sulla sua utilità e sul funzionamento interno. Il VL670 è un chip che risolve un problema sorprendente: convertire i segnali USB 2.0 in USB 3.0.
Se disponi di un dispositivo USB 2.0 e di un host con disponibili solo segnali USB 3.0, questo chip fa al caso tuo. Potrebbe essere sconcertante: perché è necessario? Si tratta dell'oscuro segreto poco conosciuto dell'USB3, che chiunque può dedurre se mai dovesse avere a che fare con un connettore USB 3.0 a 9 pin in cui una delle tre coppie differenziali non riesce a entrare in contatto.
Quando vedi una porta "3.0" blu, in realtà si tratta di USB 2 e USB 3: due interfacce separate unite in un unico connettore. USB 3 utilizza due coppie differenziali unidirezionali, simili a PCI-E, mentre USB 2 ne utilizza una singola bidirezionale e le due interfacce su un connettore blu funzionano sostanzialmente indipendentemente l'una dall'altra. Ci sono molte implicazioni in questo che sono controintuitive se si prende semplicemente "USB 3.0" per "USB più veloce compatibile con le versioni precedenti" e hanno conseguenze dolorose.
Ad esempio, i circuiti integrati hub USB 3 hanno due entità hub separate all'interno: una per USB 3 e una per USB 2. Anche se si dispone di un hub USB 3 collegato a una porta USB 3, più dispositivi USB 2 collegati non riescono comunque a sfondare il limite di uplink USB 2 di 480 MBps. Se hai mai pensato che un hub più veloce con un uplink più veloce avrebbe risolto i problemi di velocità del tuo dispositivo USB 2, gli ingegneri USB-IF, a quanto pare, la pensavano diversamente; e potresti dover trovare una soluzione alternativa per la tua configurazione "molti SDR economici e Pi 4 in una scatola".
Come divertente trucco per le feste, poiché l'enumerazione dei dispositivi USB 3 utilizza solo USB 2 come fallback, in teoria puoi collegare otto dispositivi a un hub USB 3 a quattro porte: quattro dispositivi USB 2 e quattro dispositivi USB 3. In effetti, alcuni dispositivi USB utilizzano esclusivamente le corsie USB 3 e non si collegano nemmeno alle corsie USB 2. Sì, questo implica anche che potresti essere in grado di connettere sei dispositivi USB a un Raspberry Pi 4 e anche sette se passi la porta OTG in modalità host.
Quindi, se ti trovi bloccato tra USB 2 e USB 3, il VL670 è una soluzione funzionale. Ma poiché affronta una carenza dello standard, non è del tutto conforme. (Non che la non conformità allo standard USB abbia mai fermato qualcuno.)
Esiste una scheda di sviluppo open source per la quale è possibile ordinare parti e costruire, con i chip VL670 apparentemente disponibili su TaoBao. A cosa era originariamente destinato questo chip? A quanto pare, VirtualLink, uno standard che molte persone sono felici di vedere morto. Tuttavia, l'ampio articolo di cui sopra parla di casi d'uso più facilmente identificabili: ad esempio, risulta che i segnali USB 3 sono più facili da isolare galvanicamente!
Abbiamo discusso di sfuggita le peculiarità di USB 3 vs USB 2, ma vale la pena stabilirne le implicazioni in modo più chiaro. Se ti sei mai chiesto quali siano gli altri aspetti loschi dell'USB, ti consigliamo di dare un'occhiata alla chat di hacking Hacking USB che abbiamo avuto con [Kate Temkin]!