Firma Raspberry Pi opracowała prawdopodobnie najpopularniejszy i najczęściej używany jednopłytkowy komputer na rynku. Te potężne jednopłytkowe komputery od dawna są używane nie tylko w środowisku makerów i hobbystów, ale również w przestrzeni przemysłowej.
W miarę rozszerzania się obszaru zastosowań, format tych płyt zaczyna być postrzegany jako standard 'de facto' dla jednopłytkowych komputerów i modułów. Wprowadzenie modułu obliczeniowego CM4 pod koniec 2020 roku oznaczało ustanowienie nowego standardu formatu dla modułów system-on-module.
Od tego czasu różne SoC od producentów takich jak Allwinner i Rockchip, wraz z solidnymi FPGA, zostały bezproblemowo zintegrowane z szeroko przyjętym formatem CM4.
Moduł Pi.MX8 dołączy do listy modułów kompatybilnych z CM4.
Mając do dyspozycji taką różnorodność kompatybilnych SoM, dlaczego powinniśmy inwestować czas w projektowanie kolejnej wersji?
Odpowiedź jest prosta: kiedy budujemy złożony, a czasami kosztowny system wokół modułu komputerowego, chcemy również mieć suwerenność projektową nad samym modułem. Chcemy mieć dostęp do schematów i danych źródłowych układu, chcemy móc samodzielnie decydować o BOM modułu w przypadku braków komponentów, i co najważniejsze, chcemy mieć dostęp do dokumentacji wszystkich komponentów użytych na PCB.
Wszystko to jest możliwe tylko w kontekście w pełni otwartego projektu, wykorzystującego komponenty z łatwo dostępną dokumentacją.
Obraz poprzedniej rewizji układu Pi.MX8
W tym i kolejnych artykułach będziemy przyglądać się projektowaniu w pełni otwartego modułu kompatybilnego z CM4. Na końcu naszej podróży dane źródłowe dla modułu kompatybilnego z CM4 zostaną opublikowane, aby każdy mógł je przejrzeć, zmodyfikować lub wykorzystać!
Podstawowym elementem, który musimy zdefiniować przed wyborem jakichkolwiek komponentów peryferyjnych, jest System-on-Chip. Istnieje SoC, który spełnia wszystkie wymagania dotyczące łatwo dostępnej dokumentacji i jest szeroko stosowany w przemyśle, i.MX8M Plus od NXP.
Ten SoC jest dostępny w kilku wariantach, od dwóch do czterech rdzeni Cortex-A53 taktowanych z prędkością do 1,8 GHz. Dodatkowo, dostępny jest wtórny rdzeń cortex M7 oraz zintegrowany akcelerator uczenia maszynowego w tej serii procesorów.
Cechy sprzętowe SoC i.MX8M Plus - źródło obrazu: Strona NXP
i.MX8 oferuje prawie wszystkie interfejsy peryferyjne jak BCM2711 używany w module Raspberry Pi CM4 z jednym głównym wyjątkiem:
Na i.MX8 dostępny jest tylko jeden interfejs HDMI w porównaniu do dwóch portów dostępnych na BCM2711. Tę ograniczenie można obejść, używając mostka DSI do HDMI. Aby zachować niską liczbę części i prostotę, ten układ scalony nie zostanie na razie zintegrowany w naszym module.
Poza drugim interfejsem HDMI, i.MX8 świetnie pasuje do naszej aplikacji!
Wysokopoziomowy schemat blokowy modułu składa się z tylko kilku kluczowych komponentów. Centralnym elementem jest SoC i.MX8, który zapewnia wszystkie interfejsy dla niezbędnych komponentów peryferyjnych. Mówiąc prosto, budujemy płytę rozszerzeń dla procesora i.MX8:
Schemat blokowy Pi.MX8
Zacznijmy od przyjrzenia się zasilaniu systemu. Układ zarządzania zasilaniem (skrót PMIC) dostarcza kilka szyn napięciowych potrzebnych przez SoC, ale jest również zaprojektowany do zasilania interfejsów takich jak złącze karty SD.
PMIC jest również odpowiedzialny za zapewnienie poprawnej sekwencji włączania i wyłączania, co może być dość skomplikowane dla większych SoC.
NXP oferuje PMIC, który został specjalnie opracowany do użytku z procesorami aplikacyjnymi i.MX 8M. Ten układ scalony zapewnia do 11 szyn napięciowych generowanych przez kombinację przetwornic typu buck i LDO. Napięcia rdzenia dla SoC są generowane przez przetwornice typu buck, ponieważ wymagania prądowe są dość wysokie przy niskich napięciach pracy. Szyna napięciowa, która zasila cztery rdzenie A53, jest generowana przez dwufazową przetwornicę typu buck zintegrowaną w PMIC, aby zaspokoić wysokie zapotrzebowanie na prąd.
PMIC, którego będziemy używać, to PCA9450.
Pamięć NOR Flash o niskiej pojemności może być używana do przechowywania danych specyficznych dla płyty oraz jako medium rozruchowe. SoC i.MX8 między innymi obsługuje kilka interfejsów SPI do dostępu do medium rozruchowego. W tym przypadku używamy czterokanałowego interfejsu SPI do połączenia z 32MB pamięcią SPI NOR flash.
Urządzenie to jest IS25WP256D-RHLE od Integrated Silicon Solution, Inc.
Ten konkretny pakiet i rozmieszczenie wyprowadzeń jest również dostępny od różnych producentów, co umożliwia wymianę komponentu w przypadku problemów z dostępnością.
Ethernet PHY musi obsługiwać prędkości gigabitowe oraz protokół precyzyjnego czasu (precision time protocol), aby być kompatybilnym z funkcjonalnością CM4. Interfejs do SoC powinien być zredukowanym gigabitowym interfejsem niezależnym od medium (RGMII). Ten typ interfejsu jest obsługiwany przez szeroką gamę PHY ethernetowych do zastosowań wbudowanych.
Będziemy używać LAN8840 od Microchip Technology.
Ten PHY obsługuje zarówno prędkości gigabitowe, jak i wysoką precyzję stemplowania czasowego zgodnie z IEEE 1588-2008 (v2). Obudowa QFN48 jest również stosunkowo kompaktowa, co pozwala zaoszczędzić cenne miejsce na płycie modułu.
Będziemy używać pamięci DDR4 o niskim poborze mocy na module Pi.MX8. Kilku producentów dostarcza układy LPDDR4 w tej samej obudowie i rozmieszczeniu wyprowadzeń, co ułatwia reagowanie na problemy z dostępnością lub obsługę wielu pojemności pamięci. Samsung i Micron są najczęściej używanymi producentami urządzeń LPDDR4. Będziemy używać urządzeń obsługujących 32-bitową magistralę przy prędkościach transferu 3733 Mbps.
Pi.MX8 może być wyposażony w kilka pojemności pamięci:
Tabela pojemności pamięci
Coral edge TPU może być używany do przyspieszania obliczeń sieci neuronowych na urządzeniach wbudowanych. Coral TPU często stosuje się w formie karty rozszerzenia M.2, jest również dostępny w małym opakowaniu LGA.
Moduł ten zawiera procesor tensorowy oraz układ zarządzania energią niezbędny do działania TPU. Musimy zapewnić interfejs PCIe do tego modułu, aby wykorzystać dostępną moc obliczeniową.
Ponieważ moduł ten jest przeznaczony tylko dla niewielkiej liczby przypadków użycia i jest stosunkowo drogi, zostanie zaimplementowany jako wariant montażowy.
WiFi i Bluetooth Low Energy to jedne z najczęściej używanych interfejsów bezprzewodowych w aplikacjach IoT. Będziemy używać modułu MURATA LBEE5PK2BC jako w pełni zintegrowane rozwiązanie.
Ten moduł zapewnia zarówno W-LAN, jak i Bluetooth, minimalizując liczbę potrzebnych zewnętrznych komponentów. Nie każda aplikacja potrzebuje łączności bezprzewodowej, dlatego moduł WiFi/BLE również zostanie zaimplementowany jako wariant montażowy.
Moduł eMMC zapewnia do 32GB pojemności pamięci dla modułu Pi.MX8. Podobnie jak w przypadku pamięci DRAM LPDDR4, możemy wybierać spośród wielu producentów modułów eMMC, którzy przestrzegają tego samego standardu obudowy i rozmieszczenia pinów. Jednym z najczęściej używanych producentów modułów eMMC jest SanDisk.
eMMC również zostanie zaimplementowany jako wariant montażowy, aby obniżyć koszty BOM dla aplikacji, które nie mają wysokiego zapotrzebowania na pojemność przechowywania danych.
Przed przejściem do następnego etapu przygotowania schematu i projektu PCB, spójrzmy szybko na wymagania przestrzenne dla wszystkich komponentów, które właśnie wybraliśmy.
W tym celu możemy skonfigurować komponenty biblioteki PCB i umieścić je w obrębie konturu PCB o formacie CM4.
Dopasowanie kluczowych komponentów
Wszystkie kluczowe komponenty mieszczą się na górnej warstwie w obrębie zarysu formy CM4. To wstępne rozmieszczenie pokazuje również, że na górnej stronie pozostało niewiele miejsca na większe komponenty. Wysokość połączenia płyty z płytą, której używamy, wynosi tylko 2mm. Ogranicza to wysokość komponentów, które możemy umieścić na dolnej stronie PCB. Idealnie, wszystkie kluczowe komponenty powinny być umieszczone na górnej stronie płytki, aby uniknąć kolizji z częściami, które mogą być umieszczone na płycie nośnej pod modułem.
Przed nami ekscytujące aktualizacje! Z zakończeniem doboru komponentów, nasza podróż kontynuuje się w celu finalizacji schematów w nadchodzącej aktualizacji. Zauważyłeś coś brakującego na zrzucie ekranu układu PCB na początku? To dlatego, że jest to starsza wersja, i przeprowadzamy ponowne trasowanie całego PCB, aby włączyć nowe funkcjonalności. Dołącz do nas i śledź postępy w czasie rzeczywistym przez wbudowany przeglądarkę A365 i naszą publiczną przestrzeń roboczą! Nie przegap – bądź na bieżąco z ekscytującą transformacją!