Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com Szczecin 2014
2 I. Wprowadzenie 1. Informacja o organizatorze szkolenia 2. Omówienie planu szkolenia II. Język C w kontekście pisania aplikacji dla mikrokontrolerów 1. Podstawowe typy danych Integer Float Specyfikatory: signed i unsigned Wskaźniki Tablice Zależności między tablicami i wskaźnikami Typ wyliczeniowy enum 2. Modyfikatory volatile register static extern auto 3. Struktury danych Definicja struktury Dostęp i operacje na elementach struktury Wskaźnik do struktury Operator strzałka Unie 4. Operatory Przypisania Arytmetyczne Bitowe Porównania Logiczne Operator wyrażenia warunkowego Operator sizeof Inne operator: (), [], *, &,., 5. Instrukcje sterujące Instrukcja if Instrukcja switch Pętla for / while Pętla do... while Instrukcja break Instrukcja continue Instrukcja goto
3 6. Funkcje Tworzenie funkcji Wywoływanie funkcji Deklarowanie funkcji Zwracanie wartości Funkcja main() 7. Biblioteka standardowa III. Podstawowa budowa mikrokontrolera z rdzeniem ARM na przykładzie STM32F103ZE 1. Ogólny schemat blokowy mikrokontrolera Mikrokontroler a mikroprocesor 2. Rdzeń ARM Architektura Little-endian i big-endian Rejestry mikroprocesora Licznik programu PC Rejestr statusowy Stos Wyjątki i przerwania Poziomy uprzywilejowania Tryb ARM i Thumb Wyjątki Kontroler przerwań 3. Reset i kontrola sygnałów zegarowych PLL Układ resetu Dystrybucja sygnału zegarowego 4. Watchdog 5. Zarządzanie energia Wake-up mode 6. Pamięć Rodzaje pamięci Flash SRAM Wewnętrzna zewnętrzna 7. MMU (Memory Management Unit) 8. Magistrale mikrokontrolera 9. Peryferiały Podstawowe wiadomości Omówienie peryferiałów mikrokontrolera STM32F103ZE
4 10. GPIO Budowa Konfiguracja 11. Mapa pamięci 12. Debugowanie JTAG Metody Oprogramowanie IV. Wybór rodzaju aplikacji 1. Rodzaje aplikacji Zwykła pętla programowa Pętla programowa opata na przerwaniach System operacyjny 2. Rozmiar aplikacji V. Dobór mikrokontrolera do konkretnego projektu 1. Dobór ze względu na sprzęt 2. Dobór ze względu na oprogramowanie VI. Przygotowanie środowiska 1. Podłączenie zestawu ewaluacyjnego do komputera 2. GCC Budowa projektu Przygotowanie MAKEFILE Skrypt linkera 3. Atollic TrueSTUDIO Konfiguracja środowiska 4. Keil Konfiguracja środowiska VII. Tworzenie aplikacji 1. Budowa aplikacji Plik startowy Wektory przerwań Wyjątki Główna pętla programu 2. Mapowanie rejestrów 3. Mapowanie peryferiałów Mapowanie pojedynczych rejestrów Struktury peryferiałów Użycie bibliotek dostarczonych przez producenta
5 4. Inicjalizacja mikrokontrolera Inicjalizacja sygnałów zegarowych Konfigurowanie wewnętrznych bloków mikrokontrolera np. watchdog Inicjalizacja peryferiałów Konfiguracji GPIO 5. Poznanie środowiska Atollic TrueStudio Zapoznanie się z rejestrami mikrokontrolera STM32F103ZE Zapoznanie się z peryferiałami Modyfikacja zawartości rejestrów przy użyciu środowiska Atollic Zapalenie i zgaszenie diody dołączonej do mikrokontrolera przez modyfikacje rejestrów sterujących VIII. Ćwiczenie 1: Zapalenie i zgaszenie diody dołączonej do mikrokontrolera 1. Napisać program zapalający lub gaszący w pętli co 10000 przejść, diodę LED dołączoną do mikrokontrolera IX. Ćwiczenie 2: Zapalenie i zgaszenie diody co określony czas 1. Napisać program zapalający lub gaszący diodę dołączoną do wyjść mikrokontrolera w równych określonych odcinkach czasu Inicjalizacja i użycie przerwania timera Inicjalizacja i użycie timerów mikrokontrolera Procedura obsługi przerwania X. Ćwiczenie 3: Wprowadzenia mikrokontrolera w tryb SLEEP i wyprowadzenie z tego trybu przy pomocy przycisku 1. Napisać program wprowadzający mikrokontroler w tryb SLEEP a następnie wyprowadzenie go z tego trybu po naciśnięciu przycisku XI. Ćwiczenie 4: Komunikacja ze światem zewnętrznym UART 1. Wysłać z mikrokontrolera komunikat na terminal komputera PC Budowa i konfiguracja UART Budowa RS-232 Inicjalizacja UART Przygotowanie funkcji wysyłającej komunikaty na terminal Przygotowanie makra diagnostycznego TRACE XII. Ćwiczenie 5: Zapis i odczyt danych z pamięci EEPROM za pomocą interfejsu I2C 1. Budowa i zasada działania pamięci EEPROM 2. Budowa i zasada działanie interfejsu I2C 3. Inicjalizacja i konfiguracja I2C 4. Przygotowanie funkcji dostępu do I2C 5. Przygotowanie funkcji zapisu i odczytu danych z pamięci EEPROM 6. Modularyzacja oprogramowania XIII. Ćwiczenie 6: Zapis i odczyt danych z pamięci FLASH przy użyciu interfejsu FSMC 1. Budowa i działanie pamięci FLASH 2. Rodzaje pamięci FLASH NAND NOR
6 3. Konfiguracja interfejsu FSMC 4. Przygotowanie funkcji dostępu do pamięci 5. Zapisanie danych w pamięci a następnie wyświetlenie ich na terminalu XIV. Ćwiczenie 7: Zapis i odczyt danych z pamięci FLASH przy użyciu interfejsu SPI 1. Budowa i zasada działania interfejsu SPI 2. Inicjalizacja interfejsu SPI 3. Przygotowanie funkcji dostępu do SPI 4. Przygotowanie funkcji zapisu i odczytu danych z pamięci FLASH XV. Ćwiczenie 8: Obsługa klawiatury 1. Wady i zalety GPIO Mała wydajność prądowa Konieczność stosowania driverów, wtórników emiterowych Bramka Schmita Jakość sygnałów, pull-up, pull-down 2. Budowa i działanie klawiatury matrycowej 3. Odczytywanie klawiatury 4. Odczytanie stanów joysticka i wyświetlenie odpowiednich komunikatów na terminalu XVI. Ćwiczenie 9: Wyświetlanie informacji na wyświetlaczy 1. Wykorzystanie bibliotek do sterowania wyświetlaczem 2. Konfiguracja kontrolera LCD 3. Przy pomocy funkcji bibliotecznych narysować linię na wyświetlaczu dołączonym do mikrokontrolera XVII. Ćwiczenie 10: Odczytywanie danych z przetwornika ADC 1. Budowa i zasada działania przetworników ADC 2. Podstawowe pojęcia z zakresu przetwarzania sygnałów Próbkowanie Zakres bitowy przetwornika XVIII. Ćwiczenie 11: Odczyt i zapis danych z pamięci SRAM* 1. Przygotowanie funkcji odczytujących i zapisujących dane z pamięci SRAM dołączonej do mikrokontrolera XIX. Podsumowanie 1. Techniki debugowania 2. Narzędzia JTAG 3. System operacyjny
7 Kontakt Informacje kontaktowe: Telefon do biura +48-91-85-11-660 info@gryftec.com Osoba kontaktowa w/s szkoleń: Jerzy Pieścikowski +48-602-24-47-94 jpiescikowski@gryftec.com