KursyPoradnikiInspirujące DIYForum

Kurs STM32 F4 – #3 – Sprzęt, konfiguracja środowiska

Kurs STM32 F4 – #3 – Sprzęt, konfiguracja środowiska

Rozpoczęcie programowania STM32 z użyciem bibliotek HAL oraz kreatora graficznego Cube nie jest możliwe bez odpowiedniego oprogramowania.

W tej części kursu przygotujemy sobie niezbędne narzędzia. Wcześniej omówimy jednak dokładnie zestaw Discovery, na którym będziemy pracować podczas kolejnych części kursu.

Płytka STM32F411E Discovery

W celu ułatwienia zapoznawania się z możliwościami swoich produktów, firma ST stworzyła dwie serie płytek rozwojowych: Nucleo oraz Discovery. O tej pierwszej więcej informacji znajdziecie w poprzednim kursie STM32 - opartym o biblioteki STD. Podczas tej serii zajmiemy się płytkami Discovery, a konkretnie tą z serii F4.

Gotowe zestawy do kursów Forbota

 Komplet elementów  Gwarancja pomocy  Wysyłka w 24h

Zestaw elementów do przeprowadzenia wszystkich ćwiczeń z kursu STM32 F4 można nabyć u naszego dystrybutora! Zestaw zawiera m.in. płytkę Discovery, wyświetlacz OLED, joystick oraz enkoder.

Zamów w Botland.com.pl »

Płytki rozwojowe z serii Discovery są bardzo tanią i przystępną formą dostarczenia mikrokontrolera w stanie umożliwiającym prawie natychmiastowe rozpoczęcie pracy.

Poza samym obiektem naszego zainteresowania, jakim jest mikrokontroler, na płytce znajduje się wiele przydatnych dodatków. Całość składa się na przyjazną platformę, skutecznie ułatwiającą wejście w świat programowania STM32.

Wyposażenie płytki Discovery STM32F411E

Na płytce o wymiarach 97×66 mm otrzymujemy całkiem pokaźny zestaw dodatkowych modułów, układów scalonych i złącz. Przyjrzyjmy się teraz im z bliska. Na poniższym zdjęciu zaznaczyłem najważniejsze elementy. Dalszy przegląd dokonany jest z góry na dół, od lewej do prawej.

STM32F4_Discovery_4

Najważniejsze elementy płytki Discovery. Foto: Botland.com.pl

Wbudowany programator ST-Link

Jednym z elementów wyposażenia każdej płytki Discovery jest programator/debugger ST-Link. Jest to urządzenie pozwalające na wgranie stworzonego wcześniej programu do mikrokontrolera oraz na podglądanie wnętrza układu podczas jego pracy.

STM32F4_Discovery_3

Sekcja programatora na płytce Discovery.

Część płytki widoczna na powyższym zdjęciu, to programator ST-Link. Kolorem pomarańczowym  zaznaczone jest gniazdo mini USB (opisane jako USB ST-LINK), przez które łączy się płytkę z komputerem podczas programowania układu.

Programowanie układów poza płytką

Bardzo przydatną funkcją zawartego tu programatora jest możliwość programowania układów zewnętrznych. Służy do tego zaznaczona na niebiesko listwa kołkowa (oznaczenie na płytce: SWD, listwa CN2), do której podpina się wyprowadzenia zewnętrznego mikrokontrolera, który ma zostać zaprogramowany. Aby przekierować programator na tę właśnie listwę, należy zdjąć obydwie zworki zaznaczone na fioletowo (listwa CN3).

Zaletą tego rozwiązania jest fakt, że tworząc własny projekt oparty na mikrokontrolerze STM32 nie musimy do niego dokupywać programatora. Dostajemy taki wraz z każdą z płytką Discovery.

Pomiar prądu pobieranego przez układ

Pod obszarem programatora kolorem brązowym zaznaczono zworkę odpowiadającą za zasilanie mikrokontrolera oraz wszystkich peryferiów na płytce (zworka JP2).

STM32F4_Discovery_5

Miejsce, w którym można dokonać pomiaru prądu.

