STM32MP1 i OpenSTLinux – #1 – Informacje wstępne

Wprowadzenie.

W ostatnim czasie stałem się posiadaczem płytki STM32MP135F-DK, która jest tak zwanym jednopłytkowym komputerem (single-board computer SBC) podobnym do popularnego Raspberry Pi. Dla przypomienia Single-Board Computer (SBC) to komputer zbudowany na jednej płytce drukowanej (PCB), która zawiera wszystkie niezbędne komponenty komputerowe, takie jak procesor, pamięć, wejścia/wyjścia (I/O), oraz interfejsy komunikacyjne. Tego typu płytki możecie nabyć w sklepie https://sklep.msalamon.pl/

Zakres artykułu.

  • Więcej o rodzinie STM32MP1 i zestawie STM32MP135F-DK
  • STM32MP135F-DK wady i zalety
  • Porównanie STM32MP135F-DK z Raspberry Pi 5
  • OpenSTLinux a STM32MP135F-DK
  • Prezentacja zestawu STM32MP135F-DK​
  • Źródła

Więcej o rodzinie STM32MP1 i zestawie STM32MP135F-DK

STM32MP1 to rodzina mikroprocesorów SoC (System-on-Chip) opracowana przez firmę STMicroelectronics. Jak możemy przeczytać na stronie producenta, portfolio mikroprocesorów STM32MP1 opiera się w dwóch głównych gałęziach:

  • STM32MP13x – w szczególności pomaga optymalizować zużycie energii, obniżać koszty, oferuje certyfikowane zabezpieczenia dla systemów opartych na Linux, bare metal lub RTOS na poziomie podstawowym,
  • STM32MP15x – oferuje heterogeniczne przetwarzanie, aby wspierać aplikacje działające na Linuxie oraz aplikacje czasu rzeczywistego.

Zestaw STM32MP135F-DK jak już możemy się domyślić, wykorzystuje mikroprocesory z gałęzi STM32MP13x. Umożliwia użytkownikowi rozwijanie aplikacji przy użyciu oprogramowania STM32 MPU OpenSTLinux Distribution. Co warto zaznaczyć, zestaw ten posiada wyświetlacz LCD z panelem dotykowym, funkcje Wi‑Fi® i Bluetooth® Low Energy oraz moduł kamery CMOS 2-megapikselowej.

Szczegółowy opis zestawu STM32MP135F-DK:

  • STM32MP135FAF7 MPU z procesorem Arm® Cortex®‑A7 32-bitowym o częstotliwości 1 GHz, w obudowie TFBGA320,
  • ST PMIC STPMIC1,
  • 4-Gbit DDR3L, 16-bit, 533 MHz,
  • 4,3-calowy wyświetlacz LCD o rozdzielczości 480×272 pikseli z panelem dotykowym pojemnościowym i interfejsem RGB,
  • Moduł kamery CMOS UXGA 2-megapiksele (w zestawie) z deserializatorem MIPI CSI-2® / SMIA CCP2,
  • Wi‑Fi® 802.11b/g/n,
  • Bluetooth® Low Energy 4.1,
  • Podwójny Ethernet 10/100 Mbit/s (RMII) zgodny z IEEE-802.3u, jeden z obsługą Wake on LAN (WoL),
  • Hub USB Host z 4 portami,
  • USB Type-C® DRP oparty na urządzeniu STM32G0,
  • 4 diody LED dla aplikacji użytkownika,
  • 4 przyciski (2× użytkownik, tamper, reset),
  • 1 przycisk wybudzania wake-up,
  • Złącza znajdujące się na płytce:
    • Moduł rozszerzenia kamery z podwójnym torem MIPI CSI-2®,
    • 2× Ethernet RJ45,
    • 4× USB Type-A,
    • USB Micro-B,
    • USB Type-C®,
    • Gniazdo na kartę microSD™,
    • Rozszerzenie GPIO,
    • Wejście zasilania 5 V / 3 A USB Type-C®,
    • VBAT dla zasilania awaryjnego,
  • Układ pomiaru prądu na płycie,
  • Debugger/programator STLINK-V3E na płycie z możliwością ponownego enumerowania USB: pamięć masowa, wirtualny port COM i port debugowania.

STM32MP135F-DK wady i zalety

Przed zakupem warto przyjrzeć się głównym wadą i zaletą zestawu STM32MP135F-DK.

