równoległe (w wersji 4-, 8- i 16-bitowej). Same wyświetlacze ze względu na budowę i możliwości możemy podzielić na dwie grupy:

Podobne dokumenty
Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Wbudowane układy peryferyjne cz. 2 Wykład 8

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Komunikacja w mikrokontrolerach Laboratorium

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

2. Architektura mikrokontrolerów PIC16F8x... 13

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

Układy czasowo-licznikowe w systemach mikroprocesorowych

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Metody obsługi zdarzeń

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Programowanie mikrokontrolerów. 8 listopada 2007

2.1 Porównanie procesorów

Wstęp Architektura... 13

Kod produktu: MP-BT-RS232

Kod produktu: MP-BTM222-5V

Przerwania, polling, timery - wykład 9

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Programowanie Mikrokontrolerów

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Opis czytnika TRD-55 CLASSIC ver Moduł czytnika transponderów UNIQUE z zewnętrzną anteną

Hardware mikrokontrolera X51

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Mikroprocesory i Mikrosterowniki Laboratorium

Programowanie mikrokontrolerów. 5 grudnia 2007

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Kod produktu: MP01105

Kod produktu: MP01611

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

MIKROPROCESORY architektura i programowanie

Kod produktu: MP01105T

Technika Mikroprocesorowa

interfejs szeregowy wyświetlaczy do systemów PLC

Architektura komputerów

Problematyka sieci miejscowej LIN

SML3 październik

Układy czasowe / liczniki (timers/counters)

Komunikacja w mikrokontrolerach Laboratorium

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Sterowniki Urządzeń Mechatronicznych laboratorium. Ćw. 3: Timer v1.0

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Programowanie mikrokontrolerów 2.0

. Rodzaje transmisji sygnału i RS-232

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Opis czytnika TRD-HOT COMBO ver Naścienny czytnik transponderów UNIQUE w podświetlanej obudowie

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Podstawy Techniki Mikroprocesorowej Laboratorium

Politechnika Wrocławska

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

RS-H0-05 (K)* Czytnik RFID MHz Mifare. Karta użytkownika

MIKROPROCESORY architektura i programowanie

TECHNIKA MIKROPROCESOROWA

SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

WPROWADZENIE Mikrosterownik mikrokontrolery

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Moduł licznika położenia LP 2.

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Systemy wbudowane Obsługa interfejsu 1-Wire na przykładzie termometru DS18B20

Architektura mikrokontrolera MCS51

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

SYSTEM PRZERWAŃ ATmega 32

Programowanie w językach asemblera i C

Organizacja typowego mikroprocesora

Enkoder magnetyczny AS5040.

Architektura mikrokontrolera MCS51

Zastosowania mikrokontrolerów w przemyśle

TECHNIKA MIKROPROCESOROWA II

Sterownik nagrzewnic elektrycznych HE module

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Odbiór i dekodowanie znaków ASCII za pomocą makiety cyfrowej. Znaki wysyłane przez komputer za pośrednictwem łącza RS-232.

Instrukcja obsługi czytnika MM-R32

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

Komunikacja w mikrokontrolerach Laboratorium

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Mikroprocesor Operacje wejścia / wyjścia

PUNKTOWE STEROWNIKI VERSAMAX MICRO

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

1.2. Architektura rdzenia ARM Cortex-M3...16

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Opis czytnika TRD-PARK COMBO ver Uniwersalny czytnik transponderów UNIQUE - wersja dla parkingów

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Transkrypt:

Gdańsk, 2017 1

Wyświetlacz LCD Zawierają zazwyczaj scalone kontrolery, stąd też procesor nie steruje bezpośrednio matrycą LCD, ale komunikuje się z wyspecjalizowanym sterownikiem, który realizuje jego polecenia. Wyświetlacze LCD mogą być łączone z mikrokontrolerem przy pomocy różnych magistrali najczęściej są to magistrale SPI lub równoległe (w wersji 4-, 8- i 16-bitowej). Same wyświetlacze ze względu na budowę i możliwości możemy podzielić na dwie grupy: Wyświetlacze alfanumeryczne umożliwiają one wyświetlanie cyfr, liter i innych symboli. Jednak w tym typie nie mamy możliwości sterowania poszczególnymi pikselami. Wyświetlacze graficzne w tym typie sterować możemy stanem każdego piksela. 2

