LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

Mikrokontrolery Infineon XMC4500 w praktyce, część 6. Obsługa zegara czasu rzeczywistego (RTC)

 

Opis aplikacji

W celu pokazania sposobu obsługi zegara czasu rzeczywistego mikrokontrolera XMC4500 zrealizowana została przykładowa aplikacja, która ma za zadanie odmierzać czas i aktualizować datę oraz udostępniać na bieżąco te informacje użytkownikowi na wyświetlaczu LCD TFT.

Aplikacja została przygotowana przy użyciu pakietu do tworzenia i rozwijania oprogramowania DAvE 3, a jako platforma sprzętowa posłużyły: płytka uruchomieniowa XMC4500 Relax Kit oraz moduł z wyświetlaczem KAmodTFT2. Jako że wykorzystane komponenty fizyczne są takie same jak w przypadku aplikacji opisanej w poprzednim artykule („Mikrokontrolery Infineon XMC4500 w praktyce, część 5. Obsługa kolorowego wyświetlacza LCD-TFT”), zastosowano również ten sam schemat połączeń między nimi (rysunek 2).

 ys. 2. Schemat połączeń pomiędzy wyświetlaczem LCD i zestawem XMC4500 Relax Kit

Rys. 2. Schemat połączeń pomiędzy wyświetlaczem LCD i zestawem XMC4500 Relax Kit

 

Fot. 3. Widok modułu KAmodTFT dołączonego do zestawu XMC4500 Relax Kit

Fot. 3. Widok modułu KAmodTFT dołączonego do zestawu XMC4500 Relax Kit

Schemat blokowy aplikacji przedstawiono na rysunku 4. Mikrokontroler wykonywanie programu rozpoczyna od zainicjowania wyświetlacza, a następnie przechodzi do nieskończonej pętli, w której nie są mu przewidziane żadne zadania. Pomimo tego mikrokontroler nie pozostaje bezczynny. Co sekundę zegar czasu rzeczywistego zgłasza przerwanie sygnalizujące zwiększenie wartości licznika Time Counter o jeden, co odpowiada upłynięciu kolejnej sekundy. W momencie zgłoszenia przerwania mikrokontroler odczytuje aktualny stan czasu i daty, a następnie wyświetla te informacje na wyświetlaczu.

 Rys. 4. Schemat blokowy działania aplikacji

Rys. 4. Schemat blokowy działania aplikacji

 

Realizacja aplikacji

Jak już to zostało wspomniane, platforma sprzętowa wymagana do zrealizowania aplikacji wykorzystującej zegar czasu rzeczywistego jest taka sama jak w przypadku aplikacji sterującej wyświetlaczem. Dzięki temu możliwe jest też skorzystanie z projektu programistycznego tejże aplikacji, który może być punktem wyjściowym do zrealizowania omawianej w tym artykule aplikacji.

W projekcie programistycznym aplikacji sterującej wyświetlaczem użyto czterech komponentów DAvE Apps typu IO003, z których każdy odpowiada innej linii sygnałowej łączącej mikrokontroler z wyświetlaczem, co pozwala na komunikację między mikrokontrolerem a wyświetlaczem. Aby móc skorzystać z bloku peryferyjnego o nazwie zegar czasu rzeczywistego, należy dodać do listy używanych komponentów DAvE Apps dodatkowy komponent – RTC001. Razem z nim automatycznie dodane zostaną dwa powiązane z nim komponenty – CLK001 oraz NVIC_SCU001 (rysunek 5).

Rys. 5. Lista użytych w aplikacji komponentów DAvE Apps

Rys. 5. Lista użytych w aplikacji komponentów DAvE Apps

W tym momencie można wykonać konfigurację komponentu RTC001. Dostępne są dwie zakładki: RTC Configuration oraz Alarm Configuration. Pierwsza z zakładek przewidziana jest do konfiguracji aspektów działania zegara czasu rzeczywistego związanych z czasem i datą. Udostępnia ona opcje pozwalające na: włączenie zegara czasu rzeczywistego (rozpoczęcie jego działania nastąpi od razu w momencie uruchomienia programu), ustawienie wartości początkowych czasu i daty, wybranie zdarzeń generujących przerwania (źródłem przerwania może być zmiana wybranej jednostki czasu: sekundy, minuty, godziny, dnia, miesiąca, roku) oraz wpisanie nazwy funkcji obsługującej przerwania.

Druga zakładka przewidziana jest do skonfigurowania alarmu zegara czasu rzeczywistego. Dostępne w niej opcje są analogiczne do opcji z pierwszej zakładki i pozwalają one na: włączenie działania alarmu, ustawienie czasu i daty alarmu, włączenie wybranych zdarzeń generujących przerwania oraz wpisanie nazwy funkcji obsługującej przerwania.

Aby aplikacja realizowała przyjęte wcześniej założenia, należy w zakładce RTC Configuration włączyć zegar RTC, ustawić początkowe wartości daty i czasu, włączyć generowanie przerwań co sekundę oraz wpisać nazwę funkcji obsługującej przerwania. Opcje zakładki Alarm Configuration nie wymagają zmian. Konfigurację komponentu RTC001 zgodną z przedstawionym opisem zilustrowano na rysunku 6.

 Rys. 6. Zakładki konfiguracyjne komponentu RTC001

Rys. 6. Zakładki konfiguracyjne komponentu RTC001

SZYMON PANECKI urodził się 17 lutego 1985 roku w Milanówku. Tytuł inżyniera Elektroniki i Telekomunikacji, a następnie magistra inżyniera na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał kolejno w roku 2008 i 2010. Ponadto tytuł inżyniera Informatyki na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał w roku 2011. Szymon Panecki jest doświadczonym elektronikiem-konstruktorem, który w trakcie swojej zawodowej kariery koncentruje się na definiowaniu i projektowaniu (zarówno w warstwie sprzętowej jak i programowej) systemów wbudowanych opartych na mikrokontrolerach z rdzeniem ARM od różnych producentów, w tym przede wszystkim Infineon Technologies (rodzina XMC1000 i XMC4000), STMicroelectronics (STM32 i STR7), Freescale Semiconductor (Kinetis L) oraz Silicon Labs (EFM32 i Precision32). Obszarem jego szczególnego zainteresowania są systemy wykorzystujące czujniki środowiskowe (wilgotności, ciśnienia, temperatury) oraz przemysłowe i motoryzacyjne interfejsy komunikacyjne, głównie CAN. Szymon Panecki od wielu lat współpracuje z czasopismem "Elektronika Praktyczna" oraz portalem Mikrokontroler.pl, na łamach których publikuje liczne artykuły dotyczące swoich projektów, jak również nowości produktowych firm z branży półprzewodnikowej.