Spisu treści:

Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi: 5 kroków (ze zdjęciami)
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi: 5 kroków (ze zdjęciami)
Wideo: Mini kombajn pomiarowy AVT2999 - relacja z budowy, recenzja 2024, Listopad
Anonim
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi
Zaprojektuj własną płytkę PCB modułu obliczeniowego Raspberry Pi

Jeśli nigdy wcześniej nie słyszałeś o module obliczeniowym Raspberry Pi, jest to w zasadzie pełnoprawny komputer z systemem Linux z pamięcią RAM do laptopa!

Dzięki temu możliwe staje się zaprojektowanie własnych niestandardowych płyt, w których Raspberry Pi jest tylko kolejnym komponentem. Daje to ogromną elastyczność, ponieważ pozwala na dostęp do znacznie większej liczby pinów IO, podczas gdy w tym samym czasie możesz wybrać dokładnie taki sprzęt, jaki chcesz mieć na swojej płycie. Wbudowana karta eMMC eliminuje również potrzebę stosowania zewnętrznej karty micro SD, co sprawia, że moduł obliczeniowy jest idealny do projektowania produktów opartych na Raspberry Pi.

Niestety, chociaż moduł Compute Module pozwala to wszystko zrobić, nadal wydaje się, że brakuje mu popularności w porównaniu z tradycyjnymi modelami Raspberry Pi A i B. W rezultacie nie ma wielu projektów sprzętowych open source opartych na to. A dla każdego, kto chciałby zacząć projektować własne tablice, ilość dostępnych zasobów jest raczej ograniczona.

Kiedy po raz pierwszy zacząłem korzystać z modułu obliczeniowego Raspberry Pi kilka miesięcy temu, był to dokładnie problem, z którym się zmierzyłem. Postanowiłem więc coś z tym zrobić. Postanowiłem zaprojektować płytkę PCB typu open source opartą na module obliczeniowym, która będzie miała wszystkie podstawowe funkcje, dzięki którym Raspberry Pi jest świetne. Obejmuje to złącze kamery, host USB, wyjście audio, HDMI i oczywiście nagłówek GPIO kompatybilny ze zwykłymi płytami Raspberry Pi.

Celem tego projektu jest dostarczenie projektu open source dla płytki opartej na Compute Module, którą każdy będzie mógł wykorzystać jako punkt wyjścia do zaprojektowania własnej niestandardowej płytki. Płyta została zaprojektowana na KiCAD, otwartym i wieloplatformowym pakiecie oprogramowania EDA, aby umożliwić jak największej liczbie osób korzystanie z niej.

Po prostu pobierz pliki projektowe, dostosuj je do swoich potrzeb i zakręć własną, niestandardową tablicą do swojego projektu.

Krok 1: Części i narzędzia

Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia

Aby rozpocząć pracę z modułem obliczeniowym Raspberry Pi, będziesz potrzebować następujących części:

1 x Raspberry Pi Compute Module 3 - Gorąco polecam zakup regularnej wersji, która zawiera wbudowany eMMC, a nie wersję Lite. Jeśli chcesz użyć wersji Lite w swoim projekcie, będziesz musiał wprowadzić kilka zmian w projekcie, w tym dodać złącze karty micro SD. W końcu przetestowałem płytę tylko z CM3 i nie mogę zagwarantować, że będzie działać z pierwszą wersją CM, która została wydana w 2014 roku.

Aktualizacja 29.01.2019:Wygląda na to, że Fundacja właśnie wydała Compute Module 3+ i nie tylko to, ale teraz ma również opcję dla 8GB, 16GB lub 32GB eMMC! Zgodnie z arkuszem danych, wydaje się, że CM3+ jest pod względem elektrycznym identyczny z CM3, co oznacza, że jest to w zasadzie zamiennik CM3.

