Laboratorium Systemów wbudowanych Ćwiczenie nr 2 Podstawy
Transkrypt
Laboratorium Systemów wbudowanych Ćwiczenie nr 2 Podstawy
Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie Ćwiczenie nr 2 Podstawy programowania mikrokontrolerów rodziny AVR8 opracował dr inż. Wojciech Zaborowski Plan ćwiczenia: Ćwiczenie wykonywane jest z wykorzystaniem zestawu uruchomieniowego ZL15AVR firmy Kamami. Zestaw uruchomieniowy zbudowany jest w oparciu o mikrokontroler ATMEL Atmega32. Szczegółowe informacje na temat budowy zestawu można uzyskać z jego dokumentacji (http://www.kamami.pl/dl/zl15avr.pdf). Do programowania mikrokontrolera wykorzystany zostanie pakiet oprogramowania AVR Studio 4 wraz z pakietem WinAVR. Połączenie tych dwóch pakietów pozwala w prosty sposób programować mikrokontrolery rodziny AVR z poziomu języka C z wykorzystaniem graficznego interfejsu użytkownika. Zestaw jest zasilany z portu USB komputera. Dodatkowo do programowania mikrokontrolera wykorzystuje się dedykowany programator z interfejsem JTAG (ZL15PRG) podłączony do drugiego portu USB. 1 Komunikacja z komputerem PC poprzez łącze RS232 Przeanalizować i uruchomić przykładowy projekt znajdujący się w archiwum uart.zip Konfiguracja zestawu ZL15AVR przewiduje wykorzystanie do komunikacji linii RxD oraz TxD złącza Con7 (nie korzysta z sygnałów TxU, RxU) Przykładowy projekt realizuje komunikację z komputerem PC przez interfejs RS232. Interfejs ten występuje w komputerach PC najczęściej pod nazwą pot COM1÷COM4. Do obsługi komunikacji przez to złącze wykorzystać można standardowo dostępny w systemie operacyjnym Windows program Hyper Terminal lub programu Bray Terminal (odpowiednie skróty znajdują się na pulpicie). Standardowo zestaw ZL15AVR łączy się z komputerem PC poprzez port COM1. Do nawiązania poprawnej komunikacji pomiędzy płytą ZL15AVR a komputerem PC należy odpowiednio skonfigurować port komunikacyjny COMx (zwykle jest to COM1) – jeśli Hyper Terminal został uruchomiony poprzez skrót umieszczony na pulpicie jest już on odpowiednio skonfigurowany by poprawnie odbierać znaki od mikrokontrolera zaprogramowanego przykładowym projektem. Prędkość transmisji, z jaką dane są wysyłane z mikrokontrolera ATmega32 definiuje się przy pomocy stałej BAUD, w trakcie inicjalizacji USART mikrokontrolera (należy odszukać odpowiedni fragment w udostępnionym kodzie źródłowym i taką samą wartość wybrać w trakcie konfiguracji połączenia programu Hyper Terminal, w polu Baud rate – Liczba bitów na sekundę). Pozostałe parametry transmisji konfiguruje się następująco: bity danych: 8, parzystość : Brak, Bity stopu: 1, sterowanie przepływem: Brak. Wersja z dnia 2010-12-16 11:44 1 Po zaprogramowaniu mikrokontrolera i poprawnej konfiguracji programu Hyper Terminal, na ekranie komputera i na wyświetlaczu LCD zestawu ZL15AVR pojawi się stosowny komunikat. Wpisując w oknie Hyper Terminala dowolny ciąg znaków zakończony naciśnięciem klawisza ENTER powinien się on pojawić na wyświetlaczu LCD zestawu. Zmieniając odpowiednio prędkość transmisji, przetestować maksymalną możliwą do uzyskania prędkość przesyłu danych pomiędzy mikrokontrolerem a komputerem PC. UWAGA ! – aby transmisja przebiegała poprawnie ta sam prędkość transmisji musi być ustawiona zarówno na komputerze PC (HyperTerminal) jak i w programie działającym na mikrokontrolerze 2 Zegar czasu rzeczywistego Na płycie ZL15AVR dostępny jest układ zegara czasu rzeczywistego M41T00 [1]. Mikrokontroler z zegarem komunikuje się poprzez interfejs I2C. Od strony mikrokontrolera do komunikacji wykorzystany zostanie sprzętowy interfejs TWI (zgodny ze standardem I2C). W układzie połączeń pozostawić podłączony wyświetlacz LCD. Oraz połączenia RxD i TxD interfejsu RS232. Wykonać dodatkowe połączenia linii SDA i SCL zgodnie z opisem w kodzie źródłowym. 2.1 Zadanie 1 Uruchomić przykładowy projekt (znajdujący się w archiwum rtc.rar). Wyniki działania programu można obserwować w oknie terminala. Na podstawie dostępnej dokumentacji do układu zegara oraz analizy przykładowego projektu należy doprowadzić do sytuacji, aby zegar wskazywał aktualny czas. 2.2 Zadanie 2 Kolejnym krokiem będzie zmodyfikowanie programu dla mikrokontrolera aby aktualny czas był wyświetlany na ekranie wyświetlacza LCD. Można w tym celu użyć procedur znajdujących się w wykorzystywanej już wcześniej bibliotekę obsługi wyświetlacza LCD. 3 Literatura [1] STMicroelectronics: M41T00 serial real-time clock. Rev 9. 05.2008. Dostępna online: http://www.st.com/stonline/books/pdf/docs/6100.pdf [2]