Pokazywanie postów oznaczonych etykietą Nucleo. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Nucleo. Pokaż wszystkie posty

sobota, 13 lutego 2016

[14] STM32 M3 - Nucleo - F103RB - Watchdog

W tym poście opiszę sposób w jaki obsłużyć układ Watchdoga w mikrokontrolerze F103RB.

Watchdog


Watchdog inaczej układ czuwający jest odpowiedzialny za automatyczne zresetowanie mikrokontrolera gdy zostanie wykryte zawieszenie programu. Cały proces odbywa się bez udziału użytkownika. Stosowany jest on jako środek zaradczy w przypadku wystąpienia nieprzewidzianego problemu. 

Jego działanie jest dosyć proste, opiera się na zasadzie działania licznika, który jest wywoływany w programie co określony interwał czasowy. Jeśli licznik z jakiegoś powodu nie zliczy do zera, będzie to oznaczało zawieszenie mikrokontrolera, co spowoduje jego zresetowanie przez układ watchdoga.

środa, 10 lutego 2016

[13] STM32 M3 - Nucleo - F103RB - EEPROM, I2C

Niedawno przedstawiłem opis programowanej EEPROM poprzez układ Arduino. Tym razem przyszła kolej na STM32. Może to być w niektórych projektach wyjątkowo przydatny element do zastosowania, ponieważ STM32F103 jak i również STM32F4 nie posiada wbudowanej pamięci EEPROM. Do komunikacji z pamiecią zostanie wykorzystany interfejs I2C. 

I2C


Inter-Integrated Circuit został opracowany przez firmę Philips. Jest wykorzystywany do transmisji szeregowej, synchronicznej w trybie naprzemiennego odbierania i nadawania danych (half-duplex). 

Dostępne są trzy wersje tego interfejsu różniące się między sobą szybkością transmisji:
  • Standardowy (Standard) - 100kb/s
  • Szybki (Fast Mode) - 400kb/s
  • Wysoka prędkość (High Speed Mode) - 3,4 Mb/s

wtorek, 1 grudnia 2015

[9] STM32 M3 - Nucleo - F103RB - Wyświetlacz 7-seg

Tym razem przedstawię obsługę wyświetlacza 7-segmentowego za pomocą mikrokontrolera STM32.

Wstęp


Do obsługi wyświetlacza wykorzystuje gotowy moduł zaprezentowany razem z podpisanymi wyprowadzeniami na rysunku 1.1.

Rys. 1. Wyświetlacz 7 segmentowy

wtorek, 17 listopada 2015

[5] STM32 M3 - Nucleo - F103RB - Przerwania NVIC i EXTI

W tym poście chciałbym opisać sposób obsługi przerwań NVIC i EXTI przez mikrokontrolery STM32.

Wstęp


Przerwanie jest to pewien sygnał, który zostaje zgłoszony do mikrokontrolera w momencie wyłapania przerwania. Na czas obsługi przerwania układ zawiesza wykonywanie pozostałych operacji, po czym przechodzi do wykonania operacji w przerwaniu. Po jej wykonaniu mikrokontroler wraca do normalnej pracy. W momencie wywołania sygnału układ zapisuje swój aktualny stan, po to by po powrocie do normalnej pracy zacząć działanie od przerwanej czynności.

czwartek, 12 listopada 2015

[4a] STM32 M3 - Nucleo - F103RB - USART Przerwania

Tym razem chciałbym trochę rozwinąć zagadnienia związane z wykorzystywaniem interfejsu USART, poprzez dodanie przerwań NVIC.

Wstęp


Ustawienie przerwania pozwoli mikrokontrolerowi na przerwanie wykonywanej czynności i wykonanie procedury znajdującej się w funkcji obsługi tego przerwania. Dzięki temu możliwe będzie wyświetlenie przesłanych znaków w trakcie wykonywania innych operacji w układzie.

[4] STM32 M3 - Nucleo - F103RB - USART

Tym razem opisze sposób obsługi USART. Niewiele się będzie to różnić od przykładu opisanego prze zemnie dla mikrokontrolera F411RE.

Wstęp


Mikrokontroler znajdujący się na płytce Nucleo wyposażono w 3 interfejsy USART. Na płytce także znajduje się konwerter USART na USB. Dzięki temu nie trzeba wykorzystywać dodatkowego zewnętrznego urządzenia.

środa, 11 listopada 2015

[3] STM32 M3 - Nucleo - F103RB - Przetwornik ADC

W tym poście chciałbym opisać sposób obsługi przetwornika analogowo cyfrowego.

Wstęp


W opisywanym mikrokontrolerze zastosowano dwa 12 bitowe przetwoniki ADC. Każdy z tych przetworników wyposażono na wejściu w multiplekser. Pozwala on na odczytywanie danych z 16 linii wejściowych

Przetworniki są 12 bitowe oznacza to, że otrzymana wartość napięcia będzie przetwarzana na jej reprezentację cyfrową z zakresu od 0 do 4096. Obsługiwane są piny od 0 do 15. Do kanału 16 podłączony został wbudowany czujnik temperatury układu. Natomiast do kanału 17 podłączone zostało napięcie referencyjne.

poniedziałek, 9 listopada 2015