1 x Compute Module IO Board - Mój projekt miał służyć jako punkt wyjścia do zaprojektowania własnej płytki na jej podstawie, a nie jako zamiennik karty Compute Module IO. Tak więc, aby ułatwić sobie życie, gorąco polecam zabranie rąk do tablicy IO i wykorzystanie jej do rozwoju przed przejściem na tablicę niestandardową. Oprócz zapewnienia dostępu do każdego pojedynczego pinu CM oraz różnych złączy, płyta IO jest również potrzebna do flashowania wbudowanego eMMC. To jest coś, czego nie możesz zrobić z moją tablicą, chyba że najpierw dokonasz pewnych zmian w projekcie.

1 x Raspberry Pi Zero Camera Cable lub Compute Module Camera Adapter - W moim projekcie używam bardzo podobnego złącza kamery do tego używanego przez Compute Module IO Board i Raspberry Pi Zero. Tak więc, aby podłączyć kamerę, będziesz potrzebować kabla adaptera zaprojektowanego dla Pi Zero lub płytki adaptera kamery dołączonej do zestawu Compute Module Development Kit. O ile mi wiadomo, zakup płytki adaptera osobno jest dość drogi. Tak więc, jeśli tak jak ja, zdecydowałeś się kupić osobno CM i IO Board, aby zaoszczędzić trochę pieniędzy, radzę zamiast tego kupić kabel adaptera do aparatu przeznaczony dla Pi Zero.

1 x moduł kamery Raspberry Pi - testowałem płytkę tylko z oryginalnym modułem kamery 5MP, a nie nowszą wersją 8MP. Ale ponieważ ta pierwsza wydaje się działać dobrze, nie widzę powodu, dla której druga nie miałaby tego robić, ponieważ powinna być kompatybilna wstecz. Tak czy inaczej, wersję 5MP można obecnie znaleźć na eBayu za mniej niż 5 €, dlatego polecam ją kupić.

4 x żeńskie i żeńskie przewody połączeniowe – będziesz potrzebować co najmniej 4 do skonfigurowania złącza kamery na płycie IO, prawdopodobnie będziesz chciał uzyskać więcej. Nie są one potrzebne w przypadku płyty niestandardowej, ale mogą być przydatne, jeśli planujesz podłączyć dowolny sprzęt zewnętrzny za pośrednictwem nagłówka GPIO.

1 x kabel HDMI - postanowiłem użyć pełnowymiarowego złącza HDMI na mojej płycie, aby wyeliminować potrzebę stosowania przejściówek. Oczywiście, jeśli wolisz używać złącza mini lub nawet micro HDMI, możesz dostosować projekt do swoich potrzeb.

Zasilacz 1 x 5 V Micro USB - Twoja ładowarka do telefonu prawdopodobnie powinna działać dobrze w większości przypadków, o ile może zapewnić co najmniej 1 A. Pamiętaj, że jest to tylko ogólna wartość, twoje rzeczywiste wymagania dotyczące zasilania będą zależeć od sprzętu, który zdecydujesz się umieścić na niestandardowej płycie.

1 x USB Ethernet Adapter - Jeśli planujesz zainstalować lub zaktualizować praktycznie dowolny pakiet w swoim systemie, będziesz potrzebować przynajmniej tymczasowego dostępu do Internetu. Adapter Ethernet 2 w 1 i koncentrator USB to prawdopodobnie dobre połączenie, ponieważ masz dostępny tylko jeden port USB. Osobiście używam Edimax EU-4208, który działa po wyjęciu z pudełka z Pi i nie wymaga zewnętrznego zasilania, ale nie ma wbudowanego koncentratora USB. Jeśli szukasz tutaj adaptera USB Ethernet, możesz znajdź listę z tymi, które zostały przetestowane z Raspberry Pi.

Jeśli chcesz dodać więcej portów USB, a nawet Ethernet bezpośrednio na swojej niestandardowej płycie, sugeruję przyjrzenie się LAN9512 firmy Microchip. Jest to ten sam układ, który jest używany w oryginalnym Raspberry Pi Model B i oferuje 2 porty USB i 1 port Ethernet. Alternatywnie, jeśli potrzebujesz 4 portów USB, rozważ przyjrzenie się jego kuzynowi LAN9514.

