Trasowanie zegara 30MHz przez kilka płyt

9

Używam sterownika LED TLC5945 . Mikrokontroler (używam LPC1343 ) musi zapewniać zegar dla wewnętrznego timera / licznika PWM. Maksymalna dozwolona prędkość zegara jest określona jako 30 MHz.

Będę miał kilka płyt z Daisychained TLC5945. Płytki zostaną połączone za pomocą złączy między płytkami lub krótkimi kablami taśmowymi, szerokość jednej płytki wynosi 10 cm. Będę miał maksymalnie 4 z nich połączone szeregowo.

Prawdopodobnie nie będę korzystał z pełnej częstotliwości 30 MHz, ale mimo to chcę to zrobić dobrze - w jaki sposób trasować / warunkować sygnał zegara tak, aby był nietknięty?

Jeśli dodam bufor jak 74HC245 na wyjściu każdej płyty, dostanę opóźnienie 10ns po każdym buforze, nie chcę tego. Czy powinienem używać specjalistycznych buforów zegara „zerowego opóźnienia”? Jakiego rodzaju plan wypowiedzenia powinienem stosować?

miceuz
źródło
2
Pojedynczy cykl przy 30 MHz wynosi ~ 33ns. Czy bycie wyłączonym przez 1/3 jednego cyklu na płytę jest tak dużym problemem?
Toby Lawrence,
1
Co za wspaniałe pytanie i odpowiedzi. Każda odpowiedź stanowi uzupełnienie rozwiązania, bez powtarzania poprzednich.
Vorac,

Odpowiedzi:

20

30 MHz wystarczy, aby traktować sygnał jako problem z linią transmisyjną. Musisz zwrócić uwagę na układ płytki w całym projekcie, w tym zwłaszcza na złączach. Musisz zabrać dodatkowe piny uziemienia wraz z sygnałem 30 MHz lub ewentualnie użyć specjalnych złączy.

Będziesz potrzebować informacji o układzie swojej płyty, liczbie warstw i być może będziesz musiał skoordynować z zamierzonym producentem płyty, aby mogli oni wyznaczyć określoną charakterystyczną impedancję dla Ciebie lub po prostu uzyskać parametry, takie jak stałe dielektryczne.

Wygląda na to, że znasz wiele z tych problemów, ale pomyślałem, że najlepiej je rozwiązać, ponieważ jeśli nie będziesz ostrożny, możesz uzyskać projekt, który jest funkcjonalny, ale emituje dużo RF i nigdy nie przejdzie Test EMI.

Wytyczne dotyczące trasowania sygnału:

  • Oblicz impedancję i szerokość śladu.
  • Najpierw poprowadź swoje zegary.
  • Jeśli to możliwe, nigdy nie kieruj sygnału przez via. Jeśli to konieczne, umieść kondensatory obejściowe w pobliżu przelotu.
  • Jeśli to możliwe / odpowiednie, poprowadź sygnał przez wewnętrzną warstwę (tak, aby zewnętrzne płaszczyzny uziemienia i zasilania mogły funkcjonować jako rodzaj klatki Faradaya). W takim przypadku sygnał powinien być kierowany na jednej warstwie, z wyjątkiem przelotek potrzebnych do uzyskania dostępu do układów scalonych.
  • Sygnał nigdy nie dociera nigdzie bez płaszczyzny uziemienia (a ściślej mówiąc płaszczyzny odniesienia).
  • Sygnał nigdy nie przekracza granicy między płaszczyznami mocy.
  • Przechodząc przez złącze, otocz je uziemieniem.
  • W połączeniu łańcuchowym, jeśli to możliwe, kieruj bezpośrednio do wejść zegara bez użycia kodów pośredniczących. Schemat łańcucha daisy bez odcinków z Altera PDF
  • Przecinaj inne sygnały prostopadle.
  • Jeśli inne sygnały muszą się z nią przemieszczać, daj im zgodę. Czterokrotna szerokość śladu.
  • Użyj uziemienia równoległego do rezystancji o rezystancji równej impedancji charakterystycznej mikropasków / linii paskowej lub zakończenia źródła, jeśli sygnał ma tylko jedno miejsce docelowe. W celu omówienia zobacz to powiązane pytanie .