Zalety:

  • Dwurdzeniowy procesor ARM Cortex-A7 o częstotliwości 1 GHz zapewnia dużą moc obliczeniową do różnych zastosowań,
  • Wsparcie dla Linuxa: OpenSTLinux zapewnia bogate środowisko programistyczne z szeroką gamą narzędzi i bibliotek,
  • Liczne złącza: Ethernet, USB Type-A, USB Type-C, microSD, GPIO, co umożliwia łatwe podłączanie różnych urządzeń i modułów,
  • Wyświetlacz LCD z panelem dotykowym: 4,3-calowy wyświetlacz z panelem dotykowym zapewnia interaktywne środowisko użytkownika,
  • Wi-Fi i Bluetooth Low Energy: Umożliwia bezprzewodową komunikację, co jest kluczowe w aplikacjach IoT i mobilnych,
  • Bezpieczny rozruch (Secure Boot): Zapewnia, że tylko autoryzowane oprogramowanie może być uruchamiane,
  • Funkcje kryptograficzne: Zabezpieczenie danych za pomocą sprzętowych funkcji kryptograficznych,
  • Wbudowany ST-LINK: Umożliwia łatwe debugowanie i programowanie, co przyspiesza proces rozwoju aplikacji,
  • Optymalizacja zużycia energii: Zoptymalizowane zarządzanie energią, co jest korzystne dla aplikacji zasilanych bateryjnie.

Wady:

  • Wysoka złożoność systemu: Dwurdzeniowa architektura oraz bogactwo funkcji mogą stanowić wyzwanie dla początkujących użytkowników i wymagać większej wiedzy technicznej,
  • Cena: Zestaw może być droższy w porównaniu do innych prostszych platform rozwojowych, co może być barierą dla hobbystów i małych projektów,
  • Ograniczenia w ilości RAM: W porównaniu do niektórych bardziej zaawansowanych mikroprocesorów, ilość dostępnej pamięci RAM może być ograniczona, co wpływa na zdolność do uruchamiania bardziej wymagających aplikacji,
  • Możliwe problemy z odprowadzaniem ciepła: Przy intensywnym użytkowaniu może być konieczne dodatkowe chłodzenie, aby zapobiec przegrzewaniu się,
  • Brak możliwości łatwej modernizacji: Zintegrowana natura SBC oznacza, że modernizacja poszczególnych komponentów jest trudna lub niemożliwa.

Podsumowując STM32MP135F-DK to potężny i wszechstronny zestaw rozwojowy, idealnie nadaje się do szerokiego zakresu aplikacji od IoT po automatyzację przemysłową. Zestaw oferuje wiele funkcji, lecz jego złożoność i koszt mogą stanowić pewną barierę dla mniej zaawansowanych użytkowników.

Porównanie STM32MP135F-DK z Raspberry Pi 5

Zapewne wiele osób, jak i mnie zastanawiało się, jak wypada STM32MP135F-DK na tle najnowszej wersji Raspberry Pi. W tym celu, poniżej przygotowałem porównanie obu płytek SBC.

Architektura i Wydajność

  1. Procesor:
    • STM32MP135F-DK – Dwurdzeniowy procesor ARM Cortex-A7 o częstotliwości 1 GHz.
    • Raspberry Pi 5 – Czterordzeniowy procesor ARM Cortex-A76 o częstotliwości 2,0 GHz
  2. Pamięć RAM:
    • STM32MP135F-DK – Wbudowana pamięć RAM – 4 Gbit DDR3L.
    • Raspberry Pi 5 – Modele z różnymi opcjami pamięci RAM: 2 GB, 4 GB, 8 GB LPDDR4-3200 SDRAM

Funkcje i Interfejsy

  1. Interfejsy Komunikacyjne:
    • STM32MP135F-DK – Oferuje 2× Ethernet (RMII), 4× USB Type-A, USB Type-C, microSD, GPIO, Wi-Fi i Bluetooth Low Energy.
    • Raspberry Pi 5 – 1× Gigabit Ethernet, 2× USB 3.0, 2× USB 2.0, 2× micro-HDMI, USB Type-C (zasilanie), microSD, GPIO, Wi-Fi 802.11ac, Bluetooth 5.0.
  2. Wyświetlacz i Kamera:
    • STM32MP135F-DK – Zintegrowany wyświetlacz LCD z panelem dotykowym i moduł kamery CMOS 2-megapikselowej.
    • Raspberry Pi 5 – Wspiera zewnętrzne moduły wyświetlaczy i kamer (np. kamery Raspberry Pi HQ Camera), ale nie są one wbudowane w podstawowy zestaw.
  3. Debugowanie i Programowanie:
    • STM32MP135F-DK – Wbudowany ST-LINK do debugowania i programowania.
    • Raspberry Pi 5 – Brak wbudowanego debuggera, ale wsparcie dla zewnętrznych narzędzi do debugowania.

