banner
Centro notizie
Esperienza pluriennale insieme ad attrezzature all’avanguardia

Tutto sull'USB

Aug 31, 2023

Nei sei mesi trascorsi dalla pubblicazione dell'ultimo articolo sull'USB-C, ho pensato a una serie di modi in cui questi articoli avrebbero potuto essere migliorati. Naturalmente è normale provare una sensazione del genere, addirittura prevista. Ora credo che ci siano alcune lacune che potrei colmare. Ad esempio, non ho fornito abbastanza circuiti di esempio e talvolta uno schema può trasmettere le cose meglio di mille parole.

Risolviamolo! Ti fornirò gli schemi per i tipi di dispositivi USB-C che probabilmente vorrai costruire. Condividerò anche una serie di numeri di parte dei circuiti integrati in questo articolo, ma ovviamente non ho una raccolta esaustiva: se trovi circuiti integrati più interessanti che funzionano per scopi USB-C e non sono menzionati qui, per favore fallo fatecelo sapere tutti nei commenti!

Abbiamo visto il primo circuito di esempio nel primo articolo: una porta USB-C lato dispositivo ("rivolta verso monte") che supporta USB 2.0 e 5 V di alimentazione. È necessario disporre di resistori da 5,1 K, un resistore per pin, e ricordarsi di unire entrambi i pin dati: utilizzare i via se necessario. Se vuoi determinare la quantità di corrente a tua disposizione, puoi anche collegare ADC o comparatori a entrambi i pin CC insieme, anche se molto spesso il tuo dispositivo è sufficientemente a basso consumo da non avere motivo di preoccuparsi.

Ora, se vuoi realizzare un dispositivo con una presa USB-C, il cablaggio è lo stesso. L'unica differenza è che è necessario popolare solo uno dei pull-down CC e collegare una coppia di pin D+/D- invece di entrambe le coppie. In pratica non succede nulla di male se si collega la seconda coppia di pin USB 2.0, è semplicemente rozzo rispetto allo standard; era in conflitto con un certo tipo di porte e cavi (quelli VirtualLink) che non vengono più venduti.

Tuttavia, se colleghi pull-down da 5,1 K a entrambi i pin CC, creerai accidentalmente un accessorio per hacker: un adattatore in modalità debug, qualcosa che ti aiuterà a ottenere segnali extra da alcune porte USB-C. Ad esempio, sul laptop Framework, una scheda dotata di presa USB-C con entrambi i pull-down commuterà una porta USB-C in modalità debug ed esporrà la connessione EC UART sui pin SBU. A meno che non si stia realizzando un accessorio di debug di questo tipo, è necessario popolare solo uno dei menu a discesa e collegare di conseguenza i pin dati USB 2.0.

E se volessi creare una porta host? Da un lato è più semplice perché non devi necessariamente effettuare misurazioni ADC. Invece, aggiungi pull-up, valori diversi per diverse quantità di corrente disponibile. Non tutti i dispositivi controllano la presenza del pull-up, ma i telefoni lo fanno, quindi se stai realizzando un caricabatterie USB-C improvvisato, un telefono o un laptop potrebbero non riconoscerlo come un modo valido per caricare se non hai il pull-up. -UPS. Non costa molto neanche aggiungerli!

Ancora più importante, potresti voler controllare VBUS, accendendolo solo dopo aver rilevato un pulldown su uno dei pin CC. Non avrai necessariamente problemi se non lo fai, ma copre alcuni importanti casi limite, come qualcuno che collega un cavo da USB-A a USB-C nella tua porta!

Non ho mai realizzato questo circuito, ma per come lo vedo io, dovrebbe essere sufficiente utilizzare due FET, uno per pin CC, entrambi messi in parallelo. Questo circuito potrebbe presentare casi limite: miglioramenti benvenuti! D'altro canto, ho utilizzato alcune volte i breakout delle porte USB-C dotati di pull-down come porte host, quindi non è sicuramente un requisito difficile e non è sempre necessario suddividere la raccolta FET.

In totale, ci sono due cose che vuoi fare se stai costruendo una porta host e nessuna delle due è necessaria. Inoltre, se desideri diventare più complesso con i circuiti, o magari anche realizzare una porta con doppio ruolo, ci sono circuiti integrati che ti aiutano con questa parte di USB-C!

Ad esempio, prendi il WUSB3801. Si occupa del rilevamento sia della sorgente che del sink, dispone di tutti i pull-own e pull-up necessari al suo interno e può anche eseguire porte a doppio ruolo, il che consente di costruire qualsiasi tipo di porta di alimentazione da 5 V. Può emettere lo stato della porta con pochi GPIO oppure puoi collegarlo al tuo microcontrollore tramite I2C e ha anche un pin ID in modo da poterlo utilizzare per sostituire completamente una porta MicroUSB con una USB-C! Il WUSB3801 è abbastanza piccolo, abbastanza saldabile e anche abbastanza versatile. Ad esempio, sul server Discord di Hackaday, qualcuno ha creato un circuito WUSB3801 che limita la corrente di un caricabatterie agli ioni di litio in base al fatto che la porta USB-C collegata possa fornire o meno 3 amp.