Cześć!
Zarezerwujcie sobie kilka minut, a opiszę dlaczego warto używać mikrokontrolerów STM32 od ST Microelectronics – moich ulubionych!
Kwestia pierwsza: cena
Buszując po sklepach, być może cofnęło was, gdy zobaczyliście ceny niektórych modeli. 20? 30zł? Za sztukę? Są i takie. Mega szybkie, funkcjonalne i z ogromną ilością GPIO (uniwersalnych pinów wejścia/wyjścia). Ale warto też pamiętać, że jest ich w rodzinie cała masa, również takich tanich. Zawsze jako przykład podaję MCU STM32F030F4P6. Maleńka obudowa TSSOP20 zawiera w sobie aż 15 GPIO, a także 5 timerów + zegar czasu rzeczywistego, 12-bitowy ADC z 10 kanałowym multiplekserem oraz wbudowanym termometrem, I2C, UART, SPI i oczywiście 32-bitowy rdzeń ARM taktowany 64MHz. Robi wrażenie, prawda? A to wszystko za jedyne 3 złote 🙂
Kwestia druga: wybór
Decydując się na użycie STM’a w projekcie, otwiera się przede mną szeroki wachlarz przeróżnych serii STMów. Cube MX jest wyposażony w bardzo funkcjonalny selektor. Umożliwia wybranie rdzenia, serii, obudowy oraz peryferiów, których mamy kilkadziesiąt. Wybieramy też pamięć, ilość GPIO, EEPROM, pamięć flash, RAM, a także częstotliwość taktowania rdzenia.
Okej, przyjmijmy, że chcę mikrokontroler do zegarka, a więc wybieram rdzeń M0+, do tego 64kB flash na dużą bibliotekę wyświetlacza graficznego, a do tego zaznaczam też SPI do jego obsługi. Nie ma problemu, do wyboru nadal mam kilkadziesiąt modeli:
Kwestia trzecia: wbudowane wsparcie technologii bezprzewodowych
Kable powoli przechodzą w niepamięć. Wszystko komunikuje się ze sobą poprzez Bluetooth bądź WiFi. Możemy w projekcie oczywiście użyć modułu HC-05 lub też ESP. Ale po co zwiększać koszty, wymiar płytki i zapotrzebowanie na energię? Do STMów niedawno dołączyła seria WB, która potrafi się komunikować poprzez Bluetooth low energy oraz zigBee.
Kwestia czwarta: wydajność
Potrzebujesz prędkości? Obsługa wyświetlacza graficznego? Szybkie obliczenia zmiennoprzecinkowe? RTOS i dużo wątków? Obsługa wielu urządzeń? Ekstra!
Architertura ARM której używają układy od ST jest 32-bitowa. Oznacza to, że szerokość szyny danych łączących rdzeń z pamięcią to 32 linie. Układy te operują w jednym takcie procesora na danych 32 bitowych. Jeżeli to nie wystarczy, pamiętajmy o rdzeniach M7 które mogą pracować z prędkością nawet 480MHz (seria F7 oraz H7). 480 milionów pojedynczych operacji na sekundę to naprawdę dużo. Dla porównania: ATmega 328P kojarzona przede wszystkim z Arduino pracuje na architekturze AVR 8bit, a jej maksymalna częstotliwość taktowania to zaledwie 16MHz.
Dodatkowo używając STMa nie masz już wrażenia bycia zwykłym hobbystą. Są to układy używane na codzień w profesjonalnych projektach wielu dużych firm. Drony, sterowniki, urządzenia audio z najwyższej półki.
Kwestia piąta: dostępność płytek rozwojowych
Powiecie: ale te STMy takie małe, dostępne tylko dla profesjonalistów. Otóż nie! Firma ST wspiera również hobbystów i konstruktorów, oferując szeroką gamę płytek rozwojowych NUCLEO- surowych z MCU i zasilaniem, przystosowanych do pracy także z nakładkami do arduino (zgodność pinoutu oraz rozstawu).
Jeżeli to mało, warto rozważyć wybór płytki z serii DISCOVERY, wyposażonych w dodatkowe czujniki czy moduły.
Kupująć tego typu płytkę, mamy również ST-linka – oficjalny programator, którym można debugować oraz ładować program również do zewnętrznego mikrokontrolera, który znajduje się na naszej płytce 🙂
Mało? Na rynku jest też sporo nieoficjalnych płytek, spośród których sporą popularnością cieszą się BluePill oraz Black Pill.
Kwestia szósta: szybkie projektowanie
STMy to nie tylko zwykłe mikrokontrolery. Wraz nimi dostajemy takie narzędzia jak na przykład Cube MX, który pozwala na graficzną konfigurację pinoutu, oraz przeklikania timerów, przetworników czy wszelkiej komunikacji danych bez wielominutowego czy wielogodzinnego siedzenia z dokumentacją. Większość prostych rzeczy można zrealizować w ogóle bez otwierania dokumentacji!
Kwestia siódma: low power
W dobie urządzeń wearables, smartwatchy i wkładania elektroniki wszędzie gdzie się da, pojawia się problem poboru energii. Warto więc wspomnieć o seriach energooszczędnych. Te mikrokontrolery w trybie uśpienia pobierają kilka mikroamperów , mogąc przy tym liczyć czas i wybudzać się cyklicznie, lub też od przerwania. Nie ma problemu, żeby zrobić urządzenie, które na przykład monitoruje warunki pogodowe będąc zasilanym z pastylki 3V i pracując na niej kilka miesięcy.
Polecam w szczególności serię L oraz G0. Ta druga jest bardzo przyjazna domorosłym majsterkowiczom. Ma tylko jedną parę nóżek zasilających, co znacznie upraszcza projekt płytki PCB.
A Wy?
Jakich mikrokontrolerów używacie na codzień? Piszcie w komentarzach 🙂
Czy jesteś gotów przesiąść się z Malucha do Bentleya?
Jeżeli tak, to zapraszam na Nasz kurs programowania STMów, który rusza już wkrótce!
Ramzes
Kilka słów o autorze:
Bartosz „Ramzes” Pracz jest z wykształcenia humanistą, z zawodu konstruktorem elektroniki w branży oświetlenia LED, a z pasji programistą systemów wbudowanych z kilkoma większymi i mniejszymi projektami w portfolio. Oprócz pisania programów lubi także pisać dla Was ciekawe artykuły, oraz uczyć elektroniki wszystkich tych, którzy wykazują chęć rozwoju w tym kierunku. Prowadzący zajęć z podstaw elektroniki oraz programowania mikrokontrolerów ARM (STM32) oraz AVR (arduino). Jego pozostałe zainteresowania to webmastering, motoryzacja (w szczególności silniki i mechanika), jazda motocyklem, czytanie książek i jazda na łyżwach 🙂
Chwilowo jestem na etapie nauki lutowania, ale z czasem mam nadzieję na projektowanie prostych układów sterujących, a wtedy dobry mikrokontroler na pewno się przyda. Może z czasem zacznie iść mi lepiej.