Pana acum circuitele pe care le-am proiectat au transmis semnale care aveau ca punct de referință masa circuitului (single-ended signaling).
Daca dorim sa transmitem semnale cu viteza mare, atunci zgomotul va fi un factor important de luat in considerare: *In primul rând zgomotul electro-magnetic afectează toate traseele de pe un PCB *In al doilea rând zgomotul din masa; Deoarece masa este comuna cu întreaga logica de pe PCB, zgomotul poate fi indus de oricare dintre componente. Astfel valoarea de referință poate fi ridicată sau coborâtă, ducând la citiri eronate.
In acest laborator ne vom ocupa de semnale diferențiale. Spre deosebire de transmiterea datelor printr-un semnal single-ended in cazul semnalelor diferențiale datele sunt transmise prin doua semnale complementare. Circuitul care va interpreta datele nu va mai citi diferența de tensiune intre intrare și masa, ci va reacționa la diferența dintre cele doua semnale.
Datorita faptului ca in circuitul diferențial impedanțele de transmitere si recepție sunt egale, interferentele electromagnetice tind sa afecteze in mod similar ambele fire, inducand acelasi zgomot pe ambele fire. Deoarece Informatia relevanta este obtinuta prin diferenta celor doua semnale, zgomotul va fi redus si astfel efectul lui asupra circuitului va fi minim.
Protocoale care implementează transmisia datelor folosind semnale diferentiale: *SATA *HDMI *USB *PCI Express *Ethernet over twisted pairs
Pentru a putea ruta o pereche de semnale diferențiale este necesar ca semnalele sa fie denumite corespunzător. Primul semnal trebuie sa aibă numele de forma nume_P, iar al doilea difera doar prin sufix: _N. In exemplul de mai jos am notat cu DIFF_P si DIFF_N cele doua semnale diferențiale.
O constrangere importanta este faptul ca cele doua fire trebuie sa aiba lungime egala, pentru acest lucru se foloseste rutarea in serpentine pentru a aduce lungimea traseelor sa fie cat mai apropiata.
Functia din eagle se numeste Meander si o puteti gasi astfel:
Constrangeri de lungime
Dupa cum am am menționat anterior, lungimea ambelor fire trebuie sa fie cat mai apropiata. Este “good-practice” ca serpentinele sa fie cat mai apropiate de capatul in care pad-urile/via-urile nu sunt aliniate corespunzător.
Situarea fata de planul de referință Firele pe care circula semnale de mare viteza trebuie sa fie rutate mereu pe un plan de GND. Rutarea peste un plan vid poate cauza: *Întârzieri in propagarea semnalelor *Interferente *Degradarea integrității semnalelor Exemplu:
Daca nu se poate evita trecerea peste un plan vid, înseamnă ca avem doua planuri de masa distincte. Este recomandat ca acestea sa fie conectate prin doua condensatoare de capacitate 1 microF sau mai puțin, plasate cat mai aproape de firele de semnal.
Distanta intre fire Este recomandat ca distanta intre perechile de fire sa fie de 5xW, unde W este latimea firului. Este recomandat ca semnalele periodice sa fie izolate folosind o distanta de cel putin 8xW.
Diverse reguli:
*Este recomandat sa nu se ruteze fire pe care circula semnale de inalta frecventa pe sub sau langa cristale de quartz, generatoare de ceas, gauri pentru montare, dispozitive magnetice, regulatoare de tensiune sau IC-uri care folosesc semnalul de ceas.
*Este recomandat ca firele pe care circula semnale diferentiale sa fie rutate la cel putini 90mil de marginea planului de referinta,
*Este recomandat sa se maximizeze distanta intre perechile de fire de transmisie atunci cand este posibil.
*Perechile de fire trebuie trasate paralel, singurul punct in care este permisa spargerea simetriei este inainte de a se conecta la capsula de siliciu a unui circuit integrat. Distanta recomandata pentru spargere este cu 0.25inch inainte de capsula acesteia.
Planul de masa de pe un PCB este o zona larga acoperita cu un strat de cupru care este conectata la punctele de masa ale circuitului. Acesta este realizat de regula cat mai mare, acoperind aproape intreaga suprafata a PCB-ului care exceptand zonele pe unde circula treseele.
Planul de masa are urmatoarele avantaje: * In primul rand aranjarea componentelor pe PCB devine mult mai usoara deoarece accesul pinilor la un punct de masa este relativ facil * Reduce zgomotul si interferentele cauzate de buclele de masa.
Cum se poate realiza un plan de masa in Eagle?
* Se selecteaza functia Polygon
* Se delimiteaza zona in care dorim sa fie planul de masa
* Se redenumeste poligonul folosind numele GND
* Se foloseste functia Ratsnests
*Realizati schema de aici. (1p)
*Realizati PCB-ul (6p) (Se cere respectarea constrangerilor si recomandarilor facute in acest laborator; Nu este permisa folosirea functie Autorouter) *Realizati planul de masa (3p)