[2] STM32 M3 - Nucleo - F103RB - Taktowanie, licznik SysTick

Tym razem chciałem przedstawić sposób obsługi timerów w mikrokontrolerze z rdzeniem Cortex M3. Opiszę sposób inicjalizacji timerów oraz zastosowanie licznik SysTick jako pętli opóźniającej.

Wstęp


W tym układzie jest możliwość obsługi 7 wbudowanych timerów. Z czego do użytku typowego wykorzystuje się cztery z nich.

  • Cztery 16 bitowe timery;
  • Dwa układy czuwające (Watchdog);
  • Jeden Systick - jest to 24 bitowy licznik zliczający w dół od zadanej wartości.

Taktowanie


Układ taktowany jest z wewnętrznego oscylatora. Jego częstotliwość taktowania wynosi 8MHz. Przy korzystaniu z powielacza częstotliwości sygnał jest odpowiednio zwiększany do pożądanej wartości. Następnie ustawiamy wartość PLLMul, która przemnaża podawaną częstotliwość z HSI podzieloną przez 2. Wartość PLLMul można wybrać z przedziału od 2 do 16.

czwartek, 29 października 2015

[3b] STM32 Nucelo F411RE - Obsługa wbudowanego USART-u, funckja printf

W tym poście pokaże jak obsłużyć układ USART z konwerterem wbudowanym w płytkę Nucleo

Wstęp


Wbudowany konwerter USART podłączony jest do USART2, który jest podłączony do pinów PA2 oraz PA3.
Układ wbudowany jest w płytkę, dzięki temu po podłączeniu do komputera i odpowiednim zaprogramowaniu można od razu z niego korzystać. Nie ma potrzeby stosowania dodatkowych elementów.

środa, 28 października 2015

[3a] Wysłanie danych z komputera - USART

Tym razem opiszę sposób przesłania danych z komputera poprzez port USART do mikrokontrolera.

Wstęp


Aby to wykonać taką transmisję należy odpowiednio zainicjalizować przerwania oraz jego obsługę dla wybranego USART-u. Należy ustawić wektor przerwać NVIC (ang. Nested Vector Interrupt Controller). Dzięki nim możliwe jest zatrzymanie działania programu, aby został wykonany inny fragment kodu zdefiniowany w procedurze obsługi przerwania.

Opisywany tutaj wektor przerwań pozwala na dynamiczną obsługę oraz wybranie ważniejszego przerwania. Możliwa jest obsługa do 256 różnych wywoływanych wektorów. Całość opisana jest w bibliotece misc.h. Nie będę się tutaj rozpisywał dokładnie nad jego zasadą działania, ponieważ zostanie to opisane w innym poście. 

piątek, 16 października 2015

[3] STM32 Nucleo F411RE - USART

W tym poście przedstawię podłączenie mikrokontrolera do komputera za pomocą UART-a.

Wstęp


UART (ang. Universal Asynchronous and Transmitter) jest to układ pozwalający na asynchroniczną transmisję informacji wykorzystującą port szeregowy. W tym układzie zawarte są dwa konwertery, jeden z nich służy do konwersji danych przesyłanych z komputera (równoległo-szeregowy - ang. parallel to serial), drugi natomiast działa odwrotnie (szeregowo-równoległy ang. serial to parallel). W skład UART-u wchodzi także bufor, który przechowuje dane tymczasowo w momencie wykorzystywania szybkiej transmisji. [1]

Pewną odmianą UART-u jest tzw. USART. Może on pracować w trybie synchronicznym jak i asynchronicznym.

niedziela, 4 października 2015

[1] STM32 Nuclo F411RE - Inicjalizacja GPIO I/O

Tym razem przedstawię sposób inicjalizacji portów GPIO, jakie są dostępne w wykorzystywanym prze zemnie mikrokontrolerze. Przedstawię też krótki program pozwalający na obsługę wbudowanego przycisku oraz diody.

Wstęp


W tej wersji Nucleo mamy do wyboru następujące wyprowadzenia kompatybilne z Arduino, oraz wyprowadzenia Morpho. W skład tych drugich wchodzą wszystkie dostępne funkcjonalne wyprowadzenia mikrokontrolera. Rozmieszczenie wszystkich pinów podano na rysunku 1.1. 


Rys. 1.1. Opis wyprowadzeń Nucleo F411RE

wtorek, 29 września 2015

[0] STM32 Nucleo - STM32F411RE Cortex M4 - Opis płyki

Tym razem chciałem zaprezentować mój nowy nabytek, którym jest płytka ewaluacyjna z mikrokontolerem STM32F411RET6. Zdecydowałem się na jej zakup ponieważ posiada bardzo duże możliwości w relatywnie niskiej cenie. Planuje poświęcić trochę czasu na naukę programowania tego rodzaju układów.

Wstęp


Głównym parametrem z jakiego zdecydowałem się na tą płytkę była jej cena (55zł), która jak na możliwości jakie zapewnia jest dosyć niska. Więc w związku z tym, że jestem osobą początkującą, takie rozwiązanie jak najbardziej mi wystarcza.


Rys. 1.1. STM32 NucleoF411RE - Wygląd zewnętrzny