Miejsce to służy do pomiaru prądu pobieranego przez układ podczas pracy. Po zdjęciu zworki można w odkryte goldpiny wpiąć amperomierz i tym samym wygodnie, bez mechanicznych ingerencji w płytkę, zmierzyć prąd. Informacje na temat pomiarów multimetrem opisane zostały w kursie elektroniki.

Dostępne przyciski

Na płytce znajdują się dwa przyciski, które zaznaczyłem kolorem żółtym. Przycisk po lewej ma kolor niebieski i podłączony jest do standardowego wyprowadzenia mikrokontrolera, co pozwala użytkownikowi na jego oprogramowanie. Przycisk znajdujący się po prawej ma kolor czarny i jest to przycisk resetu.

STM32F4_Discovery_5

Przycisk użytkownika oraz reset na płytce Discovery.

Wbudowane diody świecące (LED)

Pomiędzy przyciskami znajdują się cztery niewielkie fioletowe prostokąty. Są nimi zaznaczone diody świecące, oddane do użytku programisty.

Poza nimi, na płytce umieszczono jeszcze 4 inne LEDy, które pełnią funkcje informacyjne i użytkownik nie ma wpływu (a przynajmniej nie programowo) na ich działanie. Nie zostały one tu zaznaczone, ponieważ zajmiemy się nimi dokładniej podczas uruchamiania płytki.

STM32F4_Discovery_8

Cztery dostępne diody świecące.

Akcelerometr i magnetometr

Pomiędzy diodami LED, na czerwono zaznaczony jest trzyosiowy akcelerometr z magnetometrem. Z mikrokontrolerem komunikuje się za pomocą interfejsu I2C, a jego dokładniejszą specyfikację można znaleźć w dokumentacji modułu LSM303DLHC.

STM32F4_Discovery_9

Wbudowany akcelerometr z magnetometrem.

Żyroskop

Pod lewym przyciskiem widoczny jest kolejny układ scalony, zaznaczony szarym kwadratem. Jest to trzyosiowy czujnik prędkości kątowej, czyli inaczej żyroskop.

Do komunikacji z tym modułem użyty został interfejs SPI, a dokładniejsze informacje na jego temat znaleźć można w dokumentacji modułu L3GD20.

STM32F4_Discovery_7

Wbudowany żyroskop.

Cyfrowo-analogowy konwerter audio

Na prawo od żyroskopu, kolorem niebieskim zaznaczyłem CS43L22. Jest to przetwornik DAC pozwalający na generowanie sygnału dźwiękowego. Komunikacja z tym układem zrealizowana jest za pomocą protokołu I2S.

STM32F4_Discovery_6

Wbudowany konwerter cyfrowo-analogowy.

Zaraz pod tym układem znajduje się znaczących rozmiarów prostopadłościan, stanowiący wyjście układu DAC w postaci standardowego złącza audio jack 3.5mm.

Mikrofon

Ostatni wyróżniony układ (na fioletowo), to mikrofon. Po więcej szczegółów warto zajrzeć do dokumentacji modułu MP45DT02.

STM32F4_Discovery_11

Mikrofon wbudowany w płytkę Discovery.

Złącze micro USB

Na samym dole płytki, pomarańczowym kolorem zaznaczono kolejne złącze USB, tym razem w wersji micro. Wyprowadzenia tego złącza podłączone są do mikrokontrolera, pozwalając tym samym na wykorzystanie możliwości kontrolera USB będącego na wyposażeniu STM32.

STM32F4_Discovery_10

Kolejne gniazdo USB, tym razem micro.

Dzięki temu jesteśmy w stanie przesyłać dane za pomocą wirtualnego portu COM lub wgrywać program do mikrokontrolera z wykorzystaniem bootloadera. Oczywiście to tylko niektóre z zastosowań dostępnych dzięki zintegrowanemu kontrolerowi USB.

Podłączanie zewnętrznych elementów

Po bokach płytki znajdują się listwy typu goldpin, do których doprowadzono wszystkie linie mikrokontrolera. Dzięki temu można podłączyć zewnętrzne układy bezpośrednio do STM32.

Pozwala to na dołączenie do płytki praktycznie dowolnych układów, bez konieczności jakiejkolwiek mechanicznej ingerencji w postaci rozcinania ścieżek lub wlutowywania się w płytkę.

Mikrokontroler