Oczywiście w realnym świecie może być konieczne złamanie jednej z tych wytycznych.

Większość tych zasad wynika z obserwacji, że przy wysokich częstotliwościach prąd powrotny będzie próbował zbliżyć się do sygnału, dlatego należy podać ścieżkę dla prądu powrotnego. Jeśli prąd powrotny jest fizycznie oddzielony, tworzysz pasożytniczą antenę. Płaszczyzna uziemienia (lub mocy!), Która zapewnia ścieżkę dla prądu powrotnego, nazywa się odniesieniem. Nie opuszczaj płaszczyzny odniesienia. Jeśli musisz przejść przez przelot, płaszczyzna odniesienia zmienia się. Kondensator obejściowy jest ustawiony między nową a starą płaszczyzną odniesienia.

Twoje złącza będą stanowić problem, ponieważ prawdopodobnie będą miały inną impedancję niż płytka drukowana, więc będą powodować odbicia i pogorszą sygnał. Jedną z opcji może być użycie złącza kontrolowanego impedancją, które odpowiada impedancji płytki.

Po stronie oprogramowania może być konieczne eksperymentowanie z siłą napędu, aby kontrolować szybkość krawędzi. Maksymalna siła napędu jest często złą odpowiedzią. Twój dostawca układów scalonych powinien być w stanie dostarczyć model IBIS , za pomocą którego można symulować obwód w celu oszacowania integralności sygnału. Ściśle mówiąc, to nie częstotliwość zegara powoduje problemy z integralnością sygnału lub EMC, ale szybkość zbocza (czas przejścia od wysokiej do niskiej), ponieważ szybkie zbocza manifestują się jako szerokopasmowe transjenty w dziedzinie częstotliwości. Zmniejszenie siły napędu i / lub szybkości narastania spowoduje zmniejszenie prędkości zbocza i emisji harmonicznych, jednocześnie (prawdopodobnie) zwiększając jitter zegara. Sprawdź arkusze danych, aby zobaczyć, jaka jest dopuszczalna prędkość zbocza dla odbiorników zegara.

Mam wrażenie, że jeśli odrabisz pracę domową, prawdopodobnie nie będziesz potrzebować żadnego wzmacniacza sygnału. Rozważmy na przykład SCSI, która jest ogromną szybką magistralą równoległą rozmieszczoną na kablach przy częstotliwości około 100 MHz. Jeśli to możliwe, rozważ inwestowanie w program, taki jak HyperLynx, aby zasymulować swój układ.

Altera ma doskonały przewodnik dotyczący problemów z szybkim routingiem.

jbarlow
źródło
Dzięki za wspaniały wgląd. Z twojej odpowiedzi rozumiem, że nie ma sposobu, żebym mógł to zrobić z płytami trawiącymi DIY?
miceuz,
@miceuz: Cóż, jeśli jest to projekt hobby, nie martwisz się o EMC, więc może. Wyłaniający się konsensus jest taki, że dla starszych inżynierów byłoby to trudne, a próba zrobienia tego DIY nie ułatwia niczego. Z drugiej strony możesz obniżyć częstotliwość taktowania, jeśli to nie zadziała w tym przypadku. Spróbuję znaleźć alternatywny układ, aby skrócić długość łańcucha.
jbarlow,
Głosowałbym za tym dwa razy, gdybym mógł.
Renan,
10

Nie zaszkodzi ci robić wszystkie rzeczy, które sugerują Jbarlow i David, ale pozwól, że spróbuję ci to ułatwić (lub może trudniej, bo powiem, że prawdopodobnie możesz uciec od wielu rzeczy) rzeczy, ale nie zamierzam obiecać ).

Klasyczną ogólną zasadą jest to, że można uznać obwód za obwód skupiony, jeśli żaden z jego wymiarów nie jest dłuższy niż 1/10 długości fali najwyższego interesującego sygnału częstotliwości. Jeśli jest to układ skupiony, możesz traktować swoje ścieżki jako połączenia między elementami dyskretnymi. Jeśli nie jest to układ scalony, musisz martwić się efektami obwodu rozproszonego i uważać swoje ślady za linie przesyłowe.

