Tutto sull'USB

Notizia

CasaCasa / Notizia / Tutto sull'USB

Dec 04, 2023

Tutto sull'USB

If you’ve been following along our USB-C saga, you know that the CC wire in the

Se hai seguito la nostra saga USB-C, sai che il filo CC nei cavi USB-C viene utilizzato per le comunicazioni e il rilevamento della polarità. Tuttavia, ciò che non è così noto è che esistono due protocolli utilizzati nell'USB-C per le comunicazioni: uno analogico e uno digitale. Oggi diamo un'occhiata alla segnalazione analogica utilizzata in USB-C e, in parte, scopriamo di più sui leggendari resistori da 5,1 kΩ e su come funzionano. Conosceremo anche gli emarker e l'entità misteriosa che è VCONN!

L'alimentatore USB-C prevede di rilevare un certo valore di pulldown sulla linea CC prima di fornire 5 V su VBUS e qualsiasi tensione più elevata deve essere negoziata digitalmente. L'alimentatore, che si tratti della porta del tuo laptop o di un caricabatterie, può rilevare il pulldown (noto come Rd) perché mantiene un pullup (noto come Rp) sulla linea CC - quindi controlla se si è formato un partitore di tensione su CC e se la tensione risultante rientra nell'intervallo accettabile.

Se colleghi un dispositivo che non rende accessibile un pulldown tramite il filo CC nel cavo, il dispositivo non riceverà mai alimentazione da una porta USB-C e funzionerà solo con un cavo da USB-A a USB-C. Anche i dispositivi più intelligenti in grado di comunicare con la parte digitale di USB-C dovrebbero avere pulldown, è solo che questi pulldown sono interni all'IC di comunicazione USB-C utilizzato. Una porta USB-C che desidera ricevere alimentazione deve avere un pulldown.

Questa parte è ormai ben nota, ma abbiamo riscontrato numerosi guasti dovuti alla mancanza di resistori in dispositivi economici e il consiglio colloquiale è "aggiungere resistori da 5,1 kΩ". Potresti avere paura di pensare che sia così semplice, ma rimarrai sorpreso.

Esistono due tipi di ruoli di alimentazione per le porte USB-C: lato fornitura e lato consumatore. Il lato analogico di USB-C consente ai progettisti di aggiungere un modo semplice per negoziare i requisiti di alimentazione quando si utilizza USB-C a 5 V, senza utilizzare circuiti integrati specifici o costosi, utilizzando pullup per le sorgenti e pulldown per i sink. La combinazione di pullup e pulldown forma un partitore di tensione e la tensione stessa rappresenta la capacità di corrente del caricabatterie.

Ora, in modalità di segnalazione analogica, la sorgente può regolare il pullup in base al budget di potenza a sua disposizione, e questo è abbastanza utile. Immagina un laptop o un caricabatterie con più porte USB-C. Man mano che ciascuna porta viene caricata, ci sarà meno corrente da fornire alle altre porte, il che è in gran parte definito dal modo in cui il dispositivo è costruito internamente. Prendiamo ad esempio il laptop Framework, che è dotato di quattro porte USB-C. Ciascuna porta può fornire 15 W a 5 V / 3 A, ma se si desidera alimentare contemporaneamente quattro dispositivi USB-C solo sink, sarà in grado di fornire solo 1,5 A sulla terza e quarta porta: una limitazione abbastanza ragionevole da una prospettiva ingegneristica.

Ciò significa che i dispositivi a consumo più elevato, come i dispositivi da 1,5 A e 3 A max, dovrebbero monitorare la tensione sulla linea CC per determinare se potrebbero superare il budget energetico regolando le loro richieste di energia o altrimenti spegnersi se il nuovo viene superato il limite di corrente stabilito.

Cosa significa questo per te come utente? Niente, se i tuoi dispositivi sono sufficientemente a basso consumo. Ci si aspetta che i tuoi dispositivi monitorino la tensione sulla linea CC e regolino il loro appetito di conseguenza. Alcuni dispositivi acquistati in negozio non lo fanno, ma è raro. Come hacker? Se costruisci un dispositivo che riceve alimentazione da una porta USB-C e miri a ottenere 3 A completi a 5 V, ricorda che non tutte le porte USB-C ti forniranno questo. È comunque possibile verificare la disponibilità di 3 A misurando la tensione sulla linea CC. Oppure no, non sono tua madre e molti dispositivi hacker prosperano senza alcun rilevamento.

Quali tensioni puoi aspettarti sulla linea CC? Bene, è il tipo di tensione che puoi leggere con un ADC di base del tuo microcontrollore, o anche con un comparatore.

Come puoi vedere, è tutto sotto i 3,3 V, quindi non avrai bisogno di un partitore di tensione se stai utilizzando un ADC con microcontrollore a oscillazione completa. Oh, e se hai una presa USB-C, ricordati di monitorare entrambi i pin CC separatamente, ovviamente.

Hai davvero bisogno di monitorare la tensione CC? Quando stai semplicemente hackerando qualcosa, non proprio, ma può essere d'aiuto se lo fai quando vuoi andare oltre 0,5 A - 1 A. Se superi le richieste attuali che la porta di origine può fornire, dovrebbe semplicemente smetti di fornire energia al tuo dispositivo: un risultato abbastanza sicuro. D'altra parte, la filosofia USB-C è quella di avere più livelli di protezione e, se stai costruendo un dispositivo da 15 W con il semplice approccio del resistore da 5,1 kΩ, potresti anche renderlo un dispositivo in grado di rilevarne la potenza. l'offerta è insufficiente. Inoltre, è abbastanza facile da fare!