Na sam koniec serce całej płytki Discovery - mikrokontroler STM32F411VET6. Na samym środku płytki, w 100 pinowej obudowie LQFP umieszczono  mikrokontroler z bardzo wydajnej rodziny F4. Informacje na temat wydajności układu warto porównać z pozostałymi STMami:

Porównanie wydajności rodzin STM32. Źródło: materiały prasowe STM32.

Porównanie maksymalnych wydajności rodzin STM32. Źródło: materiały prasowe STM32.

W poniższym zestawieniu postarałem się zebrać najbardziej interesujące informacje na jego temat:

  • rdzeń układu jest stworzony w architekturze ARM Cortex-M4 z jednostką wspierającą obliczenia zmiennoprzecinkowe (FPU),
  • maksymalna częstotliwość taktowania tego mikrokontrolera to 100 MHz,
  • wbudowane 512 Kb pamięci programu - pamięci Flash,
  • wbudowane 128 Kb pamięci danych - pamięci SRAM,
  • pełna gama peryferiów w postaci zaawansowanych timerów, przetworników ADC oraz interfejsów komunikacyjnych (I2C, I2S, SPI, USART, SDIO, USB),
  • mikrokontroler może być zasilany napięciem z zakresu 1.7 - 3.6V.
  • 77 na 81 portów IO deklarowane jest jako "5V-tolerant". Oznacza, że na te piny mikrokontrolera możemy bezpiecznie podać sygnał o wartości 5V.

Dzięki temu ostatniemu do mikrokontrolera można podłączyć np. konwerter UART/USB pracujący w standardzie napięciowym 0-5V.

Jak widać, niewielkich rozmiarów płytka Discovery daje użytkownikowi spore możliwości. Mając na wyposażeniu wydajny mikrokontroler, 9DOF IMU oraz układy audio pozwalające zarówno na pobieranie (mikrofon) jak i generowanie (przetwornik DAC) sygnału dźwiękowego, stanowi ciekawą platformę do nauki programowania mikrokontrolerów.

Na tym zakończymy ogólny przegląd płytki, na której będziemy pracować w ramach tego kursu. Wszystkie niezbędne szczegóły zostaną omówione przy okazji konkretnych zastosowań.

Oprogramowanie potrzebne do pracy z STM32

W tej części artykułu opisany zostanie proces instalacji głównych narzędzi, które będą pomagać nam podczas tworzenia aplikacji na mikrokontrolery STM32.

ST-Link Utility

Program dostarczony przez firmę ST. Pozwala on między innymi na testowanie poprawności instalacji sterowników programatora, wgrywanie programu oraz czyszczenie jego pamięci.

Aktualną wersję oprogramowania można uzyskać na stronie producenta – przycisk Get Software na dole strony (aby móc pobierać oprogramowanie ze strony ST musimy posiadać tam konto). Instalacja przebiega standardowo. Na samym końcu procesu powinien uruchomić się dodatkowy instalator sterowników do obsługi ST-Link. Należy je zainstalować.

Sprawdzenie poprawności działania sterowników

Aby przetestować poprawność instalacji sterowników należy wykonać poniższe działania.

Krok 1. Za pomocą złącza mini USB podłączamy płytkę Discovery do komputera.

Na prawo od złącza mini USB mała dioda LD2 z podpisem PWR informuje o obecności zasilania. Po podłączeniu powinna się świecić na czerwono.

Diody sygnalizujące pracę płytki.

Położenie diod sygnalizujących pracę płytki.

Dioda LD1 znajdująca się na lewo od złącza mini USB oznaczona jest napisem COM. Domyślnie świeci się na czerwono. Jej zadaniem jest informowanie o połączeniu pomiędzy płytką, a komputerem. Jeżeli komunikacja jest w toku, dioda zaświeci się na zielono.

Krok 2. Wchodzimy do menadżera urządzeń (prawy przycisk myszy na Mój Komputer > Menadżer urządzeń lub Mój komputer > Zarządzaj > Menadżer urządzeń).

Krok 3. W zakładce Urządzenia uniwersalnej magistrali szeregowej powinna widnieć pozycja o nazwie STM32 STLink.

Programator ST-Link wykryty przez system.

Programator ST-Link wykryty przez system.