Mówisz o częstotliwości zegara 30 MHz, odpowiadającej długości fali 10 m. W przypadku propagacji przez FR4 długość fali zostanie zmniejszona do około 4,7 m. I obwód o długości 40 cm. Tak więc dla podstawy sygnału zegara jesteś na granicy starej zasady.

Problem: Nie musisz się martwić o częstotliwość taktowania, ale o ile harmonicznych tej częstotliwości trzeba przekazać, aby uzyskać pożądany czas narastania i opadania. Jeśli celowo spowolnisz wysyłane krawędzie, prawdopodobnie będziesz w stanie przetrwać tylko z pierwszą i trzecią harmoniczną (David wspomniał o tym, gdy nie wspominał o konieczności użycia maksymalnej siły napędu).

Daje to maksymalną częstotliwość 90 MHz, a odpowiadająca jej długość fali (w FR4) wynosi około 1,6 m. Tak więc odległość krytyczna wynosi 16 cm. Oznacza to, że ogólnie chcesz zapewnić ściśle sprzężoną ścieżkę powrotną, zaprojektować swoje ścieżki jako linie przesyłowe i zakończyć odpowiednią impedancją itp.

Ale prawdopodobnie nie musisz płacić dodatkowo za kontrolowaną impedancję. Jeśli projektujesz ze śladami powyżej minimalnej szerokości dostępnej u twojego dostawcy (np. 8 lub 10 mil), normalne tolerancje zapewnią zapewne odpowiednią wydajność.

A jeśli po drodze musisz przejść przez przelot lub przejechać krótką szczelinę w płaszczyźnie uziemienia, lub nie możesz umieścić kondensatora obejściowego obok części obciążającej, nie przejmuj się zbyt mocno. Jeśli chcesz poprowadzić swoje ścieżki prosto od złącza do złącza, z kilkucentymetrowym odgałęzieniem, aby dotrzeć do ładujących układów na każdej płycie, będzie dobrze. Jeśli długość niekontrolowanej części ścieżki (lub szczeliny w płaszczyźnie podłoża) jest mniejsza niż kilka cm, nie zrujnuje ci dnia. Nawet jeśli ma 10 cm, prawdopodobnie uda ci się uciec, ale nie pchaj szczęścia.

Na przykład oznacza to, że podczas łączenia między płytami nie jest potrzebne drogie złącze o kontrolowanej impedancji. Nawet kilka centymetrów kabla taśmowego będzie w porządku. Wzorzec przewodów na wstążce sygnał-ziemia lub sygnał-ziemia-sygnał-ziemia to dobry pomysł, ale nie martw się o skrętkę lub kabel koncentryczny o dopasowanej impedancji.

Po drugie, jeśli zdecydujesz się użyć bufora na każdej płytce, to pozwoli ci traktować obwód na każdej płytce (o długości 10 cm) jako obwód skupiony. Będziesz chciał zarządzać przesunięciem bufora, jak opisał David, i będziesz musiał ograniczyć czasy narastania i opadania z każdego bufora, ale zyskasz dużą elastyczność w rozmieszczaniu na każdej płycie bez pogarszania funkcjonalności. To powiedziawszy, im więcej robisz, aby utrzymać ścieżki powrotne blisko śladów sygnału, tym mniej prawdopodobne jest, że będziesz mieć nieprzyjemną niespodziankę, jeśli chodzi o testy EMC.

The Photon
źródło
6

Myślę, że odpowiedź @ jbarlow jest dość trafna. Chcę to trochę dodać, ale nie zawracam sobie głowy powtarzaniem tego, co powiedział.

Jedyną rzeczą, z którą nie zgadzałbym się z @jbarlow, jest użycie repeaterów lub buforowanie wszystkich sygnałów. To, co mówi, jest poprawne: „jeśli odrabiasz pracę domową ...”. Ale to jest problem, odrabianie lekcji. Możesz to zrobić, ale będziesz potrzebować stosunkowo drogich kabli i złączy - a wtedy będzie to tylko „naprawdę trudne”.