Wyświetlacz LCD Obsługa wyświetlaczy alfanumerycznych Wyświetlacze alfanumeryczne zbudowane są z matryc pikseli, zwykle o wielkości 5 8 pikseli, pogrupowanych razem. Ponieważ nie sterujemy poszczególnymi pikselami, do kontrolera wysyłamy tylko kod znaku, który ma zostać wyświetlony na danej pozycji. Kontroler na podstawie kodu znaku generuje adres do specjalnego obszaru pamięci, tzw. tablicy znaków, w której znajduje się bajtowa reprezentacja poszczególnych pikseli tworzących znak. Zwykle jednak kontrolery udostępniają możliwość definicji kilku własnych znaków. Najpopularniejszym kontrolerem stosowanym w wyświetlaczach alfanumerycznych jest HD44780. 3

Wyświetlacz LCD Obsługa wyświetlaczy alfanumerycznych Sposób podłączenia modułu LCD z mikrokontrolerem: podłączone wszystkie 8 linii danych (D0 D7), albo tylko 4 najstarsze (D4 D7). W trybie 4-bitowym najpierw transferowana jest starsza, a potem młodsza tetrada. Układ HD44780 wyposażony jest w 64 bajty pamięci CGRAM (ang. CharacterGenerator RAM), która może przechowywać mapy bitowe 8 znaków o matrycy 5 8 pikseli lub 4 znaków o matrycy 5 10 pikseli. 4

Wyświetlacz LCD 5

Wyświetlacz LCD Inicjalizacja wyświetlacza LCD Krok 1 zerowanie wyświetlacza. Flaga zajętości BF jest ustawiana w stan 1 i może być testowana dopiero po wysłaniu pierwszego słowa operacyjnego. 6

Wyświetlacz LCD Inicjalizacja wyświetlacza LCD Krok 2 wysłanie słowa operacyjnego ustawiającego parametry wyświetlacza. Przed wysłaniem każdego kolejnego słowa (danej, lub instrukcji) należy sprawdzić flagę gotowości BF. 7

Wyświetlacz LCD Inicjalizacja wyświetlacza LCD Krok 3 włączenie / wyłączenie wyświetlacza. 8

Wyświetlacz LCD Inicjalizacja wyświetlacza LCD Krok 4 zerowanie wyświetlacza Krok 5 ustawianie trybu pracy wyświetlacza 9

Wyświetlacz LCD Zestawienie instrukcji sterujących 10

Wyświetlacz LCD Definicja nowego znaku Krok 1 wpisanie adresu CGRAM (D7 = 0, D6 = 1, D5..D0 = adres) Adresy początków definicji znaków dla matrycy 5 7 są wielokrotnością ośmiu (np. 00H, 08H, 10H,...), a dla matrycy 5 10 są wielokrotnością szesnastu (np. 00H, 10H, 20H...). Krok 2 wpisanie danych definiujących symbol Od tej pory zdefiniowany znak jest dostępny jako znak o kodzie 01H 11

Wyświetlacz LCD 12

Wyświetlacz LCD 13

Interfejs 1-wire Interfejs 1-wire jest bardzo prostym interfejsem, stworzonym do łączenia urządzeń na duże odległości (nawet do kilkuset metrów), przy czym transmisja odbywa się stosunkowo wolno. Interfejs ten składa się tylko z jednego przewodu sygnałowego, po którym przesyłane są dane dwukierunkowo, oraz linii masy łączącej urządzenia. Urządzenia slavepodłączone do tego interfejsu mogą mieć własne zasilanie lub mogą być zasilane przez linię danych (tzw. tryb pasożytniczy, ang. parasitepower). Dzięki temu do podłączenia urządzeń slavewymagane są tylko dwa przewody (masa oraz przewód sygnałowy, który jednocześnie pełni rolę przewodu zasilającego). Urządzenia mogą być łączone ze sobą przy pomocy dowolnego kabla, lecz jego lepsza jakość zapewnia możliwość tworzenia bardziej rozległych sieci. 14