Oprogramowanie i Ekosystem

  1. System Operacyjny:
    • STM32MP135F-DK – OpenSTLinux (oparty na Yocto Project) oraz wsparcie dla RTOS, np. FreeRTOS i Microsoft Azure RTOS.
    • Raspberry Pi 5 – Raspberry Pi OS (Raspbian) – zoptymalizowany Linux, wspiera także Ubuntu, Windows 10 IoT Core
  2. Ekosystem i Wsparcie Społeczności:
    • STM32MP135F-DK – Rozbudowany ekosystem STMicroelectronics z dokumentacją i wsparciem technicznym. Mniejsza społeczność użytkowników.
    • Raspberry Pi 5 – Ogromna społeczność, szeroki zakres zasobów, dokumentacji, projektów i wsparcia.

Zastosowania

  1. STM32MP135F-DK:
    • Zastosowania przemysłowe – Idealny do aplikacji IoT, automatyki przemysłowej, wymagających bezpieczeństwa i niskiego zużycia energii.
    • Czas rzeczywisty – Wsparcie dla RTOS, odpowiedni do aplikacji embedded z wymaganiami czasu rzeczywistego.
  2. Raspberry Pi 5:
    • Edukacja i Hobby – Świetny wybór dla edukacji, projektów DIY, mediów domowych, serwerów domowych.

Osobiście uważam, że wybór zależy od celu, do jakiego ma służyć płytka. W przypadku, jeżeli chcemy zacząć przygodę z układami SBC, gdzie realizujemy projekt hobbistyczny, wówczas preferowałbym zakup Raspberry Pi ze względu na większość dostępność różnych materiałów oraz większą społeczność. Natomiast jak już myślimy nad poważnymi zastosowaniami w przemyśle, to wydaje mi się, że powinniśmy wybrać płytkę STM32MP135F-DK.

Należy jeszcze zaznaczyć, że produkt STM32MP nie ma na celu konkurować z Raspberry Pi. Aplikacje gdzie STM32MP został już użyty to: terminale płatnicze, gdzie wymagany jest wysoki poziom zabezpieczeń, automatyzacja przesyłu, gdzie wymagana był szerszy zakres temperaturowy pracy, infrastruktura ładowania pojazdów elektrycznych EV,  gdzie poza wyższym poziomem zabezpieczeń wymagane było zapewnienie szybkiego transferu danych.

OpenSTLinux a STM32MP135F-DK

We wstępnych informacjach warto też napisać parę zdań, czym jest OpenSTLinux. OpenSTLinux to otwarta dystrybucja systemu operacyjnego Linux opracowana przez STMicroelectronics, zaprojektowana specjalnie do pracy z mikroprocesorami STM32MP1. Dystrybucja ta jest oparta na projekcie Yocto Project, co zapewnia dużą elastyczność i możliwość dostosowania do różnych zastosowań wbudowanych.

Cechy OpenSTLinux

  1. Podstawa na Yocto Project – Yocto Project to struktura do tworzenia własnych, dostosowanych do potrzeb dystrybucji Linuxa. OpenSTLinux korzysta z tego projektu, aby zapewnić elastyczność i możliwość dostosowania systemu operacyjnego do specyficznych wymagań aplikacji wbudowanych.
  2. Wsparcie dla STM32MP1 – OpenSTLinux jest zoptymalizowany do pracy z mikroprocesorami STM32MP1, zapewniając wsparcie dla ich funkcji sprzętowych, takich jak interfejsy komunikacyjne, peryferia, i zarządzanie energią.
  3. Zintegrowane narzędzia deweloperskie – Dystrybucja zawiera pełen zestaw narzędzi deweloperskich, w tym kompilatory, debugery, oraz narzędzia do budowania i konfiguracji systemu.
  4. Wsparcie dla heterogenicznej architektury – Dzięki wsparciu dla rdzeni Cortex-A7 oraz Cortex-M4, OpenSTLinux umożliwia tworzenie aplikacji, które wykorzystują obydwa rdzenie do realizacji zadań wymagających dużej mocy obliczeniowej oraz zadań czasu rzeczywistego.
  5. Kompatybilność z STM32Cube – OpenSTLinux integruje się ze środowiskiem STM32Cube, które oferuje biblioteki HAL (Hardware Abstraction Layer) i middleware, ułatwiając programowanie aplikacji na STM32MP1.
  6. Bezpieczeństwo i aktualizacje – OpenSTLinux zapewnia funkcje bezpiecznego rozruchu (secure boot) i aktualizacji oprogramowania, co jest kluczowe dla aplikacji wymagających wysokiego poziomu bezpieczeństwa.