Nie wydaje się, że dodanie 10 ns opóźnienia w celu buforowania zegara na każdej płytce drukowanej jest naprawdę problemem. Trudno mi powiedzieć na pewno, ponieważ pominąłeś wiele szczegółów na temat innych sygnałów, takich jak BLANK i XLAT. Ale nawet jeśli jest to problem, zawsze możesz buforować WSZYSTKIE sygnały. Wszystkie bramki w 74xx245 będą miały takie samo opóźnienie (lub przynajmniej podobne), więc ogólny czas w sterowniku LED pozostanie dobry.

(Uwaga: sprawdź karty danych. Dobry chip wyświetli dwa różne numery opóźnień propagacji. Jeden dla pojedynczej bramki, a drugi pokazujący różnicę lub przesunięcie opóźnienia między bramkami w tym samym chipie. Nie wierz mi na słowo. Ty nadal będzie musiał przeprowadzić odpowiednią analizę czasu).

Uzyskanie terminacji i impedancji sygnałów między płytkami drukowanymi jest niezwykle ważne, aby ten projekt działał. Kontrolowanie impedancji w kablach wielożyłowych jest zawsze trudne, a przepuszczenie jednego sygnału przez kilka płytek drukowanych i kabli wymaga jedynie problemów. Będziesz miał zmianę impedancji w wielu punktach wzdłuż długości sygnału, co spowoduje problemy z integralnością sygnału. Buforowanie wszystkich sygnałów między płytkami PCB pomoże temu zaradzić. Przynajmniej długość śladu i zmiany impedancji dla każdego sygnału zostaną ograniczone do minimum.

Korzystanie z buforów zerowych opóźnień nie jest wymagane i może faktycznie pogorszyć sytuację (i zwiększyć koszt). Bufory o zerowym opóźnieniu są tak naprawdę pętlami zablokowanymi fazowo (PLL) i wymagają starannego zaprojektowania, aby działały idealnie. W większości przypadków nie jest to wielka sprawa, ale z pewnością może stanowić problem, jeśli Twój zegar nie jest idealny. Najlepiej byłoby tego uniknąć w przypadku tej aplikacji. Ponadto bufor o zerowym opóźnieniu nie nadaje się do buforowania czegokolwiek innego niż stale działający zegar - więc nie pomaga buforować żadnych innych sygnałów.


źródło
Doskonałe punkty. Zgadzam się, że podejście do buforowanych sygnałów jest prawdopodobnie dużo bezpieczniejsze i bardziej prawdopodobne, że odniesie sukces.
jbarlow
Jak buforować mrówkę, aby zakończyć sygnał? Czy to MCU-> Bufor-> Szeregowy termin-> kabel-> Bufor-> TLC5945-> Bufor-> Szeregowy termin-> kabel ... czy MCU-> Bufor-> Szeregowy termin-> kabel-> TLC5945-> Bufor -> seria term-> kabel ... tzn. czy muszę buforować sygnały z obu końców kabla, czy mogę przekazać bufor i zakończenie do pracy zarówno dla złącza / kabla, jak i dla następnej płyty?
miceuz,
@miceuz Najlepiej byłoby buforować go dwukrotnie na każdej planszy. Raz, gdy sygnał wejdzie na płytkę na jednym złączu. Innym razem, gdy sygnał opuszcza płytkę na drugim złączu. Praktycznie, zrobienie tego raz jest prawdopodobnie wystarczające. Byłoby to MCU-> Kabel-> LED-> term-> buf-> kabel-> led-> term-> buf-> kabel-> itp. Zwróć uwagę, że zakończenie serii źródła działa tylko wtedy, gdy sygnał jest obciążony pojedynczo, co nie jest możliwe. Masz zarówno układ sterownika LED, jak i bufor. Powinieneś spojrzeć na zakończenie AC, które ma rezystor i zaślepkę połączone szeregowo z uziemieniem na drugim końcu.