Wykorzystanie skalowalnych mikrokontrolerów do osiągnięcia elastyczności projektowania
W niniejszym artykule omówiono kryteria, które należy wziąć pod uwagę przy doborze grupy mikrokontrolerów MCU, na przykładzie cech grupy STM32H7. Przedstawiono również płytki rozwojowe i narzędzia dostępne dla mikrokontrolerów MCU STM32H7 oraz objaśniono, jak rozpocząć projekty z wykorzystaniem tej infrastruktury.
Ponieważ zaawansowane funkcje, takie jak sztuczna inteligencja (AI) oraz złożone, a bogate w grafikę interfejsy człowiek-maszyna (HMI) stają się coraz bardziej powszechne w zastosowaniach, projektanci produktów poszukują bardziej wydajnych mikrokontrolerów (MCU). Jednak od projektantów oczekuje się również tworzenia produktów zoptymalizowanych pod względem kosztów, które nie zawierają tych efektownych funkcji. Te sprzeczne wymagania sprawiają, że konieczny jest wybór mikrokontrolera MCU, który można łatwo skalować w celu spełnienia różnych wymagań rynkowych.
Rosnące tempo innowacji zwiększa tę presję. Wymagania dotyczące zastosowań mogą ulec nieoczekiwanym zmianom, dlatego niezbędny jest łatwy dostęp do alternatywnych mikrokontrolerów MCU. Należy również wziąć pod uwagę ich technologiczną ponadczasowość oraz możliwość ponownego wykorzystania. Możliwość ponownego wykorzystania elementów w innych projektach pozwala uzyskać znaczne oszczędności czasu i kosztów.
Jednym ze sposobów sprostania tym wyzwaniom jest wybór grupy mikrokontrolerów MCU z szeroką gamą opcji. Dobrym przykładem są urządzenia STM32H7 firmy STMicroelectronics. W grupie tej można znaleźć zarówno 32-bitowe mikrokontrolery MCU klasy podstawowej, jak i dwurdzeniowe mikrokontrolery MCU z bogatymi zestawami funkcji.
W niniejszym artykule omówiono kryteria, które należy wziąć pod uwagę przy doborze grupy mikrokontrolerów MCU, na przykładzie cech grupy STM32H7. Przedstawiono również płytki rozwojowe i narzędzia dostępne dla mikrokontrolerów MCU STM32H7 oraz objaśniono, jak rozpocząć projekty z wykorzystaniem tej infrastruktury.
Czynniki decydujące o elastyczności i skalowalności grupy mikrokontrolerów MCU
Podczas poszukiwania elastycznej grupy mikrokontrolerów MCU należy wziąć pod uwagę wiele czynników. Szczególnie ważna jest dostępność wariantów produktów w szerokim zakresie poziomów parametrów działania i mocy. Preferowana grupa mikrokontrolerów MCU powinna zawierać warianty w szerokim zakresie częstotliwości zegara oraz rdzenie zoptymalizowane pod kątem różnych celów. Na przykład urządzenie Arm® Cortex®-M4 zapewnia niską moc, natomiast Arm Cortex-M7 zapewnia wysokie parametry działania.
W grupie powinny znajdować się mikrokontrolery MCU z podstawowymi możliwościami przetwarzania i warianty o rozszerzonych możliwościach. Wiele zastosowań wymaga ochrony danych i bezpiecznej komunikacji. W takich przypadkach niezbędne są takie funkcje jak szyfrowanie sprzętowe, bezpieczne uruchamianie i akceleratory kryptograficzne. Również w przypadku zastosowań wymagających dużej ilości danych, kluczowe znaczenie mają cyfrowe procesory sygnałów (DSP) i instrukcje zmiennoprzecinkowe.
Grupa mikrokontrolerów MCU powinna również oferować szeroki zakres pamięci RAM i pamięci flash, aby obsłużyć wszelkie zastosowania, od prostych, aż po wymagające rozbudowanego oprogramowania lub przechowywania danych. Mikrokontrolery MCU powinny posiadać interfejsy pamięci zewnętrznej do zastosowań przekraczających możliwości pamięci wewnętrznej, aby zapewnić niezbędną skalowalność.
Wreszcie, grupy mikrokontrolerów MCU z większą liczbą opcji peryferiów mogą być stosowane w bardziej zróżnicowanych zastosowań. Istotne jest, aby upewnić się, że grupa mikrokontrolerów MCU zawiera warianty z zaawansowanymi wejściami-wyjściami, takimi jak USB, Ethernet, Bluetooth i Wi-Fi, ponieważ dodanie tych interfejsów w ramach modernizacji w późniejszych projektach może być trudne. Idealnie byłoby, gdyby wybrana grupa oferowała kompatybilność wtyków w całym asortymencie, umożliwiając późniejsze przejście na wyższy lub niższy model bez konieczności przeprojektowywania płytek drukowanych.
Z punktu widzenia oprogramowania, cała grupa mikrokontrolerów MCU powinna umożliwiać obsługę przez narzędzia rozwojowe. Aby przyspieszyć rozwój, powinien istnieć spójny interfejs programowania aplikacji (API) oraz solidny zestaw bibliotek, oprogramowania pośredniczącego i systemu operacyjnego czasu rzeczywistego (RTOS).
STM32H7: studium przypadku pod kątem uniwersalności
Przykładem grupy mikrokontrolerów MCU, która spełnia wspomniane kryteria jest seria STM32H7 firmy STMicroelectronics. Jak przedstawiono w tabeli 1, zapewnia ona wysoką skalowalność, a jej asortyment opiera się na procesorze Arm Cortex-M7 i obejmuje zarówno podstawowe, jak i zaawansowane mikrokontrolery MCU. Omawiana seria obejmuje cztery linie produktów, z których każda została zoptymalizowana pod kątem innych zastosowań.
Tabela 1: najważniejsze zalety czterech serii STM32H7. (Źródło tabeli: autor, na podstawie materiału źródłowego firmy STMicroelectronics)
Linia Value jest dostępna z prędkościami od 280 do 550MHz i zawiera 128kB wbudowanej pamięci flash oraz 1MB RAM. Posiada ona obsługę różnorodnych interfejsów komunikacyjnych i rozszerzeń pamięci zewnętrznej, stanowiąc ekonomiczne rozwiązanie dla systemów zorientowanych na wysokie parametry działania. Jednym z urządzeń, jakie w niej znajdziemy, jest mikrokontroler MCU STM32H750VBT6 dostarczany w obudowie 100-LQFP o wymiarach 14 x 14mm.
Linia Single-Core również działa z prędkością od 280 do 550MHz. Zapewnia ona do 2MB pamięci flash i do 1,4MB pamięci RAM, nadając się do zastosowań wymagających rozbudowanych interfejsów użytkownika i sterowania w czasie rzeczywistym. Jednym z przykładowych urządzeń tej linii jest mikrokontroler MCU STM32H743IIK6, dostarczany w obudowie 201-UFBGA 10 x 10mm.
Linię Dual-Core wyposażono w dodatkowy rdzeń Arm Cortex-M4, zoptymalizowany pod kątem sprawności. Wbudowany zasilacz impulsowy (SMPS) zwiększa sprawność energetyczną. Inne zaawansowane peryferia to m.in. wyświetlacz TFT-LCD, MIPI-DSI oraz sprzętowy kodek JPEG. Typowym przykładem z tej linii jest mikrokontroler MCU STM32H747AII6, dostarczany w obudowie 169-UFBGA 7 x 7mm.
Linia BootFlash wyróżnia się wysokimi parametrami działania, osiągając prędkości do 600MHz. Została zaprojektowana do obsługi zastosowań czasu rzeczywistego z wykonywaniem kodu na miejscu (XiP) i jest wyposażona w pamięć rozruchową 64kB oraz 620kB pamięci RAM. Ponadto niektóre modele z tej linii są wyposażone w opcjonalny procesor graficzny (GPU) NeoChrom, zapewniający lepszą akcelerację grafiki. Typowym urządzeniem z tej linii jest mikrokontroler MCU STM32H7R3Z8J6 w obudowie 10 x 10 mm 144-UFBGA.
Korzyści z kompatybilności z grupami STM32F4 oraz STM32F7
Grupa STM32H7 należy do szerszej gamy mikrokontrolerów MCU firmy STMicroelectronics i posiada kompatybilność wtyków z siostrzanymi grupami STM32F4 oraz STM32F7 w przypadku najpopularniejszych obudów. Wszystkie wspomniane mikrokontrolery MCU bazują na rdzeniach Arm Cortex-M i mają podobne peryferia oraz układy wtyków GPIO. Cechy wspólne ułatwiają projektantom migrację między różnymi mikrokontrolerami MCU bez wprowadzania znacznych zmian w sprzęcie. Ta kompatybilność pozwala skrócić czas prac rozwojowych i obniżyć koszty modernizacji produktu lub projektowania nowych produktów w oparciu o różne możliwości każdej grupy.
Ponadto wszystkie mikrokontrolery MCU są obsługiwane przez ten sam ekosystem rozwojowy oprogramowania, włączając w to STM32CubeMX - na potrzeby konfiguracji i generowania kodu inicjującego oraz STM32CubeIDE - na potrzeby prac rozwojowych i debugowania. Ta kompatybilność zapewnia, że komponenty oprogramowania, oprogramowanie pośredniczące i kod aplikacji mogą być ponownie wykorzystywane w projektach, w których planuje się użycie dowolnej ze wspomnianych grup, co jeszcze bardziej skraca cykl rozwojowy.
Pierwsze kroki z mikrokontrolerami MCU z serii STM32H7
Pierwsze kroki z mikrokontrolerami MCU STM32H7 wymagają wykonania kilku kluczowych operacji oraz efektywnego wykorzystania płytek rozwojowych i narzędzi. Poniższy przewodnik pokazuje, jak rozpocząć prace rozwojowe z tymi zaawansowanymi mikrokontrolerami.
1. Wybór płytki rozwojowej
Ilustracja 1: płytka rozwojowa NUCLEO-F767ZI stanowi prosty i elastyczny punkt wyjściowy do eksperymentów. (Źródło ilustracji: STMicroelectronics).
Ilustracja 2: płytka ewaluacyjna STM32H745I-DISCO oferuje bogaty zestaw zasobów sprzętowych. (Źródło ilustracji: STMicroelectronics)
Ilustracja 3: zrzut ekranu zintegrowanego środowiska deweloperskiego (IDE) STM32H7. (Źródło ilustracji: STMicroelectronics)
Ilustracja 4: płytka OpenMV4 CAM H7 przeznaczona jest do systemów wizyjnych. (Źródło ilustracji: Seeed Technology Co. Ltd.)
Ilustracja 5: płytka Nicla Vision ABX00051 pomaga deweloperom w ewaluacji różnych czujników obrazu. (Źródło ilustracji: Arduino)
Idealne na początek zestawy badawcze są dostarczane ze zintegrowanym debuggerem/programatorem i zwykle zawierają różne wbudowane diody LED, klawisze, czujniki i opcje łączności. Płytki Nucleo, takie jak NUCLEO-F767ZI (ilustracja 1), zapewniają dobrą równowagę między elastycznością a przystępnością cenową. Są one kompatybilne z Arduino Uno, co ułatwia rozbudowę, a także posiadają interfejs STLINK do użycia z debuggerami/programatorami.
Płytki ewaluacyjne oferują najbardziej rozbudowany zestaw peryferiów i opcji połączeń, umożliwiając testowanie wszystkich funkcji. Na przykład zestawy badawcze STM32H745I-DISCO (ilustracja 2) oraz STM32H750B-DK pozwalają na szybką ewaluację różnych interfejsów, dzięki następującej charakterystyce:
- Wyświetlacz LCD 4,3 cala (in.) z interfejsem RGB i panelem dotykowym
- Zgodność Ethernet z normą IEEE-802.3-2002
- Zasilanie PoE (Power over Ethernet)
- Interfejs USB OTG FS
- Kodek audio SAI
- Jeden mikrofon cyfrowy ST-MEMS
- Pamięć flash typu NOR: 2 × 512 Mbit Quad-SPI
- 128Mb SDRAM
- 4GB wbudowanej pamięci eMMC
- 2 × FD CAN
- Zgodność z nakładkami Arduino
- Wbudowany debugger/programator STLINK-V3E z funkcją ponownego wyliczania USB: pamięć masowa, wirtualny port COM oraz port debugowania
2. Konfiguracja narzędzi programowych
Dla swoich mikrokontrolerów MCU firma STMicroelectronics oferuje zintegrowane środowisko deweloperskie (IDE) (ilustracja 3). Zawiera ono kompilator, debugger i konfigurator do generowania kodu inicjującego i konfiguracji peryferiów.
3. Nauka i eksperymentowanie
Następnie warto zapoznać się z dokumentacją. Doskonałym punktem wyjścia jest podręcznik użytkownika płytki rozwojowej oraz odpowiedni podręcznik referencyjny STM32H7. Dokumenty te dostarczają ważnych informacji na temat architektur mikrokontrolera MCU, konfiguracji peryferiów, multipleksera wtyków i charakterystyk sprzętowych.
Skutecznym sposobem na poznanie tych narzędzi jest eksperymentowanie z przykładowymi projektami. Firma STMicroelectronics oferuje szereg przykładowych projektów dla różnych mikrokontrolerów MCU STM32. Przykłady te mogą służyć jako świetny punkt wyjścia do zrozumienia sposobu korzystania z różnych funkcji mikrokontrolera MCU.
Dodatkowe wsparcie może zapewnić społeczność deweloperów. Wykorzystanie zasobów takich jak forum ST Community, samouczki i filmy wideo dostarczają rozwiązań typowych problemów i stanowią źródło inspiracji do projektów.
4. Prace rozwojowe i debugowanie
Zintegrowane środowisko deweloperskie (IDE) zapewnia wszystko, co jest potrzebne do rozpoczęcia pisania, kompilowania i debugowania kodu. Wchodzący w skład zintegrowanego środowiska deweloperskiego (IDE) konfigurator można wykorzystać do inicjowania peryferiów i konfiguracji oprogramowania pośredniczącego. Zintegrowany interfejs debuggera/programatora STLINK płytki rozwojowej umożliwia debugowanie w czasie rzeczywistym. Problemy można zidentyfikować za pomocą punktów przerwania, obserwując zmienne i przechodząc stopniowo przez kod.
5. Rozbudowa projektu
Za pomocą płytek rozszerzeń można dodawać takie funkcje, jak łączność lub czujniki do płytek Discovery i Nucleo. Po osiągnięciu żądanej funkcji za pomocą płytek rozwojowych, można zaprojektować niestandardową płytkę drukowaną, wykorzystując schematy jako odniesienie. Jednym z przykładów płytki niestandardowej jest platforma kamery OpenMV4 CAM H7 (ilustracja 4) firmy Seeed Technology Co., Ltd. Wykorzystuje ona jednordzeniowe urządzenie STM32H743.
Innym przykładem jest płytka Nicla Vision ABX00051 (ilustracja 5) firmy Arduino, która wykorzystuje dwurdzeniowe urządzenie STM32H747.
Podsumowanie
Dobór mikrokontrolera MCU w projekcie produktu ma kluczowe znaczenie, biorąc pod uwagę rozbieżne potrzeby zaawansowanych funkcjo i optymalizacji kosztów. Seria STM32H7 firmy STMicroelectronics jest znakomitym przykładem tego, że wybór odpowiedniej grupy mikrokontrolerów MCU może zapewnić skalowalne, elastyczne rozwiązanie, które zaspokaja obecne i przyszłe potrzeby.
Źródło: Wykorzystanie skalowalnych mikrokontrolerów do osiągnięcia elastyczności projektowania
Kontakt w Polsce: poland.support@digikey.pl
Autor: Rolf Horn
Rolf Horn, Applications Engineer at DigiKey, has been in the European Technical Support group since 2014 with primary responsibility for answering any Development and Engineering related questions from final customers in EMEA, as well as writing and proof-reading German articles and blogs on DK’s TechForum and maker.io platforms. Prior to DigiKey, he worked at several manufacturers in the semiconductor area with focus on embedded FPGA, Microcontroller and Processor systems for Industrial and Automotive Applications. Rolf holds a degree in electrical and electronics engineering from the university of applied sciences in Munich, Bavaria and started his professional career at a local Electronics Products Distributor as System-Solutions Architect to share his steadily growing knowledge and expertise as Trusted Advisor.
Hobbies: spending time with family + friends, travelling in our VW-California transporter and motorbiking on a 1988 BMW GS 100.
Zapraszamy na TEK.day Gdańsk, 26 września 2024. Zapisz się już dziś!