1 x złącze DDR2 SODIMM RAM - To prawdopodobnie najważniejszy element całej płyty i prawdopodobnie jedyny, którego nie da się łatwo zastąpić. Aby uchronić Cię od kłopotów, część, którą powinieneś otrzymać, to TE CONNECTIVITY 1473005-4. Jest dostępny u większości głównych dostawców, w tym TME, Mouser i Digikey, więc nie powinieneś mieć problemu ze znalezieniem go. Bądź jednak bardzo ostrożny, sprawdź dokładnie i upewnij się, że zamawiana część to w rzeczywistości 1473005-4. Nie popełnij tego samego błędu co ja i zdobądź wersję lustrzaną, te złącza nie są tanie.

W przypadku pozostałych części, które zdecydowałem się umieścić na tablicy, możesz spojrzeć na BOM, aby uzyskać więcej informacji, próbowałem dołączyć łącza do arkuszy danych dla większości z nich.

Sprzęt do lutowania - Najmniejsze elementy na płycie to kondensatory odsprzęgające 0402, ale HDMI, kamera i złącza SODIMM mogą również stanowić wyzwanie bez żadnego powiększenia. Jeśli masz dobre doświadczenia z lutowaniem SMD, pomyślałeś, że nie powinno to być dużym problemem. Tak czy inaczej, jeśli zdarzy ci się mieć dostęp do mikroskopu, gorąco go polecam.

Krok 2: Flashowanie EMMC

Pierwszą rzeczą, którą musisz zrobić przed rozpoczęciem korzystania z modułu Compute Module, jest flashowanie najnowszego obrazu Raspbian Lite na eMMC. Oficjalna dokumentacja Raspberry Pi jest bardzo dobrze napisana i szczegółowo opisuje cały proces zarówno dla systemu Linux, jak i Windows. Z tego powodu opiszę bardzo krótko kroki, które należy wykonać w systemie Linux, aby mogły służyć jako szybkie odniesienie.

Przede wszystkim musisz upewnić się, że płyta IO jest ustawiona na tryb programowania, a moduł obliczeniowy jest włożony do złącza SODIMM. Aby ustawić płytkę w trybie programowania, przesuń zworkę J4 do pozycji EN.

Następnie będziesz musiał zbudować narzędzie rpiboot w swoim systemie, abyś mógł go użyć do uzyskania dostępu do eMMC. Aby to zrobić, potrzebujesz kopii repozytorium usbboot, które można łatwo uzyskać za pomocą git w następujący sposób:

git clone --depth=1 https://github.com/raspberrypi/usbboot && cd usbboot

Teraz, aby zbudować rpiboot, musisz upewnić się, że zarówno libusb-1.0-0-dev, jak i pakiety make są zainstalowane w twoim systemie. Zakładając więc, że korzystasz z dystrybucji opartej na Debianie, takiej jak Ubuntu, sudo apt aktualizacja && sudo apt zainstaluj libusb-1.0-0-dev make

Jeśli nie używasz dystrybucji opartej na Debianie, nazwa pakietu libusb-1.0.0-dev może być inna, więc upewnij się, że znasz jej nazwę w twoim przypadku. Po zainstalowaniu zależności kompilacji możesz zbudować plik binarny rpiboot, po prostu uruchamiając, robić

Po zakończeniu kompilacji uruchom rpiboot jako root i zacznie czekać na połączenie, sudo./rpiboot

Teraz podłącz płytę IO do komputera, podłączając kabel micro USB do portu USB SLAVE, a następnie podłącz zasilanie do portu POWER IN. Po kilku sekundach rpiboot powinien być w stanie wykryć moduł obliczeniowy i umożliwić dostęp do eMMC. Powinno to spowodować pojawienie się nowego urządzenia blokowego w /dev. Możesz użyć programu fdisk, aby pomóc Ci znaleźć nazwę urządzenia, sudo fdisk -l

Dysk /dev/sdi: 3,7 GiB, 3909091328 bajtów, 7634944 sektory

