Jak zacząć z STM32MP2? STM32MP257 Discovery Kit


Wstęp

Nowa płytka od STMicroelectronics, STM32MP257F-DK, trafiła na moje biurko. To mocna jednostka z dwurdzeniowym Cortex-A35 i dodatkowym Cortex-M33, oferująca sporo możliwości.

W tym krótkim wpisie pokażę, jak wgrać na nią oficjalny obraz systemu OpenSTLinux Starter Package, aby szybko zacząć pracę.

Więcej znajdziesz w materiale na YT:

Przygotowanie środowiska

Zanim podłączymy płytkę, potrzebujemy kilku narzędzi na naszym komputerze z Linuxem.

mkdir stm32mp25 && cd stm32mp25 
cp ~/Downloads/en.stm32cubeprg-lin-v2-18-0.zip  .
unzip en.stm32cubeprg-lin-v2-18-0.zip
  • Uruchom instalator:
./SetupSTM32CubeProgrammer-2.18.0.linux
  • Aby łatwo używać narzędzia z linii komend, dodajmy je do PATH. Najprościej stworzyć link symboliczny w /usr/bin (może wymagać sudo):
# Ścieżka może się różnić w zależności od Twojej instalacji! 
# Sprawdź, gdzie zainstalował się CubeProgrammer. 
ln -s /home/USER/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI /usr/bin/STM32_Programmer_CLI
  • libusb: Potrzebne do komunikacji z płytką przez USB w trybie DFU (Device Firmware Upgrade).
apt-get update sudo apt-get install libusb-1.0-0
  • Reguły udev: Aby system poprawnie rozpoznawał podłączoną płytkę.
    • Przejdź do katalogu z regułami w zainstalowanym CubeProgrammer:
# Ścieżka może się różnić! 
cd /home/USER/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules
  • Skopiuj reguły do systemowego katalogu udev:
cp *.* /etc/udev/rules.d/

Pobieranie i przygotowanie obrazu systemu

# Przejdź do swojego głównego katalogu roboczego cd ~/prv/stm32mp25 mkdir starter && cd starter 
cp ~/Downloads/en.FLASH-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05.tar.gz . 
# Rozpakuj archiwum (nazwa pliku będzie zależeć od wersji) 
gunzip en.FLASH-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05.tar.gz

tar -xvf en.FLASH-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05.tar
  • Po rozpakowaniu powstanie struktura katalogów. Najważniejszy dla nas będzie podkatalog images/stm32mp2 wewnątrz rozpakowanego folderu (np. stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05/images/stm32mp2). Znajdują się tam m.in.:
    • Pliki związane z procesem bootowania (TF-A, U-Boot, OP-TEE)
    • Obraz jądra Linux
    • Obraz systemu plików rootfs
    • Pliki FlashLayout (.tsv) – kluczowe dla procesu wgrywania, opisują układ partycji dla różnych konfiguracji i nośników (np. SD card, eMMC).

Przygotowanie sprzętu i wgrywanie obrazu

  • Ustaw tryb bootowania: Na płytce STM32MP257F-DK znajdź przełączniki DIP (SW1). Aby wymusić tryb DFU (wgrywanie przez USB), ustaw wszystkie przełączniki w pozycję OFF. Szczegóły znajdziesz w dokumentacji ST Wiki dla tej płytki (link w rozdziale Referencje)
  • Podłącz zasilanie: Użyj portu USB-C oznaczonego jako PWR. Zasilacz od Raspberry Pi 4B działa bez problemu.
  • Podłącz dane USB: Użyj drugiego portu USB-C i podłącz go do komputera kablem USB-C -> USB-A/C.
  • Sprawdź połączenie: Otwórz terminal i wpisz:
STM32_Programmer_CLI -l usb 
  • Powinieneś zobaczyć wykryte urządzenie USB (np. usb1). Jeśli nie, sprawdź reguły udev, libusb i połączenia kablowe.
  • Wgraj obraz: Przejdź do katalogu z obrazami i plikami dystrybucji:
