Tutto su USB-C: circuiti di esempio

Tutto su USB-C: circuiti di esempio

Nodo di origine: 2808350

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.

Il rovescio della medaglia è altrettanto facile

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!

P-FET a livello logico massimo 12 V 4 A – IRLML6401/CJ2305/ecc, ripetere questo circuito due volte

Ancora più importante, potresti voler controllare VBUS, accendendolo solo dopo aver rilevato un pulldown su uno dei pin CC. Se non lo fai non avrai necessariamente problemi, 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 le porte USB-C dotate 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!

Per 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 costruito 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.

Sia che tu voglia costruire una porta source, una porta sink o anche una porta che possa fare entrambe le cose, il WUSB301 (o uno qualsiasi dei tanti circuiti integrati simili come TUSB320), sarà la soluzione del giorno. Una lamentela che ho nei confronti del WUSB3801 è che non fornisce un GPIO per determinare la polarità della porta attualmente collegata: per questo è necessario utilizzare l'interfaccia I2C. Ora, perché dovresti conoscere la polarità della porta? Il motivo sono le interfacce ad alta velocità e l'interfaccia USB 3.0 è sicuramente un pilastro dell'USB-C, se non altro per la sua facilità di implementazione.

Alta velocità, prezzo basso

Costruire un dispositivo USB 3.0 con una presa USB-C è facile quanto costruire un dispositivo USB 2.0 con una presa USB-C. USB 3.0 ha due coppie di differenze ad alta velocità aggiunte e un connettore USB-C ha punti per quattro coppie di differenze. Con la spina, colleghi il tuo USB 3.0 SSRX a USB-C RX1, USB 3.0 SSTX a USB-C TX1, apri un pull-down su CC1 e il gioco è fatto. Non sono presenti componenti aggiuntivi oltre ai condensatori in serie di cui il collegamento USB 3.0 potrebbe aver bisogno e questi non saranno diversi da un'implementazione regolare.

Ora, questo è il motivo per cui vedrai molte unità flash USB adottare una presa USB-C: è facilissimo aggiungerne una, non è necessario individuare i pin CC, aggiungere componenti aggiuntivi o simili. Voi do Tuttavia, è necessario aggiungere componenti aggiuntivi se si intende aggiungere una presa USB-C con supporto USB 3.0. Immagina di collegare la tua chiavetta USB 3.0 USB-C a una presa USB-C, a seconda del modo in cui la ruoti, i pin finiranno in una delle due posizioni. Non vuoi unire insieme i pin TX/RX della presa, ciò rappresenterebbe un grave problema di integrità del segnale, quindi se stai aggiungendo una presa USB-C con supporto USB 3.0, hai bisogno di un mux per gestire l'alta velocità rotazione del segnale.

Questi sono, ormai, un tipo provato e vero di chip USB-C: li troverai da almeno una dozzina di produttori diversi; se trovi alcuni circuiti integrati che hanno lo stesso pinout, sarà difficile per te ottenere una carenza di chip. Alcuni mux avranno un ingresso POL, per commutare manualmente il segnale USB 3.0 in due possibili posizioni: questi sono pensati per essere utilizzati insieme al proprio controller PD, vale a dire un chip che gestisce i pin CC. Scoprirai che molti mux contengono anche logica CC e sostanzialmente ti forniranno una soluzione completa per USB-C compatibile con 5 V e USB 3.0. Se stai costruendo un host, potresti dover aggiungere solo la gestione VBUS e se stai costruendo un dispositivo con una presa USB-C, non ti serve nient'altro!

Un tale mux è il modo in cui funzionano molte porte USB-C economiche sui laptop: forniscono solo USB 2.0, nient'altro e, data la facilità di implementazione, è logico che molti produttori di laptop economici si siano attenuti a questo. Inoltre, potresti anche omettere il mux se lo desideri se hai una porta USB 3.0 di riserva. L'abbiamo visto fare su schede madri desktop e, stranamente, è così come sono cablate entrambe le porte USB-C su MNT Pocket Reform, pure! È logico, l'hub USB 3.0 integrato della scheda Pocket Reform ha quattro porte libere, ma ci sono solo due porte USB-C su cui puoi esporre USB 3.0. Funziona abbastanza bene e se qualcuno vuole accedere a queste due porte USB 3.0 extra, deve solo progettare un adattatore passivo!