Jednostki: sektory 1 * 512 = 512 bajtów Rozmiar sektora (logiczny/fizyczny): 512 bajtów / 512 bajtów Rozmiar we/wy (minimalny/optymalny): 512 bajtów / 512 bajtów Typ etykiety dysku: dos Identyfikator dysku: 0x8e3a9721

Rozruch urządzenia Start Koniec Sektory Rozmiar Id Typ

/dev/sdi1 8192 137215 129024 63M c W95 FAT32 (LBA) /dev/sdi2 137216 7634943 7497728 3.6G 83 Linux

W moim przypadku był to /dev/sdi, ponieważ mam już kilka dysków podłączonych do mojego systemu, ale twój z pewnością będzie się różnił.

Po upewnieniu się, że znalazłeś poprawną nazwę urządzenia, możesz użyć dd, aby nagrać obraz Raspbian Lite na eMMC. Zanim to zrobisz, upewnij się, że w twoim systemie nie ma już żadnej partycji eMMC.

df-h

Jeśli znajdziesz jakieś odmontuj je w następujący sposób:

sudo umount /dev/sdXY

Teraz bądź bardzo ostrożny, użycie niewłaściwej nazwy urządzenia z dd może potencjalnie zniszczyć system i spowodować utratę danych. Nie przechodź do następnego kroku, chyba że masz całkowitą pewność, że wiesz, co robisz. Jeśli potrzebujesz więcej informacji, zapoznaj się z odpowiednią dokumentacją.

sudo dd if=-raspbian-stretch-lite.img of=/dev/sdX bs=4M && synchronizacja

Po zakończeniu poleceń dd i sync, powinieneś być w stanie odłączyć kartę IO od komputera. Na koniec nie zapomnij przesunąć zworki J4 z powrotem do pozycji DIS, a moduł obliczeniowy powinien być gotowy do pierwszego uruchomienia.

Krok 3: Pierwsze uruchomienie

Przed pierwszym uruchomieniem upewnij się, że podłączyłeś klawiaturę USB i monitor HDMI do płyty IO. Jeśli wszystko pójdzie zgodnie z oczekiwaniami, a Twoje Pi zakończy uruchamianie, ich przymocowanie pozwoli ci na interakcję z nim.

Gdy pojawi się monit o zalogowanie, użyj „pi” jako nazwy użytkownika i „raspberry” jako hasła, ponieważ są to domyślne dane logowania. Możesz teraz uruchomić niektóre polecenia, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami, tak jak zwykle robisz na dowolnym Raspberry Pi, ale nie próbuj jeszcze niczego instalować, ponieważ nadal nie masz połączenia z Internetem.

Ważną rzeczą, którą musisz zrobić przed wyłączeniem Pi, jest włączenie SSH, dzięki czemu możesz połączyć się z nim z komputera po następnym uruchomieniu. Możesz to zrobić bardzo łatwo za pomocą polecenia raspi-config, sudo raspi-config

Aby włączyć SSH, przejdź do Opcje interfejsu, wybierz SSH, wybierz TAK, OK i Zakończ. Jeśli zostaniesz zapytany, czy chcesz ponownie uruchomić, odrzuć. Po zakończeniu wyłączania Pi i po zakończeniu odłącz zasilanie.

wyłączanie sudo -h teraz

Następnie musisz nawiązać połączenie z Internetem za pomocą adaptera USB Ethernet, który powinieneś już mieć. Jeśli twój adapter ma również koncentrator USB, możesz go użyć do podłączenia klawiatury, jeśli chcesz, w przeciwnym razie możesz po prostu połączyć się z Pi przez SSH. Tak czy inaczej, przynajmniej na razie trzymaj monitor HDMI podłączony, aby upewnić się, że proces rozruchu zakończy się zgodnie z oczekiwaniami.

Pod koniec powinien również pokazać adres IP, który Twoje Pi otrzymało z serwera DHCP. Spróbuj użyć tego, aby połączyć się z Pi przez SSH.

ssh pi@

