- Zasilanie: 6…12 V DC/300 mA.
- Mikrokontroler STM32F103.
- Programowanie pamięci Flash za pomocą UART lub JTAG.
- 8 diod LED (D1…8).
- Przyciski multipleksowanej klawiatury S1…12.
- Przełącznik S13 montowany na rozłącznym gnieździe J5.
- Alfanumeryczny, 2-liniowy wyświetlacz LCD.
- Sygnalizator (buzzer).
- Potencjometr R9 do testowania przetwornika A/D.
Istnieje wiele rodzin mikrokontrolerów wytwarzanych przez wielu producentów, więc zanim rozpoczniemy naukę warto rozważyć czy opłaca się inwestować swój czas i środki w poznanie mikrokontrolerów STM32. Opinii na ten temat można poszukać chociażby w Internecie. Ja zwrócę uwagę na kilka „za” i „przeciw”, tak aby początkujący mogli sobie wyrobić własny pogląd.
Za poznaniem STM32 przemawiają:
- Stale powiększająca się rodzina mikrokontrolerów i skalowalność jej członków. Mikrokontrolery STM to zarówno niewielkie, wyposażone w niezbędne peryferia, 20-wyprowadzeniowe układy, jak i te ze 176 wyprowadzeniami o dużej mocy obliczeniowej. Ponieważ są wyposażone w ten sam rdzeń ARM Cortex-Mx, oprogramowanie napisane dla „mniejszego” STM łatwo daje się przenieść i uruchomić na „większym”. Dla użytkownika różnice sprowadzają się do liczby portów i dostępnych bloków peryferyjnych.
- Duże możliwości. Mikrokontrolery STM32 mają szybki, 32-bitowy rdzeń. Zależnie od podrodziny producent – firma STMicroelectronics – wyposaża je w różne bloki funkcjonalne: układy czasowo-licznikowe, zegar RTC, interfejsy I2C, SPI, UART, przetworniki A/C i D/A, sprzętowe wsparcie dla Ethernetu, modułów kamer i inne.
- Dostępność kompilatorów – zarówno komercyjnych z ograniczeniami w okresie próbnego użytkowania, jak i bezpłatnych, wolnych od ograniczeń. Możliwość korzystania z bibliotek zgodnych z CMSIS (Cortex Microcontroller Software Interface Standard) ułatwiających i ujednolicających sposób pisania oprogramowania.
- Dobra dokumentacja, liczne przykłady oprogramowania, literatura także w języku polskim.
- Dostępność u wielu dystrybutorów.
Przeciw zastosowaniu STM32 przemawiają:
- Zasilanie napięciem z zakresu 1,8…3,6 V, co zmusza do przemyślenia aplikacji, w których stosowane są również starsze układy zasilane napięciem +5 V.
- Dla efektywnego programowania konieczna jest znajomość języka C.
Od czego zacząć?
Aby rozpocząć praktyczne poznawanie STM32 jest niezbędny sprzęt i oprogramowanie narzędziowe. Sprzęt to przede wszystkim płytka z mikrokontrolerem STM32, pozwalająca na jego programowanie i dołączanie sterowanych lub nadzorowanych obwodów do portów i interfejsów. To zadanie spełnia nasz Panel Edukacyjny. Jest alternatywą dla podobnych płytek, jak choćby układów uruchomieniowych Discovery sygnowanych przez firmę STMicroelectronics, producenta mikrokontrolerów. Panel Edukacyjny jest łatwy w budowie i wygodny w użyciu, co ma ogromne znaczenie dla osób dopiero rozpoczynających naukę programowania mikrokontrolerów STM32.
W pamięci Flash mikrokontrolerów STM32 oprogramowanie można zapisywać na co najmniej dwa sposoby: poprzez port szeregowy UART lub za pomocą interfejsu JTAG. Panel umożliwia skorzystanie z obydwu sposobów. Zamontowany na płytce konwerter USB/UART pozwala na dołączenie do portu USB komputera i w ten sposób, za pomocą programu narzędziowego, można zapisać plik wynikowy do pamięci Flash mikrokontrolera. Ma to jednak sens przy oprogramowaniu albo bardzo prostym, albo już sprawdzonym, którego nie trzeba testować. W każdym innym wypadku warto zaopatrzyć się w dodatkowy programator, dołączany do gniazda JTAG na płytce Panelu. Może to być na przykład dostępny w handlu programator zgodny z firmowym ST-Link/V2. Jest to mała płytka ze złączem pozwalającym na bezpośrednie umieszczenie w gnieździe JTAG. Programator jest połączony kablem z portem USB komputera. W takiej konfiguracji oprogramowanie narzędziowe uruchomione na komputerze może nie tylko zapisywać pamięć Flash, ale także debugowanie, a więc nadzór nad uruchomionym na mikrokontrolerze programem, co ułatwia wychwycenie jego błędów. Użytkownik w każdej chwili może np. zatrzymać wykonywanie programu, podejrzeć wartości umieszczone w używanych zmiennych, zmienić je, a następnie wznowić działanie programu. Możliwość debugowania, którą daje programator, znacznie usprawnia i przyśpiesza testowanie nowego kodu.
Poznając STM-y poza sprzętem potrzebujemy trochę dodatkowego oprogramowania narzędziowego i dokumentacji. Niektóre rzeczy są tylko przydatne inne po prostu niezbędne.