Projekt Pi.MX8 - Układ płyty Część 4

Lukas Henkel
|  Utworzono: lipiec 23, 2024  |  Zaktualizowano: lipiec 24, 2024
Projekt PIMX8 - Rozdział VI

Rozdziały

1
Introduction and Overview
| Created: January 18, 2024
2
Component placement and layout planning
| Created: February 06, 2024
3
Board Layout Part 1
| Created: February 22, 2024
4
Board Layout Part 2
| Created: March 21, 2024
5
Board Layout Part 3
| Created: June 24, 2024
6
Board Layout Part 4
| Created: July 23, 2024
7
PCB Assembly
| Coming Soon

Witamy w nowej odsłonie projektu modułu obliczeniowego Pi.MX8 SoM! W tej aktualizacji będziemy nanosić ostatnie szlify na naszym projekcie PCB i przygotowywać projekt do produkcji prototypu.

Test of button

W poprzednim artykule zakończyliśmy trasowanie warstw sygnałowych. Była to najbardziej czasochłonna część układu PCB dla modułu Pi.MX8. Jednak przed nami wciąż stoją dwa zadania wymagające równie dużej uwagi: trasowanie płaszczyzn zasilających i dostrojenie opóźnień sygnałów.

Płaszczyzny zasilające

Zacznijmy od płaszczyzn zasilających. Zwykle wolę zostawić dostrojenie opóźnień na ostatnie kroki, ponieważ meandry potrzebne do dostrojenia długości często wypełniają pozostałą przestrzeń na płytce. Na przykład, umieszczenie dodatkowych VIA (co czasami może być konieczne podczas trasowania sieci zasilających) może wymagać od nas dostosowania prymitywów dostrojenia długości, aby stworzyć potrzebną przestrzeń. Wypełniając pozostałą przestrzeń prymitywami dostrojenia długości na końcu, możemy uniknąć dodatkowych przeróbek.

Available power plane layers

Dostępne warstwy płaszczyzn zasilających

Patrząc na układ warstw, możemy zauważyć, że mamy dostępne dwie dedykowane warstwy płaszczyzn zasilania. Te warstwy są oddzielone od przyległych warstw masy cienką warstwą prepregu. Taki układ zwiększa pojemność płaszczyzn o niskiej indukcyjności i może pomóc w zmniejszeniu impedancji PDN przy wysokich częstotliwościach.

Najpierw poprowadźmy szyny zasilające o wysokim prądzie. W naszym przypadku są to szyny zasilające rdzenia i pamięci dla i.MX8 SoC oraz kontrolera DRAM z układem LPDDR4.

PMIC core and memory supply for the SoC

Zasilanie rdzenia i pamięci PMIC dla SoC

Szyny VCC_ARM i VCC_SOC używają zdalnego czujnika, co oznacza, że węzeł sprzężenia zwrotnego przetwornic buck nie jest prowadzony do kondensatorów wyjściowych w pobliżu MIC, ale do padów zasilających i.MX8. Ma to na celu kompensację spadku napięcia na płaszczyźnie zasilania lub poligonie. Ponieważ prąd w tych szynach może być stosunkowo wysoki, a PMIC musi regulować te napięcia precyzyjnie, ważne jest, aby "mierzyć" napięcie bezpośrednio przy obciążeniu. Poniższy rysunek pokazuje spadek napięcia na poligonie zasilającym:

Voltage drop across power polygon

Spadek napięcia na poligonie zasilającym

Poligon mocy dla szyny VCC_ARM jest prowadzony na warstwie 6. Ścieżka prowadzona blisko konturu poligonu to sygnał zdalnego pomiaru. Idealnie chcielibyśmy mierzyć napięcie różnicowo, aby kompensować efekty pasożytnicze wprowadzone przez prąd ścieżki powrotnej i aby sprzężenie zwrotne było mniej podatne na zakłócenia, ale w naszym przypadku nie będzie to konieczne. Będziemy postępować zgodnie z zaleceniami projektu referencyjnego.

VCC_SOC polygon

Poligon VCC_SOC

Ścieżka sprzężenia zwrotnego używa "net-tie" blisko pinów SoC, aby połączyć sieć sprzężenia zwrotnego z siecią zasilającą. Bez użycia net-tie musielibyśmy ręcznie zapewnić czystą izolację między ścieżką sprzężenia zwrotnego a poligonem zasilającym. Podejście to jest podatne na błędy. Net-tie to po prostu obudowa składająca się z krótkiego segmentu ścieżki z dwoma małymi padami na każdym końcu. Ustawiając typ komponentu na net-tie, Altium Designer nie wygeneruje błędu zwarcia dla tego komponentu.

Poligon VCC_ARM i szyna zasilania DRAM są prowadzone w podobny sposób na warstwie 5.