Krok 4. Uruchamiamy program ST-Link Utility. Z menu wybierz opcję Target > Connect.

Panel główny programu ST-Link

Panel główny programu ST-Link

Krok 5. Jeżeli wszystko poszło dobrze, to naszym oczom powinien ukazać się taki obraz:

Ekran programu ST-Link Utility po poprawnym połączeniu z płytką Discovery

Ekran programu ST-Link Utility po poprawnym połączeniu z płytką Discovery


Interesujące będą tu dla nas dwie sekcje. Pierwsza znajduje się w prawym górnym rogu panelu. Znajdują się w niej informacje dotyczące podłączonego mikrokontrolera.

Drugie warte uwagi miejsce to znajdująca się na samym dole konsola. Najbardziej interesującą dla nas (na ten moment) informacją jest to, że mamy nieaktualny firmware w programatorze na płytce i należy go zaktualizować.

Krok 6. Wedle zaleceń wypisanych w konsoli, z paska menu należy wybrać:

ST-LINK > Firmware update > Device Connect

Prawdopodobnie wyświetli się komunikat, że programator nie jest w trybie Firmware Update i należy go zrestartować. Aby to zrobić, należy odłączyć płytkę od zasilania i podłączyć ponownie. Jeżeli się udało, panel powinien wyświetlać informacje jak na obrazku poniżej.

Panel aktualizacji firmware'u programatora.

Panel aktualizacji firmware'u programatora.

Po kliknięciu przycisku Yes aktualizacja powinna przebiec do końca bez żadnych problemów.

Krok 7. Odłączamy płytkę i podłączamy ponownie do komputera. Testujemy połączenie z ST-Link Utility. W konsoli nie powinna już wyświetlać się informacja o konieczności aktualizacji.

STM32CubeMX

Zapowiedziany w poprzednim artykule generator kodu od ST można zainstalować na dwa sposoby.

  1. jako osobny program,
  2. jako wtyczkę do Eclipse.

Różnica występuje tylko w okienkowości / modułowości, więc osobiście polecam zainstalować go na obydwa przedstawione sposoby i korzystać z tego wygodniejszego (dla Was).

cube_stm32

Jeśli ktoś jednak od razu wie, że chce korzystać z dodatku do Eclipse, może pominąć poniższą sekcję. Instalacja pluginu została omówiona niżej (w części dotyczącej SW4STM32).

Instalacja jako osobny program

  1. Instalator można pobrać ze strony producenta (tak jak poprzednio, na samym dole strony).
  2. Po rozpoczęciu instalacji może wyświetlić się komunikat o braku Javy w konkretnej wersji. Nie należy się przejmować sugerowanym numerem wersji, tylko zainstalować najnowszą dostępną ze strony, na którą prawdopodobnie przekieruje nas instalator.
  3.  Dokończyć instalację w standardowy sposób.

Instalacja w System Workbench for STM32

SW4STM32 jest nakładką na środowisko Eclipse. Pozwala na rozwijanie oprogramowania na mikrokontrolery z rodziny STM32.

Instalacja Eclipse

Jeżeli na Twoim komputerze jest już zainstalowany Eclipse, możesz pominąć tę sekcję.

  1. Pobieramy Eclipse w wersji odpowiadającej systemowi operacyjnemu. Oficjalne źródła można znaleźć na stronie środowiska (odpowiednią wersję można wybrać klikając w odnośniki z prawej strony podanej witryny).
  2. Po rozpakowaniu należy przenieść pliki w wygodne dla siebie miejsce (środowiska Eclipse nie trzeba instalować).
  3. Jeżeli Eclipse nie chce się uruchomić z powodu braku odpowiedniej wersji Javy, należy pobrać JDK w odpowiedniej dla systemu wersji i zainstalować. W moim przypadku (Windows 10x64) zainstalowanie najnowszej wersji rozwiązało problem.

Instalacja SW4STM32


Sposób 1 - dedykowany instalator

Tworzymy konto na stronie OpenSTM32 (bez konta nie będziemy mieli dostępu do niezbędnych części forum). Następnie z działu download pobieramy instalator odpowiadający posiadanej przez nas wersji systemu (nie przejmujemy się tym, że instalator jest tylko pod Windows 7 - działa również z W8 i W10). Instalacja powinna przebiec standardowo.

