W artykule prezentujemy budowę i możliwości nowej wersji płytki iNEMO firmy STMicroelectronics. Zamontowane na niej sensory, wśród których są m.in. żyroskopy, akcelerometr i magnetometr, dobitnie pokazują ogromne możliwości współczesnych układów MEMS.
Autor: Krzysztof Paprocki
Komunikacja mikrokontrolerów STM32 z pamięciami DataFlash
Komunikacja pomiędzy układami scalonymi w systemach mikroprocesorowych/mikrokontrolerowych cieszą się wciąż niesłabnącym zainteresowaniem. W artykule przedstawiamy komunikację mikrokontrolera z rodziny STM32F107 z szeregową pamięcią DataFlash.
Obsługa interfejsu CAN w mikrokontrolerach STM32
Magistrala CAN jest zbudowana z dwóch przewodów, oznaczonych symbolami CANH (zazwyczaj czerwony) i CANL. Przesyłana informacja jest kodowana sygnałem różnicowym. Gdy pomiędzy dwoma urządzeniami nie występuje zbyt duża różnica potencjałów mas (mniejsza od 7 V według normy), można wtedy pominąć przewód wspólny, dzięki czemu interfejs fizyczny staje się faktycznie dwuprzewodowy.
Funkcje API w obsłudze przerwań
Aby system mikroprocesorowy poprawnie radził sobie z zewnętrznymi zdarzeniami muszą być one obsługiwane za pomocą przerwań. Ma to szczególne znaczenia dla zadań krytycznych, w których nie może być mowy o zbyt dużych opóźnieniach w wykonaniu owego zadania, ani tym bardziej o pominięciu zdarzenia. Często nie zauważa się tego problemu, ponieważ wydaje się, że na przykład cykliczne sprawdzanie w pętli stanu danego wejścia jest wystarczające. Niestety takie podejście prędzej czy później powoduje generowanie błędów w pracy systemu. Jeżeli mamy do czynienia z projektem hobbistycznym, to nie jest to specjalnie dotkliwe, jednakże w przypadku rozwiązań komercyjnych nie można już sobie na takie błędy pozwolić.
Obsługa FAT w mikrokontrolerach STM32 – obsługa kart
Współcześnie najpopularniejsze i najbardziej uniwersalne są karty SD (Secure Digital). Standard obejmuje karty o pojemności do 4 GB, a jego rozsfzerzenie, czyli SDHC (Secure Digital High Capacity), aż do 32 GB. Standard kart SD został opracowany przez trzy firmy: Matsushita, SanDisk i Toshiba. Pierwsze nośniki danych tego typu pojawiły się pod koniec 2000 roku. Początkowo dokumentacja stfandardu SD była dosyć trudno dostępna, jednak sytuacja uległa zmianie wraz z nadejściem roku 2006, kiedy to stały się dostępne informacje m.in. na temat interfejsu SDIO, co w efekcie pozwoliło na implementację w mikrokontrolerach sprzętowych sterowników kart SD. Przedstawiciele najbardziej zaawansowanej grupy układów z rodziny STM32 mają wfbudowany właśnie taki sterownik.
Biblioteki CMSIS dla STM32 ver. 3.1.0
Do mikrokontrolerów STM32 producent dostarcza kompletne biblioteki zgodne z zaleceniami CMSIS (Cortex Microcontroller Software Interface Standard).
Tajniki Cortex-M3 – tryby pracy rdzenia
Rdzeń Cortex-M3 może pracować wykonując program normalnie (Thread mode – TM) lub obsługując przerwanie (Handler mode – HM). Takie rozróżnienie ma kluczowe znaczenie dla aplikacji pisanych opartych dla systemów operacyjnych.
Obsługa programowanego detektora napięcia PVD
PVD (Programmable Voltage Detector) jest wewnętrznym blokiem sprzętowym w mikrokontrloerach STM32 mającym za zadanie monitorowanie wartości napięcia zasilania. Progi, po których przekroczeniu generowane będzie przerwanie, mogą być programowane przez użytkownika w szerokich granicach.
Motylowy termometr
Jest to prosty projekt ilustrujący pomiar temperatury za pomocą czujnika wbudowanego w strukturę mikrokontrolera STM32F107 (zamontowanego na płytce STM32Butterfly) i wyświetlenie jej dziesiętnej wartości na graficznym wyświetlaczu LCD z telefonu Nokia 3310.
Oszczędzanie energii w mikrokontrolerach STM32
Zmniejszenie poboru energii przez mikrokontroler można osiągnąć poprzez zmniejszenie częstotliwości jego taktowania (co wiąże się ze spowolnieniem działania) lub przez selektywne wyłączanie układy peryferyjnych wbudowanych w jego strukturę. Ten drugi mechanizm doskonale sprawdza się w mikrokontrolerach STM32, które są konstrukcyjnie przystosowane do selektywnego włączania i wyłączania większości wbudowanych bloków peryferyjnych.