Interfejs 1-wire W skład dostępnych urządzeń slave wchodzą: termometry cyfrowe, np. popularne DS1820, 18S20, 18B20, przetworniki ADC, ekspandery magistrali 1-wire, pamięci, układy IO. Interfejs 1-wire zakłada istnienie tylko jednego urządzenia master i dowolnej liczby urządzeń slave. Urządzenia slave identyfikowane są przy pomocy unikalnego 8- bajtowego identyfikatora, nadawanego urządzeniu w czasie produkcji. Wszelkie transfery na magistrali inicjowane są przez urządzenie master, urządzenia slave same nie wykazują żadnej aktywności. Wymiana danych odbywa się szeregowo, począwszy od najmniej znaczącego bitu. 15

Interfejs 1-wire W stanie spoczynku magistrala utrzymywana jest w stanie 1 przez rezystor podciągający (typowo o wartości 4,7 kω), natomiast stan 0 wymuszany jest przez urządzenie master lub slave. Jeśli jednocześnie dwa lub więcej urządzeń slavepróbują nadawać, wygrywa to urządzenie, które nadaje wartość 0 (stan wysoki magistrali jest stanem recesywnym). Typowo dla magistrali 1-wire uzyskuje się prędkość do ok. 16 kbps, przy czym istnieją specjalne tryby (ang. overdrive), w których prędkość można kilkakrotnie zwiększyć (do ok. 125 kbps). Każdą operację na magistrali inicjuje urządzenie master. Operacje dzielą się na operacje odczytu (w efekcie jeden bit przesyłany jest z urządzenia slavedo urządzenia master) i operacje zapisu (urządzenie master przesyła jeden bit danych do urządzenia slave). 16

Interfejs 1-wire Schemat protokołu komunikacyjnego 17

Interfejs 1-wire Schemat protokołu komunikacyjnego Każda transakcja na magistrali rozpoczyna się od zainicjowania podłączonych do niej urządzeń przy pomocy specjalnej sekwencji nazywanej RESET PULSE. Sekwencja ta jest generowana przez urządzenie master i polega na wymuszeniu na magistrali niskiego poziomu logicznego przez okres 480 960 μs. Po tym czasie urządzenie master zwalnia magistralę i oczekuje na tzw. PRESENCE PULSE. Jest to ujemny impuls, generowany przez urządzenia slave o długości ok. 60 240 μs, rozpoczynający się ok. 15 60 μspo zakończeniu RESET PULSE. Dzięki temu urządzenie master wie, że do magistrali przyłączone są inne urządzenia (przynajmniej jedno urządzenie). 18

Interfejs 1-wire Schemat komunikacji Lista poleceń (dla wszystkich urządzeń slave) 19

Interfejs 1-wire Każdy układ 1-wire ma swój unikalny numer identyfikacyjny. Jest on nadawany na etapie produkcji układu i nie można go zmienić. Gwarantuje to, że na magistrali nie znajdą się dwa układy o takim samym identyfikatorze. Kod rodziny układu to 8-bitowe pole informujące o typie zastosowanego układu. ID kończy się wartością CRC obliczoną na podstawie poprzedzających 7 bajtów, co umożliwia stwierdzenie poprawności odczytanego kodu. 20

