Decydując się na pracę z mikrokontrolerami ARM stajemy przed wyborem producenta układów. Tak, bowiem ARM jest  firmą, która „jedynie” projektuje rdzenie mikroprocesorów oraz sprzedaje na nie licencje. Dosyć ciekawa konstrukcja, co nie? Ich rdzenie możemy aktualnie znaleźć we wszystkich urządzeniach, które używamy na co dzień takie, jak chociażby smartfony bez których aktualnie nie możemy żyć. Powstało wiele rodzin rdzeni ARMowych. W tej chwili liczą się dwie: Cortex-A oraz Cortex-M. „A” oznacza, że są to procesory do zastosowań aplikacyjnych(obsługa systemów operacyjnych). Są one wykorzystywane we wcześniej wspomnianych smartfonach, a także w mikrokomputerach typu Raspberry Pi. Nas natomiast interesuje rodzina Cortex-M z przeznaczeniem dla mikrokontrolerów. Wewnątrz tej rodziny mamy kilka typów rdzeni, które różnią się od siebie między innymi wydajnością. Dla nas są to rdzenie:

  • M0 – najtańsze rdzenie o małej wydajności.
  • M0+ – ulepszona wersja rdzenia M0 o zmniejszonym poborze mocy.
  • M3 – pierwszy historycznie rdzeń Cortex-M. Średnia wydajność.
  • M4 – mocny rdzeń z dodatkową jednostką służącą do obliczeń zmiennoprzecinkowych(FPU) czy obsługą instrukcji DSP.
  • M7 – najnowszy i najmocniejszy rdzeń Cortex-M. Prawdziwy potwór.

Mamy w czym wybierać, lecz z samym rdzeniem nic nie zwojujemy. Potrzebujemy mieć ten rdzeń opakowany w pamięci oraz interfejsy zewnętrzne. Obudowanie rdzenia tymi podzespołami i włożenie tego w jedną obudowę tworząc finalnie mikrokontroler zajmują się firmy specjalizujące się w układach scalonych. Są to m. in. Atmel, Cypress, Freescale, NXP no i nasze ST. Skoro jest tylu producentów to…

Dlaczego ST?

  1. Darmowe narzędzia do pisania kodu, jego kompilacji oraz flashowania MCU. ST dba o to, aby najważniejsze rzeczy były ogólnodostępne oraz darmowe. Jeśli chodzi o IDE, to polecam SW4STM32. Jest to zmodyfikowany na potrzeby ST popularny Eclipse.
  2. Dedykowane narzędzia od ST. Należy do nich m. in. generator szkieletu projektu STM32CubeMX. Świetne narzędzie przyśpieszające początkową pracę z mikrokontrolerem.
  3. Darmowe biblioteki do obsługi układów STM32HAL. Nie są idealne, bywają przerośnięte, ale spisują się świetnie w szybkim pisaniu. Pozwalają na szybki start bez zagłębiania się w tysiące stron dokumentacji. Oczywiście i tak jej nie ominiemy! Niestety wygoda idzie często kosztem wydajności, ale można to przełknąć.
  4. Darmowe biblioteki STM32LL. Niskopoziomowe biblioteki(Low Layer) do obsługi peryferiów. Ich główną zasadą jest – jedna funkcja zmienia tylko jeden rejestr. Tutaj bez znajomości procesora się nie obejdzie, ale za to optymalizacja prima sort.
  5. Większość pinów STM32 jest 5V tolerant. Co to oznacza? Nie musimy martwić się o konwersję napięć komunikując się z układami pracującymi na napięciu 5V. Należy sprawdzić czy układ zewnętrzny akceptuje wysoki poziom logiczny wystawiany przez STM32. Najczęściej będzie to 3.3V. Jeśli tak(a zazwyczaj tak jest), to żegnajcie konwertery napięć.
  6. Bogate portfolio rozmiarowe i zasobowe. Układów możemy szukać w prawie dowolnej obudowie. Te najpopularniejsze to TQFP 32, 48, 64, 100, 144 piny. Są nawet BGA. Każdy znajdzie coś dla siebie.
  7. Kompatybilność pinów w obrębie jednej obudowy w większości przypadków(boleśnie doświadczyłem jednego wyjątku). Jeżeli w trakcie programowania okaże się, że brakuje zasobów, nie ma większego problemu wstawić w to samo miejsce mocniejszy mikrokontroler.
  8. Ogromna ilość zestawów prototypowych. Uwielbiam te zestawy!
  9. Darmowy programator dołączany do każdej płytki prototypowej!

