Laboratorium Systemów wbudowanych Ćwiczenie nr 3
Transkrypt
Laboratorium Systemów wbudowanych Ćwiczenie nr 3
Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie Ćwiczenie nr 3 Zaawansowane programowanie 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 Przetwornik analogowo-cyfrowy mikrokontrolera ATmega32 Przeanalizować i uruchomić przykładowy projekt znajdujący się w archiwum adc.zip. Uwaga – nie należy demontować połączeń pozwalających na wykorzystanie wyświetlacza LCD. Projekt wykorzystuje potencjometr P2 do zadawania wartości napięcia z zakresu 0-5V podawanego na kanał ADC0 przetwornika znajdującego się we wnętrzu mikrokontrolera ATmega32. Dodatkowo, wykorzystany zostanie wyświetlacz LCD do prezentacji wyniku przetwarzania. Po uruchomieniu przykładowego projektu, wynik przetwarzania przesyłany jest wyłącznie do komputera PC poprzez łącze RS232. Należy pamiętać o uruchomieniu i właściwym skonfigurowaniu programu terminala (Hyper Terminal). Zadanie 1.1 Zmodyfikować program mikrokontrolera w taki sposób, aby wynik przetwarzania prezentowany był na wyświetlaczu LCD w postaci liczby całkowitej z zakresu 0-1023. Zadanie 2.2 Wyznaczenie charakterystyki przetwornika Zadanie 2.3 W dotychczasowych programach wynik przetwarzania napięcia wejściowego jest prezentowany jako liczba całkowita z przedziału 0-1023. Należy zmodyfikować sposób prezentacji wyniku w tak, aby na wyświetlaczu pojawiła się wartość zmierzonego Wersja z dnia 2010-11-10 08:36 1 napięcia podana w woltach. Wartości napięcia 0V odpowiada wartość 0 uzyskanej z przetwornika, natomiast napięciu 5V odpowiada wartość 1023. Wskazówka: Do konwersji liczby zmiennoprzecinkowej (typu double) na ciąg znaków można wykorzystać funkcję: char* dtostrf(double __val, signed char __width, unsigned char __prec, char * __s) znajdującą się w bibliotece stdlib (pamiętać o dołączeniu odpowiedniego pliku nagłówkowego) Więcej szczegółów na temat funkcji dtostrf można znaleźć w avr-libc-user-manual. 2 Cyfrowy pomiar temperatury Na płycie ZL15AVR dostępny jest układ cyfrowego termometru TC77 (U7) firmy Microchip, komunikującego się z mikrokontrolerem poprzez interfejs SPI. Przykładowy projekt odczytujący temperaturę z sensora TC77 przez magistralę SPI i przesyłający ją do komputera PC przez RS232 znajduje się w archiwum temp.rar. Zadanie 1 Analizując przykładowy projekt zaproponować modyfikacje umożliwiające wyświetlanie odczytywanych danych o temperaturze na ekranie wyświetlacza LCD. Zadanie 2 Zaproponować modyfikacje programu w taki sposób aby pomiar temperatury by odczyt temperatury wykonywany był co 10 sekund, a na wyświetlaczu prezentowana byłaby temperatura chwilowa, oraz średnia temperatura z ostatnich 2 minut. 3 Literatura [1] Microchip Technology Inc.: TC77 Thermal sensor with SPI™ interface. 2002. http://ww1.microchip.com/downloads/en/DeviceDoc/20092a.pdf [2]