# Ścieżka zależy od wersji i miejsca rozpakowania! 
cd ~/prv/stm32mp25/starter/stm32mp2-openstlinux-*/images/stm32mp2
  • Uruchom proces wgrywania, używając odpowiedniego pliku .tsv. Poniższy przykład wgrywa obraz optee na kartę SD:
STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp257f-dk-optee.tsv
  • Uwaga: Jeśli usb1 nie działa, spróbuj usb0 lub sprawdź wynik polecenia STM32_Programmer_CLI -l usb. Wgrywanie potrwa kilka minut.
  • Zakończenie: Po pomyślnym wgraniu zobaczysz komunikat typu:
Start operation done successfully at partition 0x13 Flashing service completed successfully

Pierwsze uruchomienie

  • Odłącz zasilanie i kabel USB-C danych.
  • Zmień tryb bootowania: Ustaw przełączniki DIP (SW1) z powrotem na domyślną konfigurację bootowania z nośnika, na który wgrałeś system (np. z karty SD – sprawdź w dokumentacji ST Wiki, często jest to ON OFF OFF OFF).
  • Podłącz UART: Aby zobaczyć konsolę szeregową podczas startu systemu, podłącz kabel USB-C z komputera do portu PWR/STLINK. Ten port zasili płytkę oraz zapewni połączenie UART przez wbudowany konwerter ST-LINK.
    • Uwaga: Korzystanie z zasilania przez port ST-LINK może powodować świecenie diod LED wskazujących na problem z zasilaniem (np. pomarańczowa LED). Wydaje się to normalne w tej konfiguracji. Jeśli potrzebujesz pełnej mocy, użyj zasilacza sieciowego.
  • Uruchom terminal szeregowy: Użyj minicom, screen lub putty na swoim PC, łącząc się z odpowiednim portem szeregowym (zazwyczaj /dev/ttyACMx, baud rate 115200).
  • Po podłączeniu zasilania powinieneś zobaczyć logi startowe U-Boota i Linuksa.

Podsumowanie i porównanie z Raspberry Pi

Start z STM32MP257 jest trochę trudniejszy niż z popularnym Raspberry Pi. Wymaga instalacji dedykowanych narzędzi, ręcznej konfiguracji trybu bootowania i wgrywania obrazu przez USB DFU. Dokumentacja ST, choć obszerna, czasami zawiera drobne nieścisłości lub niedopowiedzenia (np. który port USB-C służy do czego po flashowaniu, potencjalne problemy z rozpakowaniem archiwum tar jeśli użyje się złej komendy).

Jednak STM32MP2 oferuje sporo zalet:

  • Secure Boot
  • Koprocesor Cortex-M, przyda się do zastosowań real-time
  • Przycisk Reset: Przydatny 🙂
  • Pamięć eMMC: Wbudowana, szybsza i trwalsza niż typowa karta SD
  • Elastyczny bootflow: Większa kontrola nad bootem, możemy wybierać i eksperymentować
  • Bogate peryferia: WiFi, Bluetooth, Ethernet, HDMI, liczne GPIO (to ma też Raspberry)

Mimo początkowych trudności, STM32MP257 wydaje się bardzo obiecującą platformą dla bardziej zaawansowanych projektów wykorzystujących Embedded Linuxa.

Referencje

Oficjalna dokumentacja flashowania:

https://wiki.st.com/stm32mpu/wiki/STM32MP25_Discovery_kits_-_Starter_Package

Opis HW:

https://wiki.st.com/stm32mpu/wiki/STM32MP257x-DKx_-hardware_description#USB_Power-_ST-LINK_TypeC

Karta produktu:

https://www.st.com/en/evaluation-tools/stm32mp257f-dk.html


2 odpowiedzi do „Jak zacząć z STM32MP2? STM32MP257 Discovery Kit”

  1. Awatar sat2
    sat2

    Będzie film na YouTube?

    1. Awatar Karol

      Tak, dzisiaj po południu będzie wrzucony. Potem zaktualizuję treść posta.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *