Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Wykład 1 z programowania mikrokontrolerów
mgr inż. Wojciech Rogowski Bielsko-Biała
2
Temat wykładu: Budowa mikrokontrolera AT90S2313 (ATTINY2313),
Ważniejsze obwody, • System przerwań, • Liczniki czyli timery, • UART • Komparator analogowy • Watchdog Budowa portów mikrokontrolera, Literatura.
3
Budowa portów mikrokontrolera.
rys. 5 Rys. 5 pokazuje uproszczoną budowę portu dwukierunkowego. Kwa-draciki DD, Port i Pin reprezentują pojedyncze komórki pamięci. Tranzystory T1 i T2 zawarte są w trójstanowym buforze. • DD - data direction, • Port- stany 1 lub 0, • Pin – końcówka która odzwierciedla rzeczywisty stan ligiczny,
4
Budowa mikrokontrolera AT90S2313 (ATTINY2313)
5
Pamięć operacyjna RAM Omawiane procesory mają 128 bajtów (czyli 128 x 8 bitów) pamięci operacyjnej. W angielskich materiałach często nazywana jest pamięcią SRAM (Static RAM). Pamięć RAM, przeznaczona do bieżącej pracy, jest intensywnie wykorzystywana w czasie działania procesora. Tu przechowywane są dane i wyniki obliczeń potrzebne podczas normalnej pracy układu. Pamięć RAM można zapisywać dowolną liczbę razy - panuje tu ciągły ruch i nie ma limitu cykli zapisu. Programując procesor z pomocą BASCOM-a nie troszczymy się w ogóle o pamięć RAM i jej zawartość. BASCOM sam określa sposób jej wykorzystania. A potem, w czasie pracy procesora o bieżącej zawartości RAM-u zadecyduje program (zapisany wcześniej w pamięci FLASH).
6
Pamięć pomocnicza EEPROM
Pamięć pomocnicza EEPROM. Nasz mikrokontroler ma 128 bajtów pamięci EEPROM, która jest czymś pośre-dnim pomiędzy pamięcią programu i RAM-em - możemy ją zaprogramować z zewnątrz (z komputera PC), podobnie jak pamięć FLASH. Co bardzo ważne, program w czasie działania również może zmieniać zawartość pamięci EEPROM. Dane zapisane w EEPROM-ie nie giną po wyłączeniu zasilania. Jest to niezmiernie cenna zaleta, bo można tu przechowywać różne dane, na przykład ostatnie ustawienia czy nawet wyniki pomiarów. Pamięć EEPROM wykorzystujemy według własnego uznania. Nie jest to jednak konkurencja dla RAM-u, bo zapis EEPROM-u jest powolny, trwa tysiące razy dłużej, niż zapis RAM-u. Koniecznie trzeba też pamiętać, że liczba cykli zapisu jest ograniczona, do razy (liczba cykli odczytu nie jest ograniczona). Wydawałoby się, że cykli zapisu to dużo, ale jeśli czas spodziewanej pracy procesora wynosi kilkanaście lat, pamięć EEPROM nie może być modyfikowana częściej niż l raz na godzinę. W praktyce EEPROM służy do zapamiętywania rzadko zmienianych danych i ustawień. .
7
Rejestry dodatkowe Nawet pobieżne przejrzenie karty katalogowej wskazuje, że nasz procesor ma więcej, niż deklarowane 128 bajtów pamięci RAM. Te dodatkowe komórki to tak zwane 8-bitowe rejestry. Czym różni się 8-bitowa komórka „zwykłej" pamięci RAM od 8-bitowego rejestru? Do zwykłej komórki RAM-u możemy wpisać jakąś wartość, konkretnie liczbę dwójkową z zakresu , a potem możemy tę liczbę wielokrotnie odczytywać. Rejestry też mogą pełnić rolę RAM-u, ale mają dodatkowe możliwości. Na przykład w naszym procesorze są 32 rejestry robocze ogólnego przeznaczenia (General Purpose Working Registers), które współpracują bezpośrednio z ALU i pozwalają łatwo przeprowadzać obliczenia i inne operacje. Nie można natomiast przeprowadzać operacji obliczeniowych bezpośrednio na komórkach „zwykłej" pamięci RAM - liczbę (liczby) z RAM-u trzeba przenieść do jednego z tych 32 rejestrów roboczych i dopiero „poddać obróbce". Pisząc program w BASCOM-ie nie musimy nic wiedzieć o tych 32 rejestrach, bo BASCOM sam zadba o właściwe ich wykorzystanie. Oprócz tych 32 rejestrów roboczych mamy jeszcze zarezerwowane miejsce na 64 dodatkowe, niezmiernie ważne rejestry, nazywanych rejestrami wejścia-wyjścia (Inputl Output Registers, I/O Registers).
8
System przerwań rys. 1 Nasz procesor oprócz ośmiu źródeł przerwań wewnętrznych, ma dwa wejścia przerwań zewnętrznych. Rolę tę mogą pełnić nóżki o numerach 6 i 7. Jak wskazuje rys. 1 nóżki te mogą być zwykłymi wejściami lub wyjściami, ale jeśli chcemy skorzystać z przerwań zewnętrznych, wykorzystamy je jako wejścia przerwań. Dlatego na schematach nóżki 6 i 7 oznaczane są też jako INTO i INT1.
9
Liczniki czyli timery. Omawiany mikroprocesor jest wyposażony w dwa liczniki (counter). Zazwyczaj liczniki te zliczają impulsy pochodzące z (wewnętrznego) generatora kwarcowego, przez co stają się licznikami czasu. Dlatego w opisach obok nazwy licznik używa się określenia timer. Jak (prawie) wszystko w proceso-rach, są to liczniki dwójkowe. Timer/licznik oznaczony T/CO (TCO) jest licznikiem 8-bitowym, czyli zlicza od O do 255 (dwójkowo: ). T/Cl (TC1) jest licznikiem 16-bitowym, a więc zliczającym od O do Liczniki te mogą zliczać impulsy wewnętrznego generatora kwarcowego (wprost, albo wstępnie podzielone) albo impulsy z zewnątrz (i wtedy można wybrać aktywne zbocze, zwiększające zawartość licznika). Wtedy jako wejścia zewnętrznych impulsów służą nóżki o numerach 8, 9, oznaczane tradycyjnie TO, Tl, jak pokazano na rys. 2. rys. 2
10
rys. 2 dalej
11
Liczniki zatrzymuje się i uruchamia programowo
Liczniki zatrzymuje się i uruchamia programowo. Można załadować do nich wstępnie jakąś liczbę. W dowolnej chwili można też odczytać zawartość pracujących liczników albo też wpisać do liczników nową zawartośC, co pozwala realizować różnorodne zadania. Zliczenie „do końca" i rozpoczęcie następnego cyklu Liczenia od zera może być wykorzystane jako sygnał przerwania dla procesora. Mówimy wtedy o (wewnętrznych) przerwaniach od timera. W układzie AT90S2313 licznik T/Cl ma dodatkowe obwody i oferuje bardzo pożyteczne możliwości. Choć szczegóły nie są Ci na razie niezbędne, wspomnę tylko ogólnie, że można w sposób cyfrowy na bieżąco porównywać zawartość pracującego licznika z podaną liczbą, a wynik w postaci stanu wysokiego lub niskiego jest dostępny na nóżce numer 15, która jak pokazuje rysunek 2, oznaczana jest dodatkowo OC1. Przy wykorzystaniu tego wyjścia licznik/timer T/Cl może być stosowany do generowania przebiegu prostokątnego o ustalonym okresie i wypeł-nieniu zależnym od podanej liczby.
12
UART Dla ułatwienia życia programistom, omawiany procesor został wyposażony w tak zwany UART (Universal Asynchronous Receiver and Transmitter), pozwalający w prosty sposób zrealizować transmisje w popularnym standardzie RS-232C. Oznacza to, że mikrokontroler w trakcie pracy może bez trudu porozumiewać się z komputerem PC lub innymi urządzeniami przez port szeregowy Jeśli procesor ma realizować dwukie-runkową transmisję szeregową z pomocą układu UART, należy wykorzystać końcówki o numerach 2, 3 oznaczane RXD (wejście odbiornika) oraz TXD (wyjście nadajnika), jak pokazuje to rys. 3. Obwody UART u naszego mikrokontrolera są dość skomplikowane, zawierają dodatkowe liczniki, ale są to liczniki zupełnie niezależne od omawianych wcześniej timerów T/CO i T/Cl. Układ UART może też być źródłem przerwań wewnętrznych, co oczywiście jest kolejnym udogodnieniem. rys. 3
13
rys. 3
14
Komparator analogowy Omawiany mikrokontroler, ma „na pokładzie" pożyteczny element analogowy: komparator. Komparator porównuje napięcia, podawane na jego dwa wejścia. Ten analogowy komparator może być wykorzystywany rozmaicie, na przykład do realizacji prostych przetworników analogowo-cyfrowych. Jak widać na rys. 4, wej-ściami komparatora są końcówki o numerach 12, 13, które analogicznie jak w poprzednich przypadkach, mogą oczywiście być „zwykłymi" wejściami lub wyjściami. Stan wyjścia komparatora można odczytać programowo, można też wykorzystać go jako sygnał przerwania lub jako polecenie przechwycenia stanu licznika T/Cl. Aby wykorzystać ten analogowy komparator, trzeba go włączyć (dosłownie włączyć zasilanie). Wykonuje się to programowo, wpisując jedynkę do odpowiedniego bitu. rys. 4
15
rys. 4
16
Watchdog W większości współczesnych mikrokontrolerów watchdog jest jednym z elementów ich architektury i nie trzeba stosować dodatkowego sprzętu. A system udostępnia rozkazy procesora do ustawiania parametrów i resetowania watchdoga. Watchdog (ang. pies łańcuchowy) to urządzenie, najczęściej układ elektroniczny, chroniący system mikroprocesorowy przed zbyt długim przebywaniem w stanie zawieszenia. Jego działanie polega na zresetowaniu procesora w przypadku nieotrzymania w określonym czasie sygnału generowanego przez program. W oprogramowaniu umieszcza się funkcję ustawiającą wartość licznika na pewną wartość początkową. Z upływem czasu mierzonego przez niezależny od procesora zegar, wartość licznika zmienia się (zwykle maleje), co określony czas. Jeśli osiągnie pewną wartość, zwykle jest nią 0, następuje opisane zresetowanie procesora lub generowane jest przerwanie. Jednym z założeń poprawnej pracy systemu z watchdogiem jest ustawianie na nowo wartości licznika co pewien czas. Ta funkcja jest umieszczana w programach tak, by wykonywać się co czas mniejszy od czasu wyzerowania licznika. Jeśli program przestanie działać poprawnie - np.: wpadnie w wieczną pętlę i nie będzie ustawiał licznika na nowo, można założyć że reset jest uzasadniony. W ten sposób watchdog chroni system komputerowy przed nieprzewidzianym zatrzymaniem się. Analogią watchdoga w technice niekomputerowej jest samoczynne hamowanie pociągu - maszynista musi co pewien czas naciskać przycisk. Jeśli nie zauważy sygnału świetlnego każącego mu nacisnąć przycisk i nie naciśnie przycisku w odpowiednim czasie, można założyć, że przestał kierować pociągiem. W tej niewłaściwej sytuacji pociąg zostaje zatrzymany automatycznie
17
Port = 1 T3 – wyłączony , wejście pływające
Zawartość komórki DD określa tryb pracy komórki portu (0 – wejście, 1 - wyjście). Gdy DD = 1, obwód pracuje jako wyjścia i wtedy zawartość komórki Port określa stan logiczny końcówki P, który jest taki sam jak komórki Port (0 – przewodzi T1, 1 – przewodzi T2). Gdy DD = 0, obwód pracuje jako wejścia i blokuje bufor, wyłączając oba tranzystory T1 i T2. Stan komórki Port decyduje o stanie tranzystora podciągającego T3. Port = 1 T3 – wyłączony , wejście pływające Port = 0 T3 – włączony , wejście podciągnięte Mapa rejestrów
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.