Interfejs 1-wire Realizacja master 1-wire na AVR Co prawda mikrokontrolery AVR nie dysponują sprzętowo realizowanym interfejsem 1-wire, lecz jego programowa emulacja jest niezwykle prosta. Do realizacji transmisji 1-wire można wykorzystać różne interfejsy (UART, timery, interfejs IO). Realizację układu master można podzielić na dwa etapy realizację procedur niskopoziomowego dostępu do magistrali (funkcje inicjujące wykorzystywany interfejs, inicjujące magistralę, wysyłające i odbierające bit danych) oraz funkcje wysokopoziomowe, umożliwiające realizację całych transakcji. Takie podzielenie funkcji umożliwia łatwą zmianę interfejsu sprzętowego wykorzystywanego do realizacji interfejsu 1-wire, bez konieczności wprowadzania daleko idących zmian w pozostałych funkcjach obsługi. 21

Timery Liczniki (timery) są elementem wchodzącym w skład każdego procesora z rodziny AVR. W najprostszej postaci timerjest licznikiem, który potrafi zliczać od 0 do pewnej maksymalnej wartości, zależnej od długości licznika. Dla liczników 8-bitowych zlicza od 0 do 255, dla liczników 16-bitowych od 0 do 65 535. Tempo zliczania można określić, wybierając źródło sygnału taktującego licznik. Po osiągnięciu przez licznik wartości maksymalnej zliczanie jest kontynuowane od zera (licznik przekręca się ). Zliczanie to jest niezależne od wykonywania przez procesor programu i może zostać wstrzymane tylko przez odłączenie sygnału taktującego licznik. 22

Timery Mogą być użyte do: generowania przebiegu PWM, działania jako 8- lub 16-bitowe liczniki, precyzyjnego odmierzania czasu, zliczania impulsów zewnętrznych, mierzenia czasu pomiędzy impulsami, generowania przebiegów o określonej częstotliwości pomiarów wypełnienia przebiegu zewnętrznego, tworzenia zegarów RTC, sterowania przebiegiem wykonywanego programu, generowania impulsów inicjujących pracę innych układów, np. ADC i wielu innych rzeczy. 23

Timery Sygnał taktujący Wewnętrzny Najprostszą możliwością jest wykorzystanie do taktowania timerasygnału zegarowego taktującego procesor. Sygnał ten może zostać doprowadzony bezpośrednio do timera lub poprzez specjalny dzielnik, tzw. preskaler. Zewnętrzny Timermoże być taktowany zewnętrznym sygnałem doprowadzonym do pinu procesora (zwykle oznaczonym jako Tn, gdzie n to numer timera). Sygnał ten musi mieć częstotliwość nie większą niż częstotliwość taktowania procesora/2, przy założeniu, że ma on współczynnik wypełnienia równy 50%. Zewnętrzny sygnał taktujący nie może być dzielony przy pomocy preskalera. Jest on bezpośrednio używany do taktowania licznika. 24

Timery Licznik Licznik może być 8-lub 16-bitowy. Jego wartość zmienia się po każdym okresie zegara taktującego timeri w zależności od konfiguracji może ulec zwiększeniu lub zmniejszeniu o 1. Po osiągnięciu wartości maksymalnej (ang. Top) licznik może zawijać się lub może zacząć liczyć w dół. Analogicznie dzieje się po osiągnięciu wartości minimalnej (ang. Bottom). Sposób zachowania się licznika po osiągnięciu skrajnych pozycji określony jest przez tryb pracy timera. Osiągnięcie wartości skrajnych (przepełnienie licznika) sygnalizowane jest poprzez ustawienie bitu TOVn(ang. Timer/Countern OverflowFlag) rejestru TIFR (ang. Timer/Countern InterruptFlag Register). 25

Timery Licznik Flaga ta może być traktowana jako dodatkowy bit rejestru licznika. Jest ona kasowana programowo, poprzez wpisanie do niej wartości 1, lub automatycznie po skoku do procedury obsługi przerwania przepełnienia licznika (TIMERn_OVF_vect). Przerwanie przepełnienia licznika można odblokować poprzez ustawienie bitu TOIEn(ang. Timer/Counter n Overflow Interrupt Enable)rejestru TIMSK (ang. Timer/Countern InterruptMaskRegister). Licznik można programowo inicjować dowolną wartością, można także w każdej chwili rejestr licznika odczytywać. Operacji tych dokonuje się poprzez rejestr TCNTn(ang. Timer/Counter Register). 26

