Resistori di terminazione: sono necessari?


20

Per un progetto che sto progettando, sto usando una SDRAM IS42s32800 (TSOP) con un microcontrollore LPC1788 (QFP). Sul PCB ho 4 strati con un piano di massa proprio sotto lo strato di segnale superiore e un piano VDD proprio sopra lo strato di segnale inferiore. Le tracce medie tra la CPU e la RAM sono lunghe 60 mm con la traccia più lunga di 97 mm, la linea di clock 53 mm di lunghezza e nessuna linea ha resistori di terminazione montati. Ciò di cui sono curioso è se è assolutamente necessario o meno avere resistori di terminazione su linee DRAM. Questo design funzionerebbe senza di loro o non dovrei nemmeno preoccuparmi di provarlo senza i resistori?


Cosa dice la scheda tecnica?
Matt Young,


Risposte:


32

Se la frequenza / il tempo di salita e la distanza sono abbastanza alti da causare problemi, allora sì, è necessario terminare.

Modello di linea di trasmissione

Alla traccia più lunga di 97 mm penso che probabilmente ti allontanerai senza di loro (dati i risultati dei calcoli di seguito) Se hai un pacchetto PCB che gestisce modelli IBIS e simulazione a livello di scheda (ad esempio Altium e altri pacchetti costosi), simula il tuo setup e giudica se ne hai bisogno dai risultati.

Se non si dispone di questa funzionalità, è possibile eseguire alcuni calcoli approssimativi con SPICE.
Ho avuto un po 'di confusione con LTSpice , ecco i risultati (sentiti libero di correggere le cose se qualcuno vede un errore)

Se assumiamo:

  • Il tempo di salita del segnale di ingresso RAM è di circa 2 ns
  • Il PCB è FR4 con Er o ~ 4.1
  • Lo spessore del rame del PCB è 1oz = 0,035 mm
  • Altezza della traccia sul piano del suolo = 0,8 mm
  • Larghezza della traccia = 0,2 mm
  • Lunghezza della traccia = 97mm
  • L'input di dati RAM è 10kΩ in parallelo con 5pF (capacità dal foglio dati, resistenza scelta per un tipico ingresso LVTTL poiché non viene fornito nulla - il foglio dati è piuttosto cattivo, ad esempio la corrente di dispersione a p.21 è data come 10A !?)
  • L'impedenza del driver è 100 Ω (presa dall'output della scheda valori alti / bassi e corrente -> Vh = Vdd - 0,4 @ 4 mA, quindi 0,4 V / 4 mA = 100 Ω)

Usando wCalc (uno strumento di calcolatrice della linea di trasmissione) impostato sulla modalità microstrip e digitando i numeri, otteniamo:

  • Zo = 177.6Ω
  • L = 642,9 pH / mm
  • C = 0,0465 pF / mm
  • R = 34,46 mΩ / mm
  • Ritardo = 530,4 ps

Ora se inseriamo questi valori in LTSpice usando l'elemento di linea di trasmissione con perdita e simuliamo otteniamo:

stripline

Ecco la simulazione del circuito sopra:

Stripline Sim Zdrv = 100 ohm

Da questo risultato, possiamo vedere con un'impedenza di uscita di 100 Ω che non dovremmo aspettarci alcun problema.

Solo per interesse, supponiamo che avessimo un driver con un'impedenza di uscita di 20 Ω, il risultato sarebbe abbastanza diverso (anche a 50 Ω ci sono 0,7 V di over / undershoot. Si noti che ciò è in parte dovuto alla capacità di ingresso 5pF che causa il suono, il superamento a 2 ns sarebbe inferiore senza capacità [~ 3,7 V], così come Kortuk sottolinea anche i parametri di grumo anche se non trattati come una TLine - vedi fine):

Stripline Sim Zdrv = 20 ohm

