Zespół Waveshare znany jest z dostarczania ciekawych rozwiązań DIY, bardzo często ułatwiających aplikację modułów SOM, w tym popularnego Raspberry Pi. W przypadku Compute Module 3, udostępnione były płytki Waveshare Compute Module IO Board Plus, Waveshare Compute Module IO Board wraz z wersją PoE i przeznaczoną do nich obudową, które zostały opisane w EP07/20. Takie podejście znacząco usprawniało aplikację CM3, gdzie korzystając z wersji IO Board z fabryczną obudową, dostajemy praktycznie gotowe i przetestowane urządzenie w przystępnej cenie, a całą energię projektanta wystarczy skupić na opracowaniu aplikacji lub ewentualnym doborze lub opracowaniu nakładki HAT. Jest to szczególnie ważne dla osób mniej zaawansowanych w elektronice lub dla zespołów przygotowujących rozwiązania jednostkowe, gdzie opracowanie własnego urządzenia jest po prostu nieuzasadnione ekonomicznie.
Jak należało się spodziewać, także CM4, które jest bardziej wymagające w aplikacji, doczekało się alternatywnego zestawu uruchomieniowego. O ile opracowana przez fundację płytka IO-Board, zapewnia szerokie możliwości rozbudowy oraz eksperymentów z CM4, to zbudowanie urządzenia na tej bazie bywa kłopotliwe, chociażby ze względu na jej spory rozmiar. Spośród opracowanych przez WS kilku typów płytek dla CM4, najbardziej zainteresowały mnie modele CM4-IO-BASE-Acce z rozmiarem i kształtem zbliżonym do Raspberry Pi 4. Po zapoznaniu się z bardzo skromną dokumentacją, a raczej z udostępnionym na stronie producenta schematem postanowiłem płytkę zakupić i przetestować.
Charakterystyka płytki CM4-IO-BASE-Acce
Wygląd płytki CM4-IO-BASE-Acce został pokazany na fotografii tytułowej. Jest dostępna w dwóch wersjach sprzętowych A i B oraz w kilku wariantach wyposażenia opcjonalnego. Wersja A nie ma wbudowanego zegara RTC i podtrzymującej baterii. Detaliczna cena płytki w najprostszej konfiguracji zaczyna się pod ok. 110 zł.
Płytka CM4-IO-BASE-Acce umożliwia bezpośrednie użycie następujących interfejsów:
- Ethernet 1GB RJ45,
- HDMI, pełnowymiarowe złącze typu A,
- HAT 40 pin, bez obsługi PoE,
- 2×USB2.0,
- SSD typu M2.M, obsługuje dyski w rozmiarze 2230, 2242,
- wyświetlacz z interfejsem DSI,
- 2×kamera z interfejsem CSI,
- zasilanie USB C,
- karta micro SD,
- wentylatora 5 V.
Dodatkowe interfejsy HDMI1 i 2×USB wyprowadzone są na złącza FPC wlutowane na dolnej stronie płytki (fotografia 1).
Jeżeli w naszej aplikacji chcemy skorzystać z dodatkowych interfejsów konieczny jest zakup płytki USB HDMI Adapter (fotografia 2) lub zestawu CM4-IO-BASE-Acce z dołączonym adapterem. Połączenie z płytką bazową realizowane jest za pomocą dostarczonych taśm elastycznych, a sygnały USB i HDMI wyprowadzone są na typowe złącza, co ułatwia korzystanie z nich.
Płytka dostępna jest w wykonaniach A i B, różniących się obecnością zegara czasu rzeczywistego PCF85063 i podstawki baterii CR1220. W obu wersjach zrezygnowano z wyprowadzenia interfejsu USB3.0 (układ mostka VL805 z Raspberry 4), a magistrala PCIe x1 doprowadzona jest do złącza M2.M i jest zastosowana do współpracy z dyskiem SSD NVMe w rozmiarze 2230 lub 2242 (czyli min z popularnymi dyskami z laptopów). Interfejs USB2.0 bazuje na 4-portowym hubie FE1.1S, w najprostszej możliwej aplikacji. Należy zwrócić uwagę, że nie zastosowano żadnego zabezpieczenia lub zarządzania zasilaniem dla urządzeń USB2.0. Jakiekolwiek zwarcie lub przeciążenie portów USB wpływa na główne zasilanie 5 V modułu CM4 i działanie całej płytki, a funkcję jedynego zabezpieczenia pełni zewnętrzny zasilacz systemu podłączony do USB C.
Interfejs Ethernet składa się z gniazda RJ45 i ma dodatkowe zabezpieczenie przepięciowe w postaci układów TPD4EUSB30. Niestety, ze względu na ograniczony rozmiar płytki złącze HAT IDC40 pozbawione jest dodatkowych 4 pinów odpowiedzialnych za współpracę z nakładkami PoE. CM4-IO-BASE-Acce nie jest zgodna z Raspberry Pi PoE+ HAT. Z interfejsem HAT wiąże się dodatkowy problem, jakim jest system odprowadzenia ciepła z CM4.
Niezależnie, czy skorzystamy z radiatora czy wentylatora, wysokość takiej kanapki skutecznie odcina nas od możliwości użycia GPIO bez dodatkowej przejściówki. Najprościej w charakterze przedłużki użyć „stackowalnej” wersji złącza IDC40 oraz odpowiednio dobranych na wynikową wysokość „kanapki” tulejek M2,5. Zwiększa to nieco wysokość finalnego rozwiązania, o czym należy pamiętać. W przypadku chłodzenia wymuszonego, płytka obsługuje tylko wentylatory 5 V – brak jest napięcia 12 V na płytce. Jako sterownik wentylatora zastosowano układ EMC2301 identyczny jak w CM4-IO Board. W aplikacji gdzie dostępne jest źródło zasilania 12 V DC, można spróbować przy pomocy przejściówki doprowadzić zasilanie bezpośrednio do wentylatora, a nadzór pozostawić układowi EMC2301, bez zmian lub wykorzystać przetwornicę podwyższającą 5 V/12 V. W trakcie pisania artykułu nie były dostępne wentylatory przeznaczone do CM4-IO-BASE-Acce, bezpieczniejsze wydaje się więc zastosowanie radiatora CM4-HEATSINK z wcześniejszymi uwagami dotyczącymi GPIO.
Płytka zasilana jest poprzez złącze USB C. Jest to tylko użycie interfejsu w trybie zgodności z USB, bez zarządzania zasilaniem. Do zasilania wymagany jest zasilacz 5 V o odpowiedniej wydajności, szczególnie, gdy intensywnie korzystamy z portów USB i interfejsu M2.M.
Płytka pozbawiona jest zabezpieczeń oraz wyłącznika w torze zasilania 5 V.
CM4-IO-BASE-Acce umożliwia zastosowanie modułów CM4 z wbudowaną pamięcią EMMc lub bez, współpracujących z wbudowanym gniazdem Micro SD i zewnętrzną kartą pamięci. Do programowania EMMc służy gniazdo zasilania USB C oraz przełącznik suwakowy BOOT, konfigurujący CM4 w tryb zapisu do EMMc. Płytkę uzupełniają diody sygnalizujące stan interfejsu M2, Ethernet i CM4. Kilka lutowanych zworek pozwala na wyłączenie interfejsów radiowych Wi-Fi i BT, zabezpieczenie zapisu pamięci EEPROM CM4, konfigurację napięć zasilania dla GPIO 1,8/3,3 V oraz RTC.
Dla osób zainteresowanych kompleksowym rozwiązaniem interesujący może być zestaw z płytką IO oraz zaprojektowana specjalnie dla modułu obudowa (fotografia 3). Niestety, nie mam możliwości sprawdzenia jej w praktyce, ale z załączonych przez producenta zdjęć można wywnioskować, że jakakolwiek nakładka HAT będzie wymagała podłączenia taśmą IDC40 i nie zmieści się w obudowie. Czyli obudowa będzie najbardziej użyteczna w sporej liczbie aplikacji, gdzie wymagane jest samo CM4 bez dodatkowych rozszerzeń. Uwzględniając wcześniejsze uwagi, płytka CM4-IO-BASE-Acce nie sprawia problemów podczas pracy.
Uruchomienie
Po podłączeniu do PC i ustawieniu przełącznika BOOT można bezproblemowo zainstalować system w pamięci EMMc (rysunek 1).
Po edycji pliku config.txt i załączeniu interfejsu USB2.0 przy pomocy wpisu:
oraz ponownym uruchomieniu systemu, poleceniem:
sprawdzamy poprawną inicjację huba FE1.1S (rysunek 2).
Kolejnym krokiem jest sprawdzenie interfejsu M2.M (dysk SSD instalujemy na wyłączonym zasilaniu!).
Poleceniem:
sprawdzamy obecność kontrolera NVMe (rysunek 3) natomiast poleceniem:
sprawdzamy obecność dysku NVMe (rysunek 4), który po zamontowaniu jest widoczny w systemie.
Podsumowanie
Pomimo opisanych ograniczeń (a raczej może cech), płytka jest bardzo ciekawą propozycją dla systemów multimedialnych bazujących na Raspberry Pi. Pełna obsługa interfejsów udostępnianych przez CM4 oraz dodatkowo wbudowane gniazdo M2.M znacząco upraszczają jej zastosowanie. Przystępna cena, kompaktowość rozwiązania oraz pewna możliwość wyboru akcesoriów ułatwiają dopasowanie do wymogów aplikacji. U mnie płytka zostaje na długo i będzie alternatywą dla CM4-IO Board w aplikacjach wymagających przechowywania większych ilości danych na dysku, zwalniając od stosowania kłopotliwych przejściówek USB. Łącząc ją z ekranem np.: 7inch HDMI LCD otrzymujemy gotowe urządzenie, które wystarczy „tylko” oprogramować.
Adam Tatuś, EP