Laborator 04 - Eagle 104 - Semnale diferențiale

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

Rutarea semnalelor diferențiale

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.

In .brd, vom defini o noua clasa de semnale, mergand in meniul Edit → Net Classes → Add.

In aceasta fereastra se adauga perechea de semnale diferentiale in noua clasa.

Pentru a fi recunoscute ca semnale diferentiale de Eagle, este necesar ca numele semnalelor sa aibe sufixele '_P' pentru pozitiv, respectiv '_N' pentru negativ.

Rutarea semnalelor diferentiale se face prin selectarea modului Route a Differential Pair a instrumentului Route.

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: top-text

Cand selectam o portiune de traseu cu functia Meander, va fi afisata lungimea comparativa a celor doua trasee.

Constrangeri si Recomandari


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

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 traseele.

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

Tip: pentru a elimina ilustrarea planului de masa (umplerea chenarului), puteti folosi comanda ripup @;.

Exerciții

  • Realizati schema de aici.
    • Convertorul USB-UART FT232RL poate fi gasit in biblioteca Sparkfun-IC-Comms
    • Portul USB poate fi gasit in biblioteca OPL_Connector si cautand *DIP-USB*
    • Condensatorii C1 si C4 trebuie să fie SMD, în capsulă 0805;
    • Condensatorii C2 și C3 trebuie să fie polarizați, în capsulă THT
    • Ferrite bead-ul il gasiti in biblioteca Sparkfun-Coils sau cautand *ferrite_bead*
  • Realizati PCB-ul (Se cere respectarea constrangerilor si recomandarilor facute in acest laborator; Nu este permisa folosirea functie Autorouter)
  • Realizati planul de masa
icalc/laboratoare/laborator-04.txt · Last modified: 2022/05/24 00:59 by liviu.mitruta
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0