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.

Skomentuj Karol Anuluj pisanie odpowiedzi

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