Laboratorium Techniki Mikroprocesorowej Informatyka studia dzienne Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515 Cel ćwiczenia Celem ćwiczenia jest poznanie możliwości nowoczesnych mikrokontrolerów o architekturze RISC, i technologii programowania uc w językach wysokiego poziomu. Wymagane wiadomości Budowa, sposób programowania mikrokomputerów rodziny AVR. Podstawy programowania w języku MCS Basic. Magistrala I 2 C. Budowa, zasada działania i obsługa z poziomu języka MCS Basic Wykorzystywany sprzęt Komputer klasy PC do przygotowania tekstu źródłowego, kodu wynikowego i programowania procesora AVR. Zestaw laboratoryjny AVR z interfejsem RS232C, wyświetlaczem LCD i emulatorem EPROM i zegarem czasu rzeczywistego PCF8583 Pakiet Bascom AVR. Literatura 1. A. Krysiak: Mikrokontrolery AVR AT 90S1200,Wyd. Typoscript 1999. 2. T.Augustyn, G.Niemiec, A.Szlachta : Zestaw uruchomieniowy AVR. Opracowanie wewnętrzne KI AGH 2001. 3. Mielczarek W.: Szeregowe interfejsy cyfrowe. Wyd. Helion 1994 4. Philips Semiconductors : PCF8583 Data Sheet, 1997 5. http://www.mcselec.com Informacje na temat pakietu BASCOM AVR.
1. Wykonanie ćwiczenia W trakcie realizacji ćwiczenia należy napisać i uruchomić program realizujący funkcje zegara. Funkcje odmierzania czasu pełnić będzie specjalizowany układ PCF8583 połączony z mikrokontrolerem za pomocą magistrali I 2 C. Zadaniem mikrokontrolera będzie zapis do zegara odpowiednich ustawień początkowych, a następnie wyświetlanie na wyświetlaczu LCD lub LED aktualnego czasu odczytanego z zegara. Dodatkowo można wbudować w program funkcje alarmu sygnalizowanego np. za pomocą głośnika lub mrugającej diody LED. Zestaw laboratoryjny został odpowiednio skonfigurowany i przygotowany do realizacji ćwiczenia. Do wyprowadzeń mikrokontrolera zostały podłączone: linie magistrali I 2 C: SCL pin 16 (Port D.6) SDA pin 15 (Port D.5) Linie wyświetlacza LCD: RS PortB.2 RW masa EN PortB.3 D4 PortB.4 D5 PortB.5 D6 PortB.6 D7 PortB.7 Układ PCF8583 jest widoczny pod adresem 80D (50H) magistrali I 2 C. Ponieważ najmłodszy bit adresu I 2 C określa typ operacji (odczyt/zapis) wiec układ PCF8583 jest widoczny pod adresem 160D dla operacji zapisu i 161D dla operacji odczytu. Do obsługi magistrali I 2 C wykorzystuje się polecenia języka MCS Basic : I2CSTART, I2CSTOP, I2CRBYTE, I2CWBYTE. W systemie wbudowany jest wyświetlacz LCD o organizacji 2x20 znaków. Do obsługi wyświetlacza LCD. Aby móc korzystać z wyświetlacza, należy poinformować kompilator o jego konfiguracji i sposobie podłączenia do mikrokontrolera wykorzystując polecenia: CONFIG LCDPIN i CONFIG LCD. Układ PCF8583 posiada możliwość generowania przerwania ( niski poziom na wyprowadzeniu nr 7 ) jednak w zestawie nie ma możliwości wykonania połączenia do mikrokontrolera. Obsługa alarmu musi być realizowana na drodze programowego sprawdzania stanu zegara.
2. Zestaw uruchomieniowy AVR Wszystkie opisywane tu moduły (oprócz zaprojektowanego modułu emulatora sprzętowego AT89) znajdują się na jednej dużej płycie. wyświetlacze siedmiosegmentowe transmisja szeregowa wzmacniacz kodu RC5 wyświetlacz LCD diody przetwornik piezoelektryczny programator szyna I 2 C mikroprocesor 20-nóżkowy mikroprocesor 40-nóżkowy moduł resetu zasilanie mikrozłącza Rys. 1. Rysunek poglądowy zestawu z zaznaczonymi elementami Moduł programatora ISP dla AVR. Programowanie mikroprocesorów AVR odbywać się może wykorzystując magistralę SPI (3 linie). W takim trybie programowania dane są przesyłane do procesora szeregowo. Procesory można programować zarówno w podstawkach wyposażonych w niezbędny rezonator kwarcowy, jak i w systemie, za pomocą specjalnego złącza ISP, który to sposób został wykorzystany w naszym zestawie. Programator jest umieszczony na jednej płycie z resztą układu i jest podłączany z komputerem przez złącze Centronics. Posiada diodę do wskazywania transmisji sygnałów. Przy programatorze znajdują się zworki do obsługi złącza ISP. Zworki znajdujące się bliżej programatora służą do całkowitego odłączenia złącza ISP lub podłączenia zewnętrznego (np. innego typu) programatora ISP. Drugi rząd zworek służy do przełączenia podłączenia złącza ISP między mikroprocesorem 20- i 40-nóżkowym. Istnieje też drugi tryb programowania, Parallel Mode, w którym dane przesyłane są równolegle przy wykorzystaniu większej ilości przewodów wyklucza to jednak używanie ISP, gdyż układ trzeba fizycznie przenieść do programatora. Główną zaletą programowania ISP jest prostota wykonania programatora. Jest jednak i druga strona medalu czym prostszy układ programujący tym większa możliwość wystąpienia przekłamań podczas programowania.
Moduł procesorowy Należy zauważyć, że procesory AVR mogą działać przy częstotliwości 0-8 MHz, a AT89 z wartościami 0-24 MHz. W celu dowolnej zmiany tych wartości na płytce znajdują się po trzy kwarce dla mikroprocesora 20- i 40-nóżkowego, wybierane zworkami: 4, 8 i 11.059 MHz. Należy zauważyć, że niektóre aspekty programowania mikroprocesora są dedykowane do ściśle określonego kwarcu i nie można go zmienić np. tam, gdzie mają znaczenie wartości zliczane przez wewnętrzny licznik / czasomierz mikroprocesora ma to miejsce przy transmisji szeregowej 1, obsłudze szyny 1WIRE, częstotliwościomierzach itp. Zmiana kwarcu raczej nie wpływa na wyświetlacz LCD, szynę I 2 C (synchronizacja zegara z układem mastera mikroprocesorem) i obsługę innych urządzeń poza zmianą szybkości działania mikroprocesora. Uwaga: Należy pamiętać, aby do mikroprocesora AVR nie podłączać kwarcu 11.059 MHz, którego on nie obsługuje i może skończyć się przegrzaniem, a nawet spaleniem układu. W przypadku wykorzystywania określonego typu mikroprocesorów (AT89 lub AVR) należy odpowiednio ustawić zworkę poziomu sygnału RESET. Należy zauważyć, że działa tylko wybrany RESET (albo AVR albo 51). Zastosowany układ RESETU dla AVR automatycznie resetuje mikroprocesory po włączeniu zasilania. Zauważono także resetowanie procesora AVR po zakończeniu działania zapisanego w nim programu (program wykonuje się w kółko). Należy zauważyć, że dzięki temu, że mikroprocesory 20- i 40-nóżkowy mają odrębne wyprowadzenia portów, istnieje możliwość działania dwóch procesorów. Aby umożliwić pracę mikroprocesora należy podłączyć mu zasilanie (Vcc). Nie zostało to wykonane na stałe, gdyż umożliwia to wybór uruchamianego układu. Dzięki zastosowanemu układowi resetu, jednocześnie mogą pracować mikroprocesory AT89 i AT90, ale wybór poziomu resetu musi być odłączony. 1 niektórych szybkości transmisji nie da się otrzymać przy każdym kwarcu
Moduł urządzeń wyświetlacz LCD 4 wyświetlacze siedmiosegmentowe LED, wspólna anoda (Rys. 2) złącze szeregowe RS232 (Rys. 3) wzmacniacz sygnału w kodzie RC5 obsługa standardowego pilota (Rys. 4) 8 mikrozłącz (Rys. 4) 8 diód świecących (Rys. 2) przetwornik piezoelektryczny Rys. 2. Diody i wyświetlacze siedmiosegmentowe Rys. 3. Podłączenie układu MAX232 transmisja szeregowa Rys. 4. Podłączenie wzmacniacza kodu RC5 i mikrozłączy
Moduł układów współpracujących z szyną I 2 C Układy pracujące w magistrali I 2 C : pamięć szeregowa zegar z kalendarzem + dodatkowy kwarc (zegarkowy) + bateria podtrzymująca 2 dwukierunkowe konwertery I 2 C na 8-bitową szynę danych 2 wzmacniacze prądowe 5V i 12V (wykorzystywane poprzez expandery z poprzedniego podpunktu lub bezpośrednio) np.. sterowanie silnikami krokowymi, przekaźnikami przetwornik AD/DA Rys. 5. Moduł układów współpracujących z szyną I 2 C
2.1. Moduł zasilania Układ zasilania zestawu uruchomieniowego (Rys. 6) składa się z mostka prostowniczego i scalonego stabilizatora napięcia 7805, wraz z niezbędnymi do jego pracy kondensatorami wygładzającymi impulsy. Doprowadzone zasilanie powinno być o 3V wyższe od nominalnego, niekoniecznie stabilizowane. Pobór prądu jest poniżej 1A (w zależności od ilości podłączonych urządzeń), więc nie dochodzi do przegrzania stabilizatora. Istnieje możliwość obejścia zastosowanego zasilacza (poprzez przestawienie zworki JP2 w pozycję zasilania zewnętrznego). Możliwe jest wówczas podłączenie napięcia stałego 5V. Rys. 6. Moduł zasilania