Una regola empirica è se il tempo di ritardo (tempo di trasmissione del segnale dal conducente all'ingresso) è superiore a 1/6 del tempo di risposta, quindi dobbiamo considerare la traccia come una linea di trasmissione (si noti che alcuni dicono 1/8, alcuni diciamo 1/10, che sono più conservativi) Con un ritardo di 0,525 ns e un tempo di salita di 2 n che dà 2 / 0,525 = 3,8 (<6) dobbiamo trattarlo come una TLine. Se aumentiamo il tempo di salita a 4ns -> 4 / 0,525 = 7,61 e ripetiamo la stessa simulazione da 20 Ω otteniamo:

Stripline Zdrv = 20 ohm Tr = 4ns

Possiamo vedere che lo squillo è molto meno, quindi probabilmente non è necessario intraprendere alcuna azione.

Quindi, per rispondere alla domanda, supponendo che io sia vicino ai parametri, è improbabile che lasciarli fuori ti causi problemi - specialmente da quando ho scelto un tempo di salita / discesa di 2 ns, che è più veloce del foglio dati LPC1788 (p.88 Tr min = 3 ns, Tfall min = 2,5 ns)
A dire il vero , mettere un resistore serie 50 Ω su ogni linea probabilmente non farebbe male.

Modello a grumi

Come notato sopra, anche se la linea non è una linea di trasmissione, possiamo ancora avere degli squilli causati dai parametri raggruppati. La traccia L e il ricevitore C possono causare molti squilli se la Q è abbastanza alta.
Una regola empirica è che in risposta a un input graduale perfetto , una Q di 0,5 o inferiore non squillerà, una Q di 1 avrà un superamento del 16% e una Q di 2 44% superamento.
In pratica nessun input di step è perfetto, ma se lo step del segnale ha un'energia significativa al di sopra della frequenza di risonanza LC allora ci sarà lo squillo.

Quindi, per il nostro esempio di impedenza del driver di 20 Ω, se trattiamo semplicemente la linea come un circuito in blocco, la Q sarà:

Q=LCRS=62.36nH9.511pF20Ω=4.05

(La capacità è di 5pF capacità di ingresso + capacità di linea - resistenza di linea ignorata)

La risposta a un input passo perfetto sarà:

VoverShoot=3.3Ve-π(4Q2)-1=2.23V

Quindi il picco di superamento del caso peggiore sarà 3,3 V + 2,23 V = ~ 5,5 V.

Per un tempo di salita di 2 ns, dobbiamo calcolare la frequenza di risonanza LC e l'energia spettrale al di sopra di questa a causa del tempo di attesa:

Frequenza di squillo = 1 / (2PI * sqrt (LC)) = 1 / (2PI * sqrt (62.36nH * 9.511pF)) = 206MHz

12πLC=12π62.36nH9.511pF

Una durata di 2 ns ha un'energia significativa al di sotto della frequenza "al ginocchio" (regola empirica), che è:

0,5 / Tr = 0,5 / 2 ns = 250 MHz, che è al di sopra della frequenza di squillo calcolata sopra.

Con una frequenza del ginocchio esattamente della frequenza di squillo, il superamento sarà circa la metà di quello dell'input del passo perfetto, quindi a ~ 1,2 volte la frequenza del ginocchio probabilmente stiamo guardando circa 0,7 della risposta del passo perfetta:

Quindi 0,7 * 2,23 V = ~ 1,6 V

Picco di superamento stimato con 2 ns di tempo di recupero = 3,3 V + 1,6 V = 4,9 V

LC0.5
Con la resistenza del driver da 100 Ω dall'alto, ciò significherebbe un resistore serie 60 Ω (quindi "l'aggiunta di un resistore serie 50 Ω non danneggerebbe" sopra)

simulazioni:

Lumped

Simulazione passo perfetto:

Grasso Step Response

Simulazione Risetime 2 ns:

Risetime 2ns ammucchiato

Soluzione (con resistore serie 100 Ω Rdrv + 60 Ω = 160 Ω R1 totale aggiunto):

Soluzione ammassata criticamente smorzata

Possiamo vedere che l'aggiunta del resistore da 160 Ω produce una risposta di smorzamento di 0 V atteso dalla critica.

I calcoli di cui sopra si basano su regole empiriche e non sono del tutto esatti, ma dovrebbero avvicinarsi abbastanza nella maggior parte dei casi. L'eccellente libro "Design digitale ad alta velocità" di Jonhson e Graham è un riferimento eccellente per questo tipo di calcoli e molto altro (leggi il capitolo di esempio NEWCO per simili al precedente, ma meglio - gran parte di quanto sopra si basava sulla conoscenza di questo libro)


@OliGlaser, in generale, nel mondo reale, misuriamo L e C di una microstriscia (per un sistema a blocchi) o semplicemente calcoliamo per ottenere un'ipotesi istruita per un resistore per un Q di 0,5 e quindi regolare empiricamente quel valore ?
Saad,

1
Direi che dipende dal tuo progetto e dagli strumenti. Se si utilizzano strumenti PCB di fascia alta, questa roba e molto altro verranno eseguite automaticamente se si specificano i vincoli giusti. Se non si utilizzano strumenti costosi, è sicuramente consigliabile eseguire almeno le stime iniziali per valutare se si potrebbero riscontrare problemi: non ci vuole molto e potenzialmente si possono evitare molti problemi in seguito. Se non sei sicuro, puoi sempre fare cose come aggiungere pad per installare una resistenza di terminazione, se necessario (possono essere provati vari valori - empiricamente va bene se funziona)
Oli Glaser

Si noti inoltre che non è necessario che Q sia in posizione 0,5, al di sotto anche questo va bene (è sopra dove inizia lo squillo - sottodimensionato) 0,5 è solo il valore ottimale (smorzato criticamente) per un tempo di salita più veloce senza overshoot. Man mano che aumenti R (sovradimensionato) il tempo di attesa rallenterà e alla fine diventerà un problema, ma di solito avrai un margine.
Oli Glaser,

6

Altera consiglia il loro uso con alcuni tipi di SDRAM in questo documento, ma afferma che possono essere evitati utilizzando la terminazione interna per FPGA e SDRAM, se offerto. Nessuna delle schede FPGA che ho con SDRAM ha una terminazione esterna sui collegamenti e i dispositivi non hanno una terminazione interna. Sembra che dovrebbero essere usati, idealmente, ma in pratica sono spesso lasciati fuori. Dovresti cavartela.


Nemmeno io, ma il produttore della mia scheda di sviluppo li ha usati, quindi ho pensato che avrei dovuto
farlo anch'io

@ user9663 Se avete intenzione di fare qualsiasi tipo di test delle emissioni, penso che i resistori di terminazione siano una buona idea per evitare il suono. Ad essere sincero, ho poca esperienza con SDRAM.
Justing
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.