Una di queste due porte USB-C sul Pocket Reform è speciale, non si limita a collegare il binario da 5 V a VBUS come fa la prima porta. Ha invece un IC di interruttore di alimentazione collegato a VBUS e un FUSB302B collegato ai pin CC. Questa è la porta del caricabatterie di Pocket Reform e, in effetti, questo è uno dei modi in cui puoi far funzionare l'erogazione di energia.

Ottieni volt e pixel

Tutte le opzioni di cui abbiamo parlato supportano già fino a 15 W di potenza, in particolare 5 V a 3 A. Naturalmente sono supportate anche tensioni più elevate. Devi solo parlare PD o, forse, lasciare che un chip amichevole parli per te.

Questi chip amichevoli, come puoi immaginare, sono circuiti integrati di trigger PD. Li colleghi ai pin CC e negoziano un profilo di potenza per tuo conto. Hanno alcuni ingressi che ti consentono di impostare la tensione desiderata e, facoltativamente, un'uscita driver FET per disconnettere VBUS se l'alimentatore non è in grado di fornire la tensione necessaria, assicurandoti di non ottenere i 5 V predefiniti su una barra di alimentazione dove sono necessari 20 V.

Potremmo parlare molto dei chip trigger, molte altre persone lo fanno, e sicuramente l'ho fatto anch'io. In effetti, è l'opzione che le persone scelgono in stragrande maggioranza quando hanno bisogno di alta tensione da una porta USB-C. Sono perfetti per la maggior parte dei casi d'uso e è probabile che tu voglia prenderne uno. Tuttavia, attenzione, il loro comportamento è inflessibile: non ti permettono di realizzare una porta con doppio ruolo, e non ti permettono di distinguere tra un alimentatore USB-C da 30 W e uno da 100 W, il che aiuta quando " stai guidando un carico resistivo. Inoltre, non puoi combinarli con USB 3.0 o DisplayPort poiché non hanno un'uscita di polarità e non ti consentono di inviare messaggi personalizzati.

Un controller PD ti consentirà di fare molto di più! Sia che utilizzi un controller PD esterno come FUSB302B o magari un controller PD integrato nel tuo MCU, ti consentirà di prendere le tue decisioni sulla comunicazione PD. Ha tutti i resistori che potresti desiderare e probabilmente troverai un codice di esempio per qualsiasi attività tu debba svolgere. Abbiamo già eseguito la creazione di messaggi PD personalizzati, sia per l'alimentazione che per il funzionamento del sink DisplayPort. Prima o poi costruiremo anche il nostro alimentatore USB-C con un FUSB302B, quindi rimanete sintonizzati! Quando si tratta di MCU, ci sono alcuni noti microcontrollori STM32 e Cypress con periferiche PD e, recentemente, il CH32X035 è entrato in scena.

Il tuo controller PD ti consentirà anche di inviare messaggi DisplayPort, estraendo un output DisplayPort da qualsiasi porta compatibile o magari offrendo DisplayPort per conto tuo. Usa una presa USB-C e non avrai bisogno di un mux, oppure usa una presa e aggiungi un mux compatibile con DisplayPort: ti consentirà di estrarre DisplayPort a due corsie e USB 3.0 contemporaneamente o DisplayPort a quattro corsie, a seconda di quale potresti desiderare . Oppure puoi utilizzare un socket DisplayPort, omettere il mux e far funzionare la porta solo in un orientamento: questo Venditore cinese di successo di eDP può confermare!

La prossima volta esamineremo il funzionamento interno di un alimentatore USB-C, quindi convertiremo un alimentatore da 20 V in una sorgente USB-C con supporto 20 V; avremo solo bisogno del FUSB302, di alcuni FET e di un regolatore da 5 V di riserva. Non ci vorrà molto da parte nostra, sarai in grado di convertire i tuoi vecchi alimentatori in un laptop USB-C e otterrai anche alcune informazioni su come funziona un alimentatore USB-C!

Timestamp:

Di più da Hackera un giorno