Sposób 2 - nakładka na Eclipse

Krok 1. Po uruchomieniu środowiska Eclipse wybieramy Help > Install New Software...

Krok 2. W nowym panelu wybieramy znajdujący się z prawej strony przycisk Add:

Panel dodawania nowego oprogramowania w środowisku Eclipse.

Panel dodawania nowego oprogramowania w środowisku Eclipse.

Krok 3. Okno które pojawi się następnie wypełniamy podanymi niżej danymi:

Dołączanie wtyczki SW4STM32 do Eclipse

Dołączanie wtyczki SW4STM32 do Eclipse

Krok 4. Dalej należy zaznaczyć pozycje External Tools oraz OpenSTM32Tools i kliknąć Next.

Elementy do instalacji w Eclipse.

Elementy do instalacji w Eclipse.

Krok 5. Instalator przeanalizuje wszystkie składniki i wyświetli nam komunikat o tym, że nie może zainstalować niektórych z nich, ponieważ nie są zgodne z wersją systemu (tak powinno być). Przeklikujemy się przez dalszą część instalacji, akceptujemy warunki licencyjne i czekamy na zakończenie instalacji.

Krok 6. Na końcu Eclipse zasugeruje restart programu. Po nim wszystko powinno już być gotowe. Jeżeli podczas całego procesu pojawiły się jakieś błędy, to warto zajrzeć na stronę OpenSTM32 po więcej informacji.

Plugin STM32CubeMX

W tej sekcji opisana została instalacja pluginu STM32CubeMX dla SW4STM32. Jeżeli postanowiłeś korzystać z samodzielnej instancji programu CubeMX, możesz pominąć tę sekcję.

  1. Pobieramy plugin ze strony producenta. Nie rozpakowujemy archiwum!
  2. Uruchamiamy środowisko Eclipse.
  3. Z belki głównego menu wybieramy Help > Install new software.
KursF4_3_9

Dodawanie nowego oprogramowania do Eclipse.

  • W nowym panelu wybieramy Add.
  • W kolejnym oknie klikamy Archive.
Dodawanie pluginu z pobranego archiwum.

Dodawanie pluginu z pobranego archiwum.

  • Teraz należy odnaleźć na dysku i wybrać pobrane wcześniej archiwum.
  • Potwierdzamy poprawność przyciskiem Ok.
  • W panelu dodawania nowego oprogramowania powinna pojawić się pozycja STM32CubeMX_Eclipse_Plugin. Należy ją zaznaczyć jak poniżej:
KursF4_3_11

Panel dodawania nowego oprogramowania.

  • Przeklikujemy resztę instalacji, zgadzając się po drodze na warunki licencyjne.
  • Restartujemy Eclipse.
  • Otwieramy zakładkę Window > Open Perspective > Other:
KursF4_3_13

Otwieranie panelu wyboru perspektyw.

Jedną z możliwych do wybrania perspektyw powinna być STM32CubeMX:

Wybór perspektywy STM32CubeMX

Wybór perspektywy STM32CubeMX.

Podsumowanie

W tej części kursu dokonaliśmy przeglądu wyposażenia płytki STM32F411E-Discovery, na której będziemy pracować w trakcie trwanie kursu. Zainstalowaliśmy także podstawowe oprogramowanie przydatne podczas pracy z mikrokontrolerami STM32.

W następnym artykule nauczymy się generować kod z programu STM32CubeMX, importować go do Eclipse'a oraz wgrywać tak stworzony program na płytkę Discovery. Tym samym napiszemy swój pierwszy program z wykorzystaniem bibliotek HAL! Jeśli nie zaopatrzyliście się jeszcze w elementy, to teraz jest ostatni moment na zakup zestawu - dalsza nauka bez równoległych testów praktycznych nie będzie miała sensu!

Nawigacja kursu

Dzięki za uwagę! Mam nadzieję że udało się Wam zainstalować wszystkie potrzebne programy bez większych problemów. W razie problemów, piszcie w komentarzach!

Autor kursu: Bartek (Popeye) Kurosz
Redakcja: Damian (Treker) Szymański

Cube, discovery, F4, HAL, kompilator, kurs, kursSTM32F4, stm32

Trwa ładowanie komentarzy...