Rodziny mikrokontrolerow STM32

W całej gamie MCU firmy ST mamy kilka rodzin, które są pogrupowane według swoich możliwości. Poniższa grafika świetnie przedstawia wszystkie modele wraz z ich wydajnością oraz miejscem w szeregu.

Do wyboru mamy płytki deweloperskie oznaczone jako:

  • Discovery – rozbudowane – często z MCU o wysokiej wydajności – płyty z kilkoma układami zewnętrznymi. Układy jakie są montowane to akcelerometry, żyroskopy, mikrofony, wyświetlacze itd. Rzadko przeze mnie używane z racji tego, że nie zawsze potrzebuję tych układów, a potrafią przeszkadzać.
  • Nucleo – minimalistyczne płytki nieco przypominające Arduino. Znajduje się na nich na ogół tylko MCU razem z niezbędnymi elementami do prawidłowego działania oraz jedną diodą LED i przyciskiem. Wszystkie piny mikrokontrolera są wyprowadzone na goldpiny. To jest mój ulubiny wybór. Nucleo z kolei dzieli się na trzy rozmiary:
    • Nucleo-32 – wielkością zbliżone do Arduino mini oraz złącza są zgodne z nim. Małe, 32-pinowe MCU. Idealne do wpięcia na stałe w niewielki projekt.
    • Nucleo-64 – chyba najpopularniejszy rodzaj. MCU 64-pinowe. Oprócz goldpinów ze wszystkimi sygnałami posiada złącze zgodne Arduino Uno.
    • Nucleo-144 – największy z ekipy. Znajduje się na nim solidny kloc posiadający aż 144 piny i to wszystko jest wyprowadzone na goldpiny! Obok jest też złącze Arduino Uno. Dostępne jest USB OTG oraz tutaj ST pokusiło się tutaj o dorzucenie złącza Ethernet w niektórych wersjach.
  • Oprócz oryginalnych płytek ST na rynku możemy dostać wiele innych. Głównie jest to produkcja dalekowschodnia. Bardzo popularna jest płytka z STM32F103C8T6 w formie Arduino mini. Kosztuje niecałe dwa dolary!

Halo, halo! Ale co z tym programatorem?!

No jest! Na pokładzie każdej płytki deweloperskiej jest ST-LinkV2. O możliwościach tego układu opowiem kiedy indziej, gdyż nie służy on jedynie do programowania MCU. Z STlink komunikujemy się przez mini-USB. W zestawach znajdziemy go:

  • Discovery – Wmieszany w pozostałe elementy na PCB
  • Nucleo-32 – Na spodniej stronie PCB, również wmieszany w elementy.
  • Nucleo-64 – Górna część PCB. Tutaj – uwaga – jest on wyłamywalny. Po zaprogramowaniu ostatecznym, kiedy nie jest już potrzebny, możemy go oderwać od Nucleo i używać oddzielnie! Pozostałą część Nucleo można umieścić np. w projektowanym urządzeniu. Bomba, co nie?
  • Nucleo-144 – Identycznie jak w Nucleo-64.

Przyznaj, że wszystko to, co napisałem powyżej brzmi to przekonywująco. Mnie przekonali!

Moja kolekcja st

W swojej szafie posiadam kilka płytek na których pracuję oraz będą one podstawą wpisów na temat STM32.

  • Nucleo-32 z STM32L031K6T6
  • Nucleo-64 z STM32L053R8T6
  • Nucleo-64 z STM32F401RET6
  • Nucleo-64 z STM32L476RGT6U
  • Nucleo-144 z STM32F767ZIT6
  • Discovery z STM32F407VGT6
  • Chiński minimal dev kit z STM32F103C8T6
  • Kilka różnych luźnych MCU

Celowo nie pisałem o wadach rozwiązań ST. Zachęcam do kulturalnej dyskusji w komentarzach. Chętnie poznam Twoje zdanie na temat mikrokontrolerów ST. Pamiętaj, aby wypowiadać się poprawną polszczyzną, nie atakować rozmówców oraz nie przeklinać.


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Serwis wykorzystuje pliki cookies. Korzystając ze strony wyrażasz zgodę na wykorzystywanie plików cookies. więcej informacji

Wrażenie zgody na pliki Cookies jest konieczne, aby uzyskać najlepsze wrażenia z przeglądania strony. Jeżeli nadal nie wyraziłeś zgody na używanie plików Cookies, zaakceptuj poniżej klikając w przycisk "Akceptuj" na banerze.

Close