VCC_ARM highlighted and DRAM power rail in purple

VCC_ARM wyróżnione i szyna zasilania DRAM na fioletowo

Pozostałe szyny zasilające są rozprowadzone na warstwach 5 i 6. Poligony zasilania systemowego 1,8V i 3,3V obejmują całą płytę, ponieważ wiele komponentów podłączonych do tych szyn jest rozprowadzonych na całej płycie.

Ostatnim krokiem w trasowaniu płaszczyzn zasilających jest ustawienie analizy PDN AC i DC oraz sprawdzenie, czy wyniki mieszczą się w granicach wartości impedancji określonych przez przewodnik projektowania sprzętu SoC.

Symulacja AC musi uwzględniać kondensatory sprzęgające z dokładnym modelem równoważnym, charakterystykę wyjściową regulatora obniżającego napięcie oraz geometrię układu. Nie będziemy omawiać konfiguracji symulacji w tym artykule, ale musimy pamiętać o niej jako o obowiązkowym kroku weryfikacji.

Power rails target impedance

Celowa impedancja szyn zasilających

Symulacja DC wymaga tylko geometrii układu i charakterystyk obciążenia SoC jako danych wejściowych do obliczenia spadku napięcia na poligonach zasilających i wyróżnienia obszarów z nadmierną gęstością prądu.

Dostrojenie opóźnień

Z zakończeniem układu sieci zasilającej możemy teraz przejść do ostatniego punktu na naszej liście zadań - dostrojenie opóźnień.

Na module Pi.MX8 znajduje się wiele interfejsów, które mają ścisłe wymagania czasowe i wymagają dostrojenia opóźnień. Przyjrzymy się najbardziej krytycznym interfejsom i zobaczymy, jak możemy użyć X-Signals do dostrojenia opóźnień nawet przez kilka komponentów.

Zacznijmy od interfejsu DRAM. Przewodnik projektowania sprzętu i.MX8 dostarcza wszystkich informacji potrzebnych do dostrojenia opóźnień. Zanim jednak zaczniemy dostosowywać jakiekolwiek ścieżki, musimy najpierw sprawdzić, czy opóźnienie pakietu jest uwzględnione w symbolu biblioteki schematycznej.

NXP dostarcza czasy opóźnień pakietów, czyli czas, który potrzebny jest sygnałowi na przebycie drogi od kuli BGA i.MX8 do krzemowego chipa. Różne długości na interposerze wpływają na całkowity czas opóźnienia, więc ważne jest, aby wziąć je pod uwagę.

Pin package delay in the schematic symbol

Opóźnienie pinu pakietu w symbolu schematycznym

Możemy użyć edytora listy biblioteki schematycznej, aby wkleić wszystkie opóźnienia pinów pakietów z dokumentu przewodnika projektowania sprzętu i.MX8 naraz, używając dialogu inteligentnego wklejania siatki.

Pin delays in table format through the SCHLIB List toolbar

Opóźnienia pinów w formacie tabeli przez pasek narzędzi SCHLIB List

Wymagania dotyczące strojenia opóźnień dla interfejsu LPDDR4 są opisane w przewodniku projektowym sprzętu i.MX8. Przewodnik grupuje zależności opóźnień na grupy zegarowe, kontrolne/komend i bajtowe. Okna czasowe dla każdej grupy są odniesione do sygnałów zegarowych i strobowych. Wszystkie sygnały różnicowe muszą być dopasowane do 1ps między komplementarnymi sygnałami w parze.

LPDDR4-4000 PCB delay tuning requirements

Wymagania dotyczące strojenia opóźnień PCB LPDDR4-4000

Sygnały w grupie adres/komenda/kontrola muszą spełniać dwa wymagania czasowe. Jedno wymaganie określa maksymalne opóźnienie między każdym sygnałem w grupie, podczas gdy drugie wymaganie określa maksymalne okno opóźnienia całej grupy odniesione do sygnału zegarowego.

Dlatego używamy wielu grup sygnałów X, aby zapewnić, że odpowiednie sygnały są docelowe w ramach zasad projektowych.

X-signal classes for the LPDDR4 tuning

Klasy sygnałów X dla strojenia LPDDR4

Podczas stosowania zasad strojenia opóźnień z przeplotem, lubię dodatkowo śledzić całkowite wartości opóźnień w arkuszu Excel do celów dokumentacyjnych. Ten krok jest jednak opcjonalny i zależy od osobistych preferencji, ponieważ wszystkie wymagania czasowe mogą być zdefiniowane w konfiguracji zasad w Altium Designer.

Delay tuning documentation in Excel

Dokumentacja strojenia opóźnień w Excelu

Po zdefiniowaniu klas sygnałów X i ustaleniu zasad projektowania możemy rozpocząć dostrojenie opóźnienia w układzie. Oprócz dostrojenia opóźnienia wewnątrzparowego, większość regulacji musi być wykonana na liniach adresowych/komend/kontroli:

