Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze

Transkrypt

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze
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 I2C. 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 I2C.
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 I2C:
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 I2C. Ponieważ najmłodszy bit
adresu I2C 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 I2C 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
szyna I2C
programator
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 szeregowej1, obsłudze szyny 1WIRE,
częstotliwościomierzach itp. Zmiana kwarcu raczej nie wpływa na wyświetlacz LCD, szynę I2C
(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ą I2C
Układy pracujące w magistrali I2C :
• pamięć szeregowa
• zegar z kalendarzem + dodatkowy kwarc (zegarkowy) + bateria podtrzymująca
• 2 dwukierunkowe konwertery I2C 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ą I2C
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

Podobne dokumenty