Timery Układ porównywania danych Z każdym licznikiem timerazwiązany jest jeden lub więcej rejestrów, których zawartość jest stale porównywana z licznikiem. Są to rejestry OCRn(ang. OutputCompareRegister). Pozytywny wynik porównania rejestru TCNTn z danym rejestrem OCRn powoduje ustawienie flagi OCFn(ang. Timer/Counter n Output Compare MatchFlag) w rejestrze TIFRn każdy z rejestrów OCR ma własną flagę. Jej zerowanie odbywa się programowo, poprzez wpisanie na odpowiednią pozycję rejestru wartości 1, lub automatycznie, po wykonaniu skoku do procedury obsługi przerwania TIMERn_COMPx_vect. Aby wywołanie takiego przerwania było możliwe, należy ustawić odpowiednią flagę zezwolenia na przerwanie OCIEn(ang. Timer/Counter Output Compare Match Interrupt Enable) w rejestrze TIMSKn. 27

Timery Wpływ na piny I/O Zdarzenie CompareMatchmoże także służyć do generowania przebiegów na pinach IO procesora. Jego wpływ na generowany sygnał określany jest kombinacją bitów COM0:1 rejestru kontrolnego timera. Znaczenie bitów COM w przypadku pracy timeraw trybach innych niż PWM. 28

Timery Wpływ na piny I/O Znaczenie bitów COM w przypadku pracy timeraw trybie FAST PWM. Znaczenie bitów COM w przypadku pracy timeraw trybie PWM z korekcją fazy. 29

Timery Tryby pracy 30

Timery Tryb prosty Jest to najprostszy i domyślny tryb pracy licznika. W tym trybie licznik liczy od 0 do wartości maksymalnej (255 lub 65 535), po czym rozpoczyna liczenie od nowa. Każde przekręcenie się licznika generuje przerwanie TIMn_OVF_vect (o ile oczywiście ustawiono odpowiednią flagę zezwolenia na przerwanie), w każdej sytuacji ustawiany jest bit TOV. Tryb CTC W tym trybie licznik zlicza aż do uzyskania wartości określonej w rejestrze OCR lub ICR. Po doliczeniu do wartości określonej rejestrami OCR lub ICR licznik jest zerowany, a liczenie odbywa się od początku. W tym trybie nie jest generowane przerwanie przepełnienia licznika TIMn_OVF_vect. Zamiast tego należy używać wektora TIMn_COMP_vect lub TIMn_CAPT_vect, w zależności od tego, czy używany jest do porównania rejestr OCR, czy ICR. 31

Timery Tryby PWM PWM (ang. PulseWidthModulation) jest metodą polegającą na modulacji szerokości impulsu (zmianie współczynnika wypełnienia przebiegu) przy zazwyczaj jego stałej częstotliwości i amplitudzie. Technika PWM jest wykorzystywana do kontroli układów analogowych przy pomocy układu cyfrowego. Zmieniając współczynnik wypełnienia impulsów, można regulować moc dostarczaną do układu, dzięki czemu w zależności od konfiguracji reguluje się amplitudę sygnału, prąd lub oba parametry jednocześnie. PWM znajduje także zastosowanie w regulacji obrotów silników, jasności diod LED. i wielu innych. 32

