In un blog precedente, ho discusso alcuni dei punti fondamentali nella preparazione delle regole di routing per PCB a 2 strati per supportare il routing e il layout con segnali digitali. In particolare, abbiamo esaminato alcune delle regole di stackup e di routing necessarie per supportare un'interfaccia digitale come I2C o SPI su un PCB a 2 strati. Quando si lavora con queste interfacce, alcune semplici linee guida possono aiutare a garantire l'integrità del segnale sulla tua scheda e ridurre le EMI.
Che dire di un'interfaccia controllata dall'impedenza come USB? La necessità di controllo dell'impedenza, e sapere quando può essere violata, è il punto principale per il routing di qualcosa come USB su un PCB a 2 strati. In questo articolo, mostrerò come dovresti instradare un protocollo ad alta velocità come USB. In particolare, esamineremo le importanti regole di progettazione necessarie per il routing della scheda, in particolare la limitazione della lunghezza che potremmo accettare per le tracce che trasportano dati USB. Se non hai ancora letto l'articolo precedente di questa serie, dacci un'occhiata poiché pone alcune delle basi concettuali necessarie per comprendere i limiti che vengono imposti sui requisiti di routing USB.
Nell'articolo precedente sulla realizzazione di percorsi su PCB a 2 strati, abbiamo esaminato una procedura per determinare la lunghezza massima possibile di una linea che si potrebbe utilizzare nel proprio progetto senza la necessità di applicare l'adattamento dell'impedenza. Abbiamo scoperto che il limite di lunghezza dipende dal livello di deviazione dell'impedenza in ingresso che si può tollerare lungo la lunghezza della linea di trasmissione. In particolare, a seconda che si consideri il 10% al 25% della distanza di viaggio del segnale come fattore importante per limitare la lunghezza della traccia.
Per questa dimostrazione, voglio esaminare il routing USB 2.0 su questa scheda secondo lo standard High Speed, e mi sto concentrando su questo standard per un motivo specifico. L'USB 2.0 (High Speed) è ancora utilizzato in alcuni sistemi poiché offre connettività con dispositivi più vecchi insieme a un rapido tasso di trasferimento dati, ed è ancora utilizzato su piattaforme popolari come Arduino con un connettore di tipo B.
Giusto per illustrare due possibili progetti, ho confrontato il tasso di trasmissione dati e il tempo di salita di due specifiche USB 2.0 (Full Speed e High Speed):
|
|
|
|
|
|
Il processo che mostrerò di seguito viene eseguito per i segnali USB 2.0 con il tempo di salita e lo skew ad Alta Velocità, ma potresti applicare lo stesso processo all'USB 3.0 o a qualsiasi altra interfaccia ad alta velocità. Ricorda solo: il routing su una scheda a 2 strati non è appropriato per ogni interfaccia. Ad esempio, non conosco nessuno che raccomanderebbe il routing DDR4 su una scheda a 2 strati a causa dei limiti di lunghezza ridotti e del rumore irradiato da questi segnali veloci.
Prima di tutto, vorremmo conoscere la lunghezza critica per un segnale USB che viene instradato su un tipico PCB a 2 strati. Per un nucleo di materiale FR4 con Dk = 4.8, avremmo un ritardo di propagazione di circa 150 ps/pollice, o circa 6 pollici/ns. Con il nostro tempo di salita di 500 ps per la specifica ad Alta Velocità, ciò dà una distanza di propagazione del segnale di 3 pollici durante il tempo di salita. Se siamo molto conservatori e usiamo un limite del 10% sulla lunghezza critica, ciò dà una lunghezza critica di 0,3 pollici!
La topologia che dobbiamo instradare qui è semplicemente una linea seriale con coppie differenziali. Quindi hai tre elementi:
Potresti chiederti, come viene fatto su una piattaforma come Arduino? Dai un'occhiata all'immagine qui sotto di un Arduino Mega che puoi acquistare su Amazon. Il controller USB è posizionato vicino al connettore ed è sicuramente entro 1 pollice.
Troverai un posizionamento e un instradamento simili su altre schede Arduino. Per evitare una mancata corrispondenza dell'impedenza di ingresso con il connettore, il cavo e il ricevitore, vorremmo seguire il consiglio mostrato sopra e mantenere il percorso corto sul nostro PCB a 2 strati. Tuttavia, non dobbiamo essere così conservativi da applicare un limite del 10%. Invece, se andiamo con un limite del 25%, avremo una distanza di instradamento molto più confortevole di 0,75 pollici, che è molto più gestibile su un PCB a 2 strati.
Nota che questo è per la specifica ad Alta Velocità. Sotto la specifica a Velocità Piena, abbiamo una lunghezza critica più rilassata di 2,4 pollici (limite del 10%) o 6 pollici (limite del 25%) per un tempo di salita di 4 ns.
Una cosa importante da notare è questa: non esiste un limite fisso (10%, 25% o altro) in cui abbiamo una lunghezza critica valida, e a seconda delle dimensioni del tuo PCB, potresti essere oltre la lunghezza critica e ora necessitare di progettare per l'impedenza corretta. Il limite dipende da diversi fattori, e determinare la percentuale giusta per la tua lunghezza critica richiede comunque il calcolo di molteplici valori di impedenza. Piuttosto che sviluppare una regola basata su questa lunghezza critica, è sempre più facile progettare direttamente per l'impedenza USB richiesta.
Successivamente, dobbiamo considerare come viene terminato l'output del driver. Dato che stiamo parlando specificamente di USB, nota che la specifica USB 2.0 richiede alcune resistenze di terminazione sulle linee D+ e D- vicino al connettore per abbinare le impedenze. Queste potrebbero essere integrate nel trasmettitore USB sul die, oppure potrebbero essere necessarie come componente esterno. I valori tipici sono 15 Ohm, 22 Ohm o 45 Ohm, anche se potrebbero essere utilizzati altri valori; assicurati di controllare il datasheet del tuo componente per vedere quale terminazione è necessaria. Solo come esempio, il TUSB2077APTR USB Hub controller utilizza resistenze di terminazione da 27 Ohm. Assicurati di controllare il datasheet per verificare se hai bisogno di queste resistenze esterne.
Con un limite di skew di 100 ps nello standard ad Alta Velocità, possiamo ora calcolare la differenza di lunghezza consentita tra i due lati della coppia differenziale (i segnali D+ e D-). Prendendo la stima approssimativa del ritardo di propagazione di 6 ns/pollice per il routing sullo strato superficiale e moltiplicandola per il limite di skew, otteniamo una differenza di lunghezza della traccia di 0,6 pollici (600 mil). Questo è molto grande! Abbiamo molta libertà per permettere un certo abbinamento della lunghezza delle tracce. Tuttavia, c'è un punto importante qui: questo include l'intera lunghezza dell'interconnessione (la tua scheda + cavo + scheda ricevente). Pertanto, solo per essere sicuri, fai del tuo meglio per limitare lo skew il più possibile instradando le coppie insieme e imponendo un po' di abbinamento della lunghezza dove possibile. Questo è abbastanza facile perché i chip del controller USB posizioneranno generalmente i segnali D+ e D- sullo stesso bordo del chip.
Quando la differenza di lunghezza è breve, potrebbe non essere necessario implementare l'accordatura della lunghezza poiché occupa spazio nel layout del PCB. Solo per vedere cosa faranno altri sistemi funzionali, guarda l'immagine del layout del PCB di Arduino UNO mostrata di seguito (nota: è stata convertita da file Eagle). Le linee USB sono state evidenziate nell'immagine. Se misuriamo le lunghezze dei lati positivo e negativo di queste linee (coprendo ciascun lato delle resistenze di terminazione), troviamo che la differenza di lunghezza è di circa 180 mils. Questo è il motivo per cui queste linee non sono state accordate in lunghezza tra l'Arduino e il connettore USB.
In questo spazio ristretto, l'interfaccia funzionerà comunque correttamente perché la differenza di lunghezze è solo di circa 180 mils, che è molto inferiore alla tolleranza di skew. Anche con l'effetto peggiore della trama delle fibre su un laminato di vetro a tessitura larga, lo skew totale (in termini di lunghezza) sarebbe solo equivalente a meno di circa 230 mils, ancora molto inferiore alla tolleranza di skew per questa interfaccia.
Come ho sottolineato nel blog precedente, non è possibile utilizzare la larghezza della traccia corrispondente all'impedenza caratteristica in High Speed USB 2.0 e soddisfare comunque la specifica di impedenza. Ricorda, la larghezza della traccia su un PCB di spessore standard con due strati era di circa 110 mils per Dk - 4.8. Come possiamo possibilmente rispettare la specifica di impedenza del paio differenziale in USB 2.0 ad alta velocità con quella larghezza della traccia?
In realtà, non abbiamo bisogno di usare quella larghezza della traccia a causa del modo in cui le tracce nei paia differenziali si accoppieranno l'una all'altra. Se usi il tuo calcolatore di impilamento dei layer con un PCB a 2 strati spesso per calcolare l'impedenza differenziale per microstrisce, scoprirai che la larghezza della traccia effettiva necessaria è molto più piccola ed è una funzione della spaziatura. Per le nostre linee microstrip di esempio su un PCB a 2 strati, il Layer Stack Manager in Altium Designer ci dice che la larghezza della traccia è di circa 16 mils per una spaziatura di 5 mils.
Potresti utilizzare tracce più sottili con questi microstrip differenziali, ma dovresti usare uno spazio più piccolo. In questo progetto, siamo vicini al limite delle distanze tra traccia e traccia per l'incisione, quindi mantenere una distanza di 5 mil tra le tracce va bene poiché stiamo rispettando sia la specifica per segnali singoli sia quella differenziale con queste larghezze di traccia. Come facciamo a sapere che stiamo rispettando la parte della specifica per segnali singoli? Questo perché: la larghezza della traccia data sopra è per l'impedenza in modo dispari di una singola traccia, non l'impedenza caratteristica! Ecco perché devi attenerti a questo particolare valore per la larghezza della traccia e non usare il valore dell'impedenza caratteristica per un microstrip singolo in isolamento.
C'è un'alternativa di cui non abbiamo discusso: l'uso di coppie microstrip differenziali coplanari. Facendo scorrere il piano di massa fino ai microstrip sullo strato superficiale, e posizionando il piano di massa sotto i segnali sullo strato inferiore, puoi ottenere un'impedenza differenziale di 90 Ohm con tracce larghe 9,5 mil, uno spazio tra le tracce di 5 mil e uno spazio fino al terra di 5 mil. Possiamo vedere dai valori sottostanti che raggiungiamo piacevolmente l'impedenza richiesta di 90 Ohm nella specifica USB 2.0 con questi valori.
Con questo arrangiamento, non dovremo preoccuparci tanto del problema della lunghezza critica e del problema della larghezza della traccia in un circuito a 2 strati. Tuttavia, è necessario notare che questa larghezza e spaziatura devono essere mantenute per tutta la lunghezza del percorso. Il routing USB tratta le tracce come tracce singole separate che si trovano a trasportare un segnale differenziale, quindi potresti instradarle separatamente.
La topologia di routing è piuttosto semplice: instradare dal chip USB ai resistori di terminazione/pull-up/pull-down, e poi al connettore, tutto come coppie differenziali. L'immagine qui sotto mostra la topologia di routing ad alto livello con resistori di pull-up e pull-down. Sono richiesti anche alcuni condensatori sotto lo standard USB 2.0 come mostrato di seguito.
Il routing è piuttosto semplice: rispetta le pratiche standard di routing per coppie differenziali passando tra ogni parte del sistema e non avrai problemi con la registrazione del segnale o l'adattamento dell'impedenza. Mantieni percorsi brevi con collegamenti diretti che partono dalle linee della coppia differenziale per effettuare connessioni a GND/VCC per le resistenze di pull-down e pull-up. Assicurati di controllare il circuito di applicazione per il tuo dispositivo nei tuoi datasheet poiché le linee D+/D- potrebbero avere ulteriori condensatori esterni sul dispositivo; vedrai questo sul dispositivo TUSB2077A che ho citato sopra.
Mostreremo un esempio reale nel layout del PCB in un prossimo blog. Per ora, prova a farlo tu stesso e vedi se riesci a realizzare il routing.
In questo blog e nel nostro post del blog precedente, abbiamo esaminato alcune delle regole di routing importanti da seguire quando si configura e si effettua il routing di un'interfaccia ad alta velocità come l'USB su un PCB a 2 strati. Ecco le nostre linee guida finali per il routing:
Le linee guida per il routing mostrate qui non garantiranno sempre la compatibilità elettromagnetica, ci sono altri aspetti del progetto da considerare, che a volte sono realizzati in modo scadente nei PCB a 2 strati. Tuttavia, queste linee guida aiuteranno certamente con l'EMI se stai lavorando con la specifica Full Speed. La mia preferenza personale è di usare un PCB a 4 strati per bus digitali seriali e protocolli ad alta velocità, in particolare se la scheda è più grande o se deve andare in produzione in volumi.
Se stai utilizzando USB 3.0, allora hai requisiti rigorosi sulla corrispondenza delle lunghezze a causa dei rapidi tassi di transizione, e dovresti posizionare l'interfaccia vicino al connettore come abbiamo fatto con la specifica Full Speed elencata sopra.
Quando devi tracciare un'interfaccia come l'USB su un PCB a 2 strati o su una scheda multistrato più avanzata, utilizza gli strumenti di layout e tracciamento PCB in CircuitMaker. Tutti gli utenti di CircuitMaker possono creare schemi, layout PCB e documentazione di produzione necessari per trasformare un'idea in un prodotto. Gli utenti hanno anche accesso a uno spazio personale sulla piattaforma Altium 365™, dove possono caricare e memorizzare i dati di progettazione nel cloud, e visualizzare facilmente i progetti tramite un browser web in una piattaforma sicura.
Inizia a usare CircuitMaker oggi e resta sintonizzato per il nuovo CircuitMaker Pro di Altium.