Delay tuning address/command/control lines

Dostrojenie opóźnienia linii adresowych/komend/kontroli

Same linie danych wymagają bardzo małej lub wcale regulacji opóźnienia. Wokół par sygnałów zegarowych prowadzonych na górnej warstwie mamy dużo miejsca, które możemy wykorzystać do dostrojenia opóźnienia:

Clock delay tuning top layer

Dostrojenie opóźnienia zegara górna warstwa

Tak jak w przypadku sieci dostarczania energii, musimy przeprowadzić symulacje weryfikacyjne dla interfejsu DRAM. Szczególnie interesuje nas, czy możemy zobaczyć efekty przeplotu, jako że części trasowań są umieszczone stosunkowo blisko siebie. Zasadą jest zachowanie odległości 3x grubości dielektryka do sąsiednich ścieżek. Jednak w tym artykule nie będziemy omawiać konfiguracji symulacji i szczegółów.

Po zakończeniu dostrojenia opóźnienia interfejsu DRAM, spójrzmy na inną aplikację dla sygnałów X. Płytka PiMX8 posiada dwa interfejsy, które mogą obsługiwać zewnętrzny wyświetlacz - LVDS i MIPI-DSI.

MIPI-DSI również wykorzystuje sygnalizację różnicową niskiego napięcia (LVDS), więc możemy użyć multipleksera do wyboru jednego z tych interfejsów, ponieważ dzielą one te same specyfikacje sprzętowe. Podczas używania multipleksera do przełączania między interfejsami, musimy również być świadomi, że każde trasowanie wykonane po multiplekserze (po stronie wspólnej) wpłynie na opóźnienie zarówno interfejsu MIPI-DSI, jak i LVDS. Można to wziąć pod uwagę, tworząc oddzielną klasę sygnałów X dla interfejsu MIPI-DSI i interfejsu LVDS, co pozwala na większą swobodę w dostrojeniu opóźnień na PCB.

W tym przykładzie możliwe byłoby uniknięcie potrzeby stosowania tego podejścia, gdyby wszystkie trasowania po stronie wspólnej zostały dostrojone do ścisłego okna opóźnień, zarówno między parami, jak i parą do pary. Dzięki użyciu dwóch oddzielnych klas sygnałów X mamy lepszą kontrolę nad budżetem czasowym każdego interfejsu.

Sygnały X pozwalają nam przezwyciężyć różnice przez multiplekser i wykonać dostrojenie długości każdego interfejsu na całej długości sygnału przed i po multiplekserze.

To samo podejście jest stosowane w interfejsie PCIe, aby przezwyciężyć różnice przez kondensatory sprzęgające AC w szeregu.

LVDS routed to the multiplexer

LVDS przekierowane do multipleksera

MIPI-DSI routed to the multiplexer

MIPI-DSI przekierowane do multipleksera

Wszystkie szybkie interfejsy na płycie Pi.MX8 są dostrojone pod kątem opóźnień przy użyciu sygnałów X, ponieważ zapewniają one bardziej precyzyjną długość ścieżki całego sygnału. Nie będziemy przyglądać się każdemu interfejsowi osobno, ponieważ ustawienie reguł dostrojenia opóźnień i dostosowanie trasowania to powtarzalne zadania, które nie różnią się znacząco ogólnym podejściem między interfejsami.

To był ostatni krok w zakończeniu trasowania na płycie Pi.MX8. Kolejnym etapem jest wykonanie dokładnej kontroli reguł projektowych i eksport zestawu danych produkcyjnych.

W następnej aktualizacji przyjrzymy się płytom i zaczniemy składać niektóre prototypy. Będzie to ostatni krok do uruchomienia modułu Pi.MX8 po raz pierwszy, więc bądźcie czujni!

About Author

About Author

Lukas is a passionate hardware designer with more than 10 years of experience in the electronics industry. As a co-founder of his own engineering services company, he has had the privilege of working on many exciting projects, taking on challenges ranging from precision analogue design to high-speed PCB layout and power electronics.

As a strong supporter of the open-source philosophy, Lukas has made it his goal to give anyone interested an insight into the construction and functioning of modern electronic devices. Driven by that goal, he has founded the company Open Visions Technology (OV Tech GmbH), which aims to bring highly repairable, fully documented state-of-the-art consumer hardware to the market.

Lukas firmly believes that with today's online access to know-how and tools, anyone with an idea, drive, and passion can create extraordinary things. He is looking forward to being part of an enthusiastic community and is excited to see how people bring their ideas to life.

Powiązane zasoby

Powiązana dokumentacja techniczna

Powrót do strony głównej
Thank you, you are now subscribed to updates.