Timery Tryb Fast PWM W trybie szybkiego PWM (ang. Fast PWM) licznik liczy od zera do wartości maksymalnej, która może być ustawiona na stałe (zazwyczaj rozdzielczość wtedy wynosi 8, 9 lub 10 bitów), lub do wartości określonej przez rejestr OCRnA lub ICPn. W trybie tym licznik zlicza tylko w górę. W zależności od konfiguracji licznika osiągnięcie wybranego stanu sygnalizowane jest ustawieniem flagi TOV, ICF lub OCF. W przypadku odblokowania stosownych przerwań generowane są także przerwania o wektorach TIMn_OVF_vect, TIMn_CAPT_vectlub TIMn_COMP_vect. Jednak wraz ze zmianą współczynnika wypełnienia zmienia się faza generowanego przebiegu. 33

Timery Tryb PWM z korektą fazy Tryby PWM z korekcją fazy lub korekcją fazy stosowane są w sytuacjach, w których zmiana współczynnika wypełnienia nie powinna wpływać na fazę sygnału. W tym trybie licznik timeraodlicza od wartości najniższej do najwyższej, po jej osiągnięciu zaczyna odliczać ponownie do wartości najniższej, a następnie cały cykl się powtarza W chwili zaistnienia zdarzenia CompareMatchpomiędzy rejestrem TCNT a OCR, w chwili gdy licznik zlicza w górę, wyjście OCnjest zerowane. Przy ponownym zajściu tego zdarzenia, przy odliczaniu w dół, wyjście to jest ustawiane. Dodatkowo dostępny jest pin reprezentujący zanegowaną wartość stanu pinu OCn. 34

Timery Różnica pomiędzy zwykłym trybem PWM a trybem z korekcją fazy. A) i B) tryb Fast PWM z różnym współczynnikiem wypełnienia, C) i D) tryb PWM z korekcją fazy sygnału 35

Interfejs USART Mikrokontrolery AVR posiadają zwykle kilka takich interfejsów. W tym typie interfejsu sygnały Rxi Txdwóch urządzeń są skrzyżowane. Mikrokontrolery AVR nie implementują wszystkich sygnałów interfejsu RS232 do dyspozycji mamy tylko sygnały Rxoraz Tx, umożliwiające asynchroniczne nadawanie i odbiór znaków. Istnieje możliwość skonfigurowania mikrokontrolera w sposób pozwalający na transmisję synchroniczną z wykorzystaniem dodatkowej linii zegarowej. Dodatkowe linie DTR, DCD, DSR, RI, RTS i CTS nie są wspierane sprzętowo przez mikrokontroler. Ponieważ standard elektryczny interfejsu RS232 odbiega od standardu TTL, aby poprawnie połączyć dwa urządzenia, wymagany jest specjalny układ transceivera, np. MAX232. 36

Interfejs USART Sposób podłączenia interfejsu USART z komputerem klasy PC. 37

Interfejs USART Każda transmisja na magistrali RS232 rozpoczyna się nadaniem tzw. bitu startu. Wartość tego bitu zawsze wynosi 0, dzięki czemu odbiornik może rozpocząć odbieranie danych. Po bicie startu wysyłanych jest 5 9 bitów danych, po czym opcjonalnie wysyłany jest tzw. bit parzystości oraz 1 2 bity stopu. Bit parzystości dobierany jest tak, aby w zależności od konfiguracji interfejsu całkowita liczba nadanych bitów o wartości 1 była parzysta lub nieparzysta. Dzięki temu odbiornik może kontrolować poprawność przesyłanych danych, a ewentualna niezgodność sygnalizowana jest jako błąd parzystości. 38

Interfejs USART Całą transmisję kończą tzw. bity stopu definiują one odcinek czasowy, w jakim magistrala musi pozostać w stanie bezczynności po nadaniu ramki danych. Jeśli w tym okresie na magistrali pojawi się jakaś transmisja, odbiornik zinterpretuje ją jako błąd ramki. Transmisja asynchroniczna Transmisja synchroniczna 39

Interfejs USART Aby dwa urządzenia podłączone przez interfejs RS232 mogły pomiędzy sobą wymieniać dane, wszystkie parametry interfejsu, takie jak prędkość, liczba bitów danych, parzystość i liczba bitów stopu, muszą być identyczne. 40