Po pomyślnym połączeniu z Pi przez SSH nie potrzebujesz już monitora i klawiatury, więc możesz je odłączyć, jeśli chcesz. W tym momencie powinieneś również mieć dostęp do Internetu ze swojego Pi, możesz spróbować pingować coś takiego jak google.com, aby to zweryfikować. Po upewnieniu się, że masz dostęp do Internetu, dobrze jest zaktualizować system uruchamiając, aktualizacja sudo apt i aktualizacja sudo apt

Krok 4: Konfiguracja kamery

Konfiguracja kamery
Konfiguracja kamery

Największą różnicą między zwykłą płytą Raspberry Pi a Compute Module jest to, że w przypadku tego ostatniego, oprócz włączenia kamery za pomocą raspi-config, potrzebujesz również niestandardowego pliku drzewa urządzeń.

Więcej informacji na temat konfiguracji modułu Compute Module do użytku z kamerą można znaleźć w dokumentacji. Ogólnie rzecz biorąc, złącze kamery między innymi zawiera również 4 piny kontrolne, które należy podłączyć do 4 pinów GPIO w module obliczeniowym, a decyzja, które z nich należy podjąć, podczas projektowania niestandardowej płytki należy do Ciebie.

W moim przypadku projektując płytkę wybieram CD1_SDA do przejścia do GPIO28, CD1_SCL do GPIO29, CAM1_IO1 do GPIO30 i CAM1_IO0 do GPIO31. Wybrałem te konkretne piny GPIO, ponieważ chciałem mieć 40-pinowe złącze GPIO na mojej płycie, które również zachowuje kompatybilność ze złączem GPIO zwykłych płyt Raspberry Pi. I z tego powodu musiałem się upewnić, że piny GPIO, których używam do aparatu, nie pojawiają się również w nagłówku GPIO.

Tak więc, chyba że zdecydujesz się wprowadzić zmiany w okablowaniu złącza kamery, potrzebujesz pliku /boot/dt-blob.bin, który mówi Twojemu Pi, aby skonfigurował GPIO28-31, jak opisano powyżej. Aby wygenerować plik dt-blob.bin, który jest plikiem binarnym, do skompilowania potrzebny jest plik dt-blob.dts. Aby to ułatwić, udostępnię mój własny dt-blob.dts, którego możesz użyć, jeśli zajdzie taka potrzeba.

Aby skompilować plik drzewa urządzeń, użyj kompilatora drzewa urządzeń w następujący sposób:

dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts

Nie jestem pewien dlaczego, ale powyższe powinno skutkować kilkoma ostrzeżeniami, ale dopóki plik dt-blob.bin zostanie wygenerowany pomyślnie, wszystko powinno być w porządku. Teraz przenieś wygenerowany plik dt-blob.bin do /boot, wykonując:

sudo mv dt-blob.bin /boot/dt-blob.bin

Powyższe prawdopodobnie da ci następujące ostrzeżenie, mv: nie udało się zachować własności dla '/boot/dt-blob.bin': operacja niedozwolona

To tylko mv narzeka, że nie może zachować własności pliku, ponieważ /boot jest partycją FAT, czego można się spodziewać. Być może zauważyłeś, że /boot/dt-blob.bin nie istnieje domyślnie, ponieważ Pi używa zamiast tego wbudowanego drzewa urządzeń. Dodanie własnego wnętrza /boot zastępuje jednak wbudowany i pozwala skonfigurować funkcję jego pinu tak, jak chcesz. Więcej informacji o drzewie urządzeń znajdziesz w dokumentacji.

Po wykonaniu tej czynności musisz włączyć kamerę, sudo raspi-config

Przejdź do Opcje interfejsu, wybierz Kamera, wybierz TAK, OK i Zakończ. Jeśli zostaniesz zapytany, czy chcesz ponownie uruchomić, odrzuć. Teraz wyłącz swoje Pi i odłącz zasilanie.

Po odłączeniu zasilania od płyty IO, za pomocą 4 zworek żeńskich do żeńskich podłącz styki GPIO28 do CD1_SDA, GPIO29 do CD1_SCL, GPIO30 do CAM1_IO1 i GPIO31 do CAM1_IO0. Na koniec podłącz moduł kamery do złącza CAM1 za pomocą płytki adaptera kamery lub kabla kamery zaprojektowanego dla Raspberry Pi Zero i podłącz zasilanie.