Zalety OpenSTLinux

  1. Elastyczność i Dostosowywalność – Dzięki bazie na Yocto Project, OpenSTLinux można łatwo dostosować do specyficznych potrzeb aplikacji, eliminując zbędne komponenty i minimalizując zużycie zasobów.
  2. Wsparcie dla Złożonych Aplikacji – Możliwość wykorzystania zarówno Linuxa na rdzeniach Cortex-A7, jak i RTOS na rdzeniu Cortex-M4, pozwala na tworzenie zaawansowanych, heterogenicznych aplikacji wbudowanych.
  3. Stabilność i Wsparcie Długoterminowe – OpenSTLinux jest regularnie aktualizowany i wspierany przez STMicroelectronics, co zapewnia długoterminową stabilność i wsparcie techniczne.
  4. Szerokie Zasoby Deweloperskie – Dostęp do bogatej dokumentacji, przykładów kodu, oraz wsparcia społeczności i partnerów ST, co ułatwia rozwój i debugowanie aplikacji.
  5. Wsparcie dla Przemysłu 4.0 i IoT – OpenSTLinux został zaprojektowany z myślą o aplikacjach przemysłowych i IoT, oferując funkcje bezpieczeństwa i zarządzania energią niezbędne w tych dziedzinach.

Zastosowania OpenSTLinux

  1. Automatyka Przemysłowa – Dzięki wsparciu dla funkcji czasu rzeczywistego i licznych interfejsów komunikacyjnych, OpenSTLinux jest idealny do sterowania maszynami, systemów SCADA, i robotyki.
  2. Inteligentne Miasta i Domy – OpenSTLinux wspiera aplikacje IoT, takie jak inteligentne oświetlenie, zarządzanie energią, systemy bezpieczeństwa, i urządzenia domowe.
  3. Elektronika Konsumencka – Oferuje wsparcie dla zaawansowanych urządzeń konsumenckich, takich jak smartfony, tablety, i urządzenia multimedialne.
  4. Systemy Medyczne – Dzięki wysokiemu poziomowi bezpieczeństwa i stabilności, OpenSTLinux może być używany w urządzeniach medycznych do monitorowania i diagnostyki.
  5. Telekomunikacja – Zastosowanie w urządzeniach sieciowych, takich jak routery, bramki sieciowe, i punkty dostępowe, dzięki zaawansowanym funkcjom sieciowym.

Podsumowując, OpenSTLinux to elastyczna dystrybucja Linuxa, zaprojektowana specjalnie do pracy z mikroprocesorami STM32MP1, dzięki swojej bazie na Yocto Project, wsparciu dla heterogenicznej architektury, oraz szerokiemu ekosystemowi narzędzi deweloperskich, możemy stwierdzić, że OpenSTLinux stanowi idealne rozwiązanie dla zaawansowanych aplikacji wbudowanych, przemysłowych oraz IoT.

Prezentacja zestawu STM32MP135F-DK

Poniżej przedstawiam zdjęcia, jak wygląda zestaw w rzeczywistości.

Źródła

Autor artykułu
Dominik Bednarski

One Reply to “STM32MP1 i OpenSTLinux – #1 – Informacje wstępne”

  1. Glowna zaleta STM32MP1 vs Raspberry PI jest wbudowanie rdzeni real time ARM Cortex M4 w procesor. Dzieki temu czesc zadan moze byc wykonywana przez procesor czasu rzeczywistego tam gdzie zalezy nam na determinizmie, a czesc zadan przez kontroler performance (A7). RPI pozbawione jest rdzeni real time. Dodatkowo MP1 wspiera natywnie typowe standardy mikrokontrolerowe np. CAN bus, a przy RPI trzeba uzyc konwertera SPI na CAN.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.