Jeśli wszystko działało zgodnie z oczekiwaniami po uruchomieniu Pi, powinieneś być w stanie korzystać z aparatu. Aby spróbować zrobić zdjęcie po połączeniu się z Pi przez uruchomienie SSH, raspistill -o test.jpg

Jeśli polecenie zakończy się bez błędów i zostanie utworzony plik test.jpg, oznacza to, że zadziałało. Jeśli chcesz rzucić okiem na zdjęcie, które właśnie zrobiłeś, możesz połączyć się ze swoim Pi przez SFTP i przesłać je do komputera.

sftp pi@

sftp> pobierz test.jpg sftp> wyjdź

Krok 5: Przejście z płyty IO na niestandardową płytkę drukowaną

Przejście z płyty IO na niestandardową płytkę drukowaną
Przejście z płyty IO na niestandardową płytkę drukowaną
Przejście z płyty IO na niestandardową płytkę drukowaną
Przejście z płyty IO na niestandardową płytkę drukowaną
Przejście z płyty IO na niestandardową płytkę drukowaną
Przejście z płyty IO na niestandardową płytkę drukowaną

Teraz, gdy skończyłeś z całą podstawową konfiguracją, możesz przejść do projektowania własnej płytki niestandardowej opartej na module obliczeniowym. Ponieważ będzie to Twój pierwszy projekt, gorąco zachęcam do pobrania mojego projektu i rozszerzenia go o dowolny dodatkowy sprzęt, który Ci się podoba.

Tył płyty ma dużo miejsca na dodawanie własnych komponentów, a przy stosunkowo niewielkich projektach prawdopodobnie nie będziesz musiał nawet zwiększać wymiarów płyty. Ponadto, w przypadku, gdy jest to samodzielny projekt i nie potrzebujesz fizycznego nagłówka GPIO na swojej płytce, możesz łatwo się go pozbyć i zaoszczędzić trochę miejsca na górnej stronie PCB. Nagłówek GPIO jest również jedynym komponentem, który jest kierowany przez drugą warstwę wewnętrzną, a usunięcie go całkowicie go uwalnia.

Powinienem zaznaczyć, że sam z powodzeniem zmontowałem i przetestowałem jedną z płyt i sprawdziłem, że wszystko, w tym kamera i wyjście HDMI, działa zgodnie z oczekiwaniami. Tak więc, o ile nie wprowadzisz żadnych dużych zmian w sposobie, w jaki pokierowałem wszystko, nie powinieneś mieć żadnych problemów.

Jeśli jednak musisz dokonać dużych zmian w układzie, pamiętaj, że większość śladów, które trafiają do złączy HDMI i kamery, jest poprowadzona jako pary różnicowe 100 Ohm. Oznacza to, że musisz wziąć to pod uwagę na wypadek, gdybyś musiał przesuwać je po planszy. Oznacza to również, że nawet jeśli usuniesz nagłówek GPIO ze swojego projektu, co oznacza, że teraz warstwy wewnętrzne nie będą zawierać żadnych śladów, nadal potrzebujesz 4-warstwowej płytki drukowanej, aby osiągnąć impedancję różnicową bliską 100 Ohm. Jeśli jednak nie zamierzasz korzystać z wyjścia HDMI i kamery, powinieneś być w stanie skorzystać z dwuwarstwowej płyty, pozbywając się ich i nieco obniżając koszt płyt.

Dla porównania, płytki zostały zamówione w ALLPCB o łącznej grubości 1,6 mm i nie prosiłem o kontrolę impedancji, ponieważ prawdopodobnie podniosłoby to dość koszt i chciałem również sprawdzić, czy to będzie miało znaczenie. Wybrałem również złoto immersyjne, aby ułatwić ręczne lutowanie złączy, ponieważ gwarantuje to, że wszystkie pady będą ładne i płaskie.

Zalecana: