Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00242 004539 12795994 na godz. na dobę w sumie
AVR. Układy peryferyjne - ebook/pdf
AVR. Układy peryferyjne - ebook/pdf
Autor: Liczba stron: 584
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-9757-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> elektronika >> mikrokontrolery
Porównaj ceny (książka, ebook, audiobook).

Poznaj praktyczne zastosowania urządzeń peryferyjnych dla mikrokontrolera AVR!

Mikrokontrolery bez urządzeń peryferyjnych stanowią niszę rozwijaną głównie przez pasjonatów elektroniki, dla których programowanie jest celem samym w sobie. Praktyczne zastosowanie takich gadżetów jest możliwe dopiero po dołączeniu pamięci masowej, wyświetlacza alfanumerycznego i graficznego, przetworników analogowo-cyfrowych i cyfrowo-analogowych oraz czujników. Dzięki tym układom mikrokontrolery AVR komunikują się ze światem, zbierają informacje, magazynują dane i mogą służyć nam w codziennym życiu jako stacje pogodowe, odtwarzacze cyfrowe czy sterowniki ogrzewania.

 

Recenzja książki na Forbot.pl >>

 

Jeśli masz już pewną wiedzę na temat mikrokontrolerów AVR i chciałbyś ją wzbogacić o wiadomości dotyczące ciekawych zastosowań urządzeń peryferyjnych, sięgnij po jedyną w swoim rodzaju książkę AVR. Układy peryferyjne. Jest ona adresowana do czytelników, którzy chcą poszerzyć swoje praktyczne umiejętności programowania mikrokontrolerów AVR, w tym mikrokontrolerów z rodziny XMEGA. Stanowi naturalną kontynuację doskonałego podręcznika AVR. Praktyczne projekty, kierowanego do mniej zaawansowanych programistów. Książka omawia także specyficzne dla mikrokontrolerów AVR elementy języka C.

Twórz praktyczne rozwiązania z mikrokontrolerami AVR i układami peryferyjnymi!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Michał Mrowiec Projekt okładki: Studio Gravite / Olsztyn Obarek, Pokoński, Pazdrijowski, Zaprucki Fotografia na okładce została wykorzystana za zgodą Shutterstock.com Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/avrukp Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Kody źródłowe wybranych przykładów dostępne są pod adresem: ftp://ftp.helion.pl/przyklady/avrukp.zip ISBN: 978-83-246-9225-5 Copyright © Helion 2014 Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:264)ci Wst(cid:246)p .............................................................................................. 9 Sprz(cid:266)t .............................................................................................................................. 10 Przyk(cid:225)ady ........................................................................................................................ 11 Skróty jednostek ............................................................................................................. 12 Rozdzia(cid:228) 20. Zwalniamy, czyli kiedy opó(cid:274)nienia s(cid:241) konieczne .............................. 13 Opó(cid:296)nienia i XMEGA .................................................................................................... 18 Wykorzystanie timerów do realizacji opó(cid:296)nie(cid:276) .............................................................. 20 Rozdzia(cid:228) 21. (cid:227)(cid:241)czenie kodu C i asemblera .......................................................... 23 ABI ................................................................................................................................. 25 S(cid:225)owo kluczowe asm ...................................................................................................... 27 Typy operandów ....................................................................................................... 29 Dost(cid:266)p do portów IO ................................................................................................ 30 Dost(cid:266)p do danych wielobajtowych ........................................................................... 31 Dost(cid:266)p do wska(cid:296)ników ............................................................................................. 32 Lista modyfikowanych rejestrów ............................................................................. 32 Wielokrotne u(cid:298)ycie wstawki asemblerowej ............................................................. 33 Pliki .S ............................................................................................................................ 34 Wykorzystanie rejestrów w asemblerze ................................................................... 34 Dyrektywy asemblera ............................................................................................... 40 Wywo(cid:225)anie funkcji j(cid:266)zyka C z asemblera ................................................................ 41 Rozdzia(cid:228) 22. Wy(cid:264)wietlacze LCD alfanumeryczne .................................................. 43 Obs(cid:225)uga wy(cid:286)wietlaczy alfanumerycznych ...................................................................... 45 Funkcje biblioteczne ................................................................................................ 50 Definiowanie w(cid:225)asnych znaków ............................................................................... 56 Transakcyjna obs(cid:225)uga LCD ............................................................................................ 58 Optymalizacja .......................................................................................................... 68 Rozdzia(cid:228) 23. Interfejs SPI i USART SPI ............................................................... 71 Tryby pracy SPI .............................................................................................................. 74 Konfiguracja interfejsu SPI ............................................................................................ 75 Konfiguracja USART w trybie SPI ................................................................................ 76 Pami(cid:266)ci DataFLASH ...................................................................................................... 77 Organizacja pami(cid:266)ci ................................................................................................. 77 Interfejs SPI pami(cid:266)ci ................................................................................................ 79 Dost(cid:266)p do pami(cid:266)ci .................................................................................................... 81 Kup książkęPoleć książkę 4 AVR. Uk(cid:228)ady peryferyjne Polecenia .................................................................................................................. 81 Rejestr identyfikacyjny pami(cid:266)ci ............................................................................... 87 Polecenia odczytu pami(cid:266)ci ....................................................................................... 88 Polecenia odczytu i zapisu bufora ............................................................................ 89 Polecenia transferu pomi(cid:266)dzy pami(cid:266)ci(cid:261) a buforem .................................................. 91 Rejestry specjalne ..................................................................................................... 94 Transakcyjny dost(cid:266)p do SPI ........................................................................................... 95 (cid:224)(cid:261)czymy DMA ze SPI ............................................................................................. 96 Wywo(cid:225)ania zwrotne (callbacks) ............................................................................... 98 Transakcje .............................................................................................................. 103 Zasilanie ....................................................................................................................... 109 Rozdzia(cid:228) 24. Budujemy system plików .............................................................. 111 Najprostszy system plików ........................................................................................... 111 Inicjalizacja pami(cid:266)ci ............................................................................................... 119 System plików FAT/FAT32 ......................................................................................... 128 Obs(cid:225)uga FAT .......................................................................................................... 131 Prototypy z diskio.h ................................................................................................ 136 Demonstracja .......................................................................................................... 139 Biblioteka PetitFS .................................................................................................. 144 Konfiguracja PetitFS .............................................................................................. 149 Rozdzia(cid:228) 25. Jeszcze wi(cid:246)cej pami(cid:246)ci, czyli karty SD, SDHC i spó(cid:228)ka ................... 151 Troch(cid:266) o budowie karty ................................................................................................ 152 Tryby pracy karty ......................................................................................................... 153 Zasilanie karty .............................................................................................................. 154 Komunikacja ................................................................................................................ 156 Tryb pracy SPI ....................................................................................................... 157 Format protoko(cid:225)u .................................................................................................... 157 Ró(cid:298)nice pomi(cid:266)dzy kartami ..................................................................................... 160 Inicjalizacja karty ................................................................................................... 161 Rejestry specjalne karty ................................................................................................ 169 CID ......................................................................................................................... 169 CSD ........................................................................................................................ 172 Operacje zapisu i odczytu sektorów ............................................................................. 173 Operacje odczytu .................................................................................................... 173 Operacje zapisu ...................................................................................................... 176 Suma kontrolna ............................................................................................................. 178 Program .................................................................................................................. 178 Potencjalne problemy ................................................................................................... 179 FATFS na karcie .......................................................................................................... 180 Rozdzia(cid:228) 26. Debuger ....................................................................................... 183 Konfiguracja debugera ................................................................................................. 185 Konfiguracja projektu do debugowania ........................................................................ 186 Debuger sprz(cid:266)towy ....................................................................................................... 187 Debuger programowy (symulator) ................................................................................ 190 Plik stymulacji ........................................................................................................ 191 Pu(cid:225)apki .......................................................................................................................... 197 Punkty (cid:286)ledzenia ..................................................................................................... 203 Pu(cid:225)apki warunkowe ................................................................................................ 205 Podgl(cid:261)d pami(cid:266)ci ........................................................................................................... 207 Podgl(cid:261)d stosu wywo(cid:225)a(cid:276) ................................................................................................ 209 Okre(cid:286)lenie czasu symulacji ........................................................................................... 209 Okno dezasemblera ...................................................................................................... 210 Kup książkęPoleć książkę Spis tre(cid:264)ci 5 Okno podgl(cid:261)du zmiennych ........................................................................................... 211 (cid:224)a(cid:276)cuchy formatuj(cid:261)ce ............................................................................................ 212 Makrodefinicja ASSERT .............................................................................................. 214 Przerwania w trakcie debugowania .............................................................................. 218 _delay_xx i symulator .................................................................................................. 219 Rozdzia(cid:228) 27. Przetwornik analogowo-cyfrowy .................................................... 221 Przetwornik potokowy vs. cykliczny ............................................................................ 222 Napi(cid:266)cie referencyjne ................................................................................................... 223 Konfiguracja pinu IO .................................................................................................... 225 Multiplekser wej(cid:286)ciowy ................................................................................................ 226 Uk(cid:225)ad wzmacniania sygna(cid:225)u ......................................................................................... 227 Co to jest LSB? ............................................................................................................. 228 Kalibracja ADC ............................................................................................................ 229 Pomiar .......................................................................................................................... 231 Rozdzielczo(cid:286)(cid:252) przetwornika ................................................................................... 231 Tryby pracy przetwornika ...................................................................................... 231 Wynik pomiaru ....................................................................................................... 236 Kalibracja offsetu ................................................................................................... 237 Pomiar napi(cid:266)cia zasilania i temperatury mikrokontrolera ...................................... 239 Redukcja poboru energii ............................................................................................... 242 Preskaler ADC .............................................................................................................. 243 Wyzwalanie konwersji z wykorzystaniem systemu zdarze(cid:276) ........................................ 245 Rejestr EVCTRL w XMEGA z ADC bez potoku .................................................. 248 Rejestr porównania ....................................................................................................... 249 Termometr LM35 ................................................................................................... 250 Budujemy termometr z alarmem ............................................................................ 251 Tryb ci(cid:261)g(cid:225)ej konwersji .................................................................................................. 252 Przemiatanie wej(cid:286)(cid:252) ....................................................................................................... 253 Przerwania .................................................................................................................... 254 Wykorzystanie DMA do transferu wyników ................................................................ 254 Nadpróbkowanie ........................................................................................................... 258 U(cid:286)rednianie ............................................................................................................ 259 Decymacja i interpolacja ........................................................................................ 259 Interpolacja i decymacja w XMEGA ..................................................................... 260 Jak zwi(cid:266)kszy(cid:252) precyzj(cid:266) pomiarów? .............................................................................. 260 Budujemy datalogger .................................................................................................... 261 Termistory jako mierniki temperatury .................................................................... 262 Program dataloggera .............................................................................................. 265 Rozdzia(cid:228) 28. Komparator analogowy ................................................................. 279 Komparator — troch(cid:266) teorii .......................................................................................... 279 Czas propagacji ...................................................................................................... 281 Histereza ................................................................................................................. 281 Komparatory analogowe XMEGA ............................................................................... 282 Multipleksery wej(cid:286)cia ............................................................................................ 283 Komparator okienkowy .......................................................................................... 284 Przerwania .............................................................................................................. 286 Uruchomienie komparatora .................................................................................... 287 Rejestr stanu komparatora ...................................................................................... 287 Komparator jako oscylator ........................................................................................... 287 Termostat z wykorzystaniem komparatorów ................................................................ 290 Termistory .............................................................................................................. 290 Kup książkęPoleć książkę 6 AVR. Uk(cid:228)ady peryferyjne Rozdzia(cid:228) 29. DAC ............................................................................................. 293 Buforowanie wyj(cid:286)cia .................................................................................................... 294 Napi(cid:266)cie referencyjne ................................................................................................... 295 Taktowanie ................................................................................................................... 296 Zdarzenia ...................................................................................................................... 297 Wykorzystanie DMA .................................................................................................... 298 Próbkowanie 8-bitowe ............................................................................................ 300 Tryb dwukana(cid:225)owy ................................................................................................. 301 Generowanie jednocze(cid:286)nie dwóch przebiegów ...................................................... 301 Wersja oszcz(cid:266)dna ................................................................................................... 304 Inne sposoby wyzwalania konwersji ...................................................................... 305 Tryb oszcz(cid:266)dzania energii ............................................................................................ 306 Kalibracja DAC ............................................................................................................ 306 Rozdzia(cid:228) 30. Monochromatyczne wy(cid:264)wietlacze graficzne ................................... 309 Pod(cid:225)(cid:261)czenie LCD do mikrokontrolera .......................................................................... 311 Budowa i funkcje kontrolera ST7565R ........................................................................ 313 Funkcje specjalne kontrolera ........................................................................................ 319 Inwersja i testowanie obrazu .................................................................................. 319 Obracanie obrazu .................................................................................................... 319 Regulacja kontrastu ................................................................................................ 321 Numer pierwszej wy(cid:286)wietlanej linii ....................................................................... 321 Czcionki ....................................................................................................................... 322 Ma(cid:225)a optymalizacja ...................................................................................................... 330 Podwójne buforowanie ................................................................................................. 332 Adres pocz(cid:261)tku wy(cid:286)wietlania obrazu ..................................................................... 333 Menu ............................................................................................................................. 335 Menu oparte na piktogramach ................................................................................ 342 Rozdzia(cid:228) 31. Pliki z danymi — jak je dodawa(cid:232) do projektu? ............................... 349 Kompilacja plików binarnych ....................................................................................... 350 (cid:224)(cid:261)czenie plików obiektowych z projektem .................................................................. 352 Dost(cid:266)p do danych binarnych ........................................................................................ 356 Klasyczny sposób dost(cid:266)pu do danych .................................................................... 358 Dost(cid:266)p do danych z wykorzystaniem przestrzeni adresowych ............................... 359 Rozdzia(cid:228) 32. Magistrala pami(cid:246)ci zewn(cid:246)trznej .................................................... 361 Pod(cid:225)(cid:261)czenie pami(cid:266)ci ..................................................................................................... 362 Konfiguracja portów IO ......................................................................................... 362 Przyporz(cid:261)dkowanie sygna(cid:225)ów interfejsu EBI do portów IO ................................... 363 Konfiguracja 4-portowa ......................................................................................... 364 Pami(cid:266)(cid:252) SRAM ........................................................................................................ 366 Pami(cid:266)(cid:252) SRAM w trybie LPC ................................................................................. 371 Pami(cid:266)(cid:252) SDRAM ..................................................................................................... 372 Konfiguracja sygna(cid:225)u CS .............................................................................................. 377 Okre(cid:286)lenie adresu bazowego i wielko(cid:286)ci pami(cid:266)ci .................................................. 377 Uk(cid:225)ad sterowania sygna(cid:225)em wyboru w trybie SRAM ............................................ 379 Uk(cid:225)ad sterowania sygna(cid:225)em wyboru w trybie SDRAM .......................................... 379 Przyk(cid:225)adowa konfiguracja pami(cid:266)ci SDRAM ................................................................ 381 Konfiguracja zegara ...................................................................................................... 383 Dost(cid:266)p do pami(cid:266)ci z poziomu j(cid:266)zyka C ........................................................................ 384 Dost(cid:266)p do pami(cid:266)ci poni(cid:298)ej granicy 64 kB .............................................................. 384 Dost(cid:266)p do pami(cid:266)ci powy(cid:298)ej granicy 64 kB ............................................................ 386 Kup książkęPoleć książkę Spis tre(cid:264)ci 7 Rozdzia(cid:228) 33. Generowanie obrazu wideo ........................................................... 391 Generowanie obrazu wideo w standardzie VGA .......................................................... 393 Wtyczka VGA i konwersja sygna(cid:225)ów .................................................................... 396 Monochromatyczny tryb tekstowy VGA ................................................................ 397 Monochromatyczny tryb graficzny VGA ............................................................... 407 Generowanie sygna(cid:225)u composite .................................................................................. 409 Standard PAL ......................................................................................................... 410 Monochromatyczny tryb tekstowy ......................................................................... 413 Monochromatyczny tryb graficzny ........................................................................ 416 Tworzenie nak(cid:225)adek (OSD) .................................................................................... 417 Czas na kolor ................................................................................................................ 424 Kodowanie koloru .................................................................................................. 425 Konwerter cyfrowo-analogowy .............................................................................. 426 Generator obrazu composite ................................................................................... 426 Wykorzystanie EuroSCART .................................................................................. 428 Kolorowy obraz na TV ........................................................................................... 430 Rozdzia(cid:228) 34. Niech zagra muzyka ..................................................................... 439 Formaty plików d(cid:296)wi(cid:266)kowych ..................................................................................... 440 Cz(cid:266)stotliwo(cid:286)(cid:252) próbkowania .................................................................................... 441 Format pliku ........................................................................................................... 442 Obróbka d(cid:296)wi(cid:266)ku .......................................................................................................... 443 Program Audacity .................................................................................................. 443 Program SoX .......................................................................................................... 445 Wzmacniacz ................................................................................................................. 446 Odtwarzamy muzyk(cid:266) z wykorzystaniem DAC ............................................................. 447 Inny sposób na podwójne buforowanie .................................................................. 457 Generowanie d(cid:296)wi(cid:266)ku z wykorzystaniem PWM .......................................................... 461 PWM — troch(cid:266) teorii ............................................................................................. 461 Filtrowanie sygna(cid:225)u PWM ...................................................................................... 468 Odtwarzamy d(cid:296)wi(cid:266)k za pomoc(cid:261) 8-bitowego PWM ............................................... 472 Rozszerzenie HiRes i PWM o wi(cid:266)kszej rozdzielczo(cid:286)ci .......................................... 477 Kompresja d(cid:296)wi(cid:266)ku ...................................................................................................... 480 Próbkowanie nieliniowe ......................................................................................... 480 Kompresja ADPCM ............................................................................................... 482 Kompresja IMA ADPCM ....................................................................................... 482 Nagrywanie mowy z wykorzystaniem kompresji ADPCM .................................... 486 Algorytm ADPCM firmy Dialogic ......................................................................... 492 Rozdzia(cid:228) 35. A mo(cid:276)e mp3? ............................................................................... 495 Koprocesor mp3 ........................................................................................................... 496 Sposoby pod(cid:225)(cid:261)czenia do XMEGA .......................................................................... 496 Dost(cid:266)p do rejestrów uk(cid:225)adu .......................................................................................... 499 Format pliku wav .......................................................................................................... 500 Rejestry GPIOR ............................................................................................................ 502 Testy uk(cid:225)adu ................................................................................................................. 502 Podstawowa komunikacja z koprocesorem .................................................................. 504 Rejestry uk(cid:225)adu VS1003B ............................................................................................ 508 Rejestr trybu pracy ................................................................................................. 508 Rejestr stanu uk(cid:225)adu ............................................................................................... 510 Rejestr kontroli basów ............................................................................................ 510 Rejestr SCI_CLOCKF ............................................................................................ 511 Rejestr czasu utworu .............................................................................................. 512 Rejestr formatu audio ............................................................................................. 512 Kup książkęPoleć książkę 8 AVR. Uk(cid:228)ady peryferyjne Rejestry dost(cid:266)pu do pami(cid:266)ci RAM ......................................................................... 513 Rejestr adresu wtyczki ............................................................................................ 513 Rejestr kontroli g(cid:225)o(cid:286)no(cid:286)ci ....................................................................................... 513 Odtwarzamy muzyk(cid:266) .................................................................................................... 513 Odtwarzamy muzyk(cid:266) z wykorzystaniem DMA ...................................................... 518 Magnetofon cyfrowy .................................................................................................... 528 VS100XX w roli magnetofonu ............................................................................... 529 W(cid:225)asne wtyczki ............................................................................................................ 535 DTMF jako przyk(cid:225)ad w(cid:225)asnej wtyczki ................................................................... 535 Budujemy w(cid:225)asn(cid:261) wtyczk(cid:266) ........................................................................................... 541 Tworzenie tablicy z kodem wynikowym ................................................................ 543 Budowa wtyczki ..................................................................................................... 544 W(cid:225)asna aplikacja, czyli dekoder DTMF ................................................................. 548 Rozdzia(cid:228) 36. Fusebity i lockbity ........................................................................ 557 Fusebity ........................................................................................................................ 558 Fusebit JTAGEN .................................................................................................... 558 Fusebit RSTDISBL ................................................................................................ 559 Fusebit BOOTRST ................................................................................................. 559 Fusebity SUT ......................................................................................................... 559 Fusebit TOSCSEL .................................................................................................. 559 Uk(cid:225)ad detekcji awarii zasilania ............................................................................... 559 Watchdog ............................................................................................................... 560 Fusebit EESAVE .................................................................................................... 561 Lockbity ....................................................................................................................... 561 Sygnatura produkcyjna procesora ................................................................................. 563 Numer serii ............................................................................................................. 563 Numer wafra ........................................................................................................... 563 Po(cid:225)o(cid:298)enie na wafrze ............................................................................................... 564 Pozosta(cid:225)e bajty konfiguracyjne ............................................................................... 564 Sygnatura u(cid:298)ytkownika ................................................................................................ 565 Dost(cid:266)p do danych z poziomu aplikacji u(cid:298)ytkownika .................................................... 568 Bajty kalibracyjne .................................................................................................. 569 Konfiguracja fuse- i lockbitów w AVR-libc ................................................................. 570 Lockbity w AVR-libc ............................................................................................. 570 Fusebity w AVR-libc ............................................................................................. 571 Dodatek A Spis rozdzia(cid:228)ów ksi(cid:241)(cid:276)ki „AVR. Praktyczne projekty” ....................... 573 Skorowidz ....................................................................................................... 575 Kup książkęPoleć książkę Rozdzia(cid:228) 22. Wy(cid:264)wietlacze LCD alfanumeryczne Z tego rozdzia(cid:225)u dowiesz si(cid:266)... (cid:141) jak pod(cid:225)(cid:261)czy(cid:252) popularne wy(cid:286)wietlacze alfanumeryczne do XMEGA; (cid:141) jak stworzy(cid:252) bibliotek(cid:266) obs(cid:225)uguj(cid:261)c(cid:261) kontroler HD44780; (cid:141) jak przesy(cid:225)a(cid:252) polecenia dla LCD w formie transakcji i jak (cid:225)(cid:261)czy(cid:252) dost(cid:266)p do kontrolera z aplikacji i funkcji obs(cid:225)ugi przerwa(cid:276). Ze wzgl(cid:266)du na malej(cid:261)ce ceny, zwi(cid:266)kszaj(cid:261)c(cid:261) si(cid:266) dost(cid:266)pno(cid:286)(cid:252) oraz niski pobór energii coraz wi(cid:266)kszym zainteresowaniem ciesz(cid:261) si(cid:266) wy(cid:286)wietlacze LCD. W tym rozdziale zostan(cid:261) omówione wy(cid:286)wietlacze alfanumeryczne — ze uwagi na ich prostot(cid:266) s(cid:261) ci(cid:261)- gle najcz(cid:266)(cid:286)ciej stosowanymi typami wy(cid:286)wietlaczy. W dalszej cz(cid:266)(cid:286)ci ksi(cid:261)(cid:298)ki zostan(cid:261) omówione monochromatyczne wy(cid:286)wietlacze graficzne — daj(cid:261) one o wiele wi(cid:266)ksze mo(cid:298)liwo(cid:286)ci, ale ich sterowanie jest nieco bardziej skomplikowane. Ze wzgl(cid:266)du na ko- nieczno(cid:286)(cid:252) przesy(cid:225)ania sporej liczby danych wymagaj(cid:261) tak(cid:298)e szybszego interfejsu (cid:225)(cid:261)- cz(cid:261)cego z mikrokontrolerem. St(cid:261)d te(cid:298) zanim przejdziemy do ich praktycznego wyko- rzystania, b(cid:266)dziemy musieli bli(cid:298)ej zapozna(cid:252) si(cid:266) z kilkoma uk(cid:225)adami peryferyjnymi XMEGA. Wy(cid:286)wietlacze LCD alfanumeryczne zawieraj(cid:261) zazwyczaj scalone kontrolery, st(cid:261)d te(cid:298) procesor nie steruje bezpo(cid:286)rednio matryc(cid:261) LCD, ale komunikuje si(cid:266) z wyspecjalizo- wanym sterownikiem, który wykonuje jego polecenia. Dlatego te(cid:298) wykorzystanie te- go typu wy(cid:286)wietlaczy wymaga znajomo(cid:286)ci typu u(cid:298)ytego w nich sterownika. Wy(cid:286)wie- tlacze LCD mog(cid:261) by(cid:252) (cid:225)(cid:261)czone z mikrokontrolerem za pomoc(cid:261) ró(cid:298)nych magistral — najcz(cid:266)(cid:286)ciej s(cid:261) to magistrale SPI lub równoleg(cid:225)e (w wersji 4-, 8- i 16-bitowej). Same wy(cid:286)wietlacze ze wzgl(cid:266)du na budow(cid:266) i mo(cid:298)liwo(cid:286)ci mo(cid:298)emy podzieli(cid:252) na dwie grupy: (cid:141) Wy(cid:286)wietlacze alfanumeryczne — umo(cid:298)liwiaj(cid:261) one wy(cid:286)wietlanie cyfr, liter i innych symboli. Jednak w tym typie nie mamy mo(cid:298)liwo(cid:286)ci sterowania poszczególnymi pikselami. (cid:141) Wy(cid:286)wietlacze graficzne — w tym typie mo(cid:298)emy sterowa(cid:252) stanem ka(cid:298)dego piksela. Kup książkęPoleć książkę 44 AVR. Uk(cid:228)ady peryferyjne Aby wy(cid:286)wietlana na LCD zawarto(cid:286)(cid:252) by(cid:225)a widoczna, niezb(cid:266)dne jest pod(cid:286)wietlenie. Kupuj(cid:261)c wy(cid:286)wietlacz, musimy zwróci(cid:252) uwag(cid:266), czy jest on wyposa(cid:298)ony w jakie(cid:286) pod- (cid:286)wietlenie (mo(cid:298)na dosta(cid:252) wy(cid:286)wietlacze LCD bez pod(cid:286)wietlenia). Oczywi(cid:286)cie lepiej jest wybra(cid:252) wy(cid:286)wietlacz, który ma wbudowane pod(cid:286)wietlenie. Samo pod(cid:286)wietlenie mo(cid:298)e by(cid:252) wykonane w ró(cid:298)ny sposób. W starszych modelach spotyka si(cid:266) pod(cid:286)wietle- nie oparte na lampie CCFL (ang. Cold Cathode Fluorescent Lamp). Tego typu wy- (cid:286)wietlacze s(cid:261) zwykle wi(cid:266)ksze, ci(cid:266)(cid:298)sze, ale przede wszystkim wymagaj(cid:261) specjalnej przetwornicy do sterowania lamp(cid:261). Jej zadaniem jest generowanie wysokiego napi(cid:266)- cia niezb(cid:266)dnego do za(cid:286)wiecenia si(cid:266) lampy, a nast(cid:266)pnie utrzymywanie go w granicach zapewniaj(cid:261)cych jej prawid(cid:225)owe dzia(cid:225)anie. Wy(cid:286)wietlacze tego typu s(cid:261) wi(cid:266)c k(cid:225)opotliwe w u(cid:298)ytkowaniu, musimy wyda(cid:252) czasami sporo pieni(cid:266)dzy na odpowiedni(cid:261) przetworni- c(cid:266), a w dodatku trwa(cid:225)o(cid:286)(cid:252) takiej lampy jest krótsza ni(cid:298) diod LED. Wyst(cid:266)puj(cid:261) tak(cid:298)e problemy ze sterowaniem jasno(cid:286)ci(cid:261) pod(cid:286)wietlenia. W nowoczesnych wy(cid:286)wietlaczach LCD stosuje si(cid:266) praktycznie wy(cid:225)(cid:261)cznie pod(cid:286)wietlenie za pomoc(cid:261) diod LED. Nie wy- magaj(cid:261) one (cid:298)adnych wyrafinowanych przetwornic do zasilania, zwykle zadowalaj(cid:261) si(cid:266) napi(cid:266)ciem w granicach 3 – 12 V, maj(cid:261) te(cid:298) znacznie wi(cid:266)ksz(cid:261) trwa(cid:225)o(cid:286)(cid:252). Jasno(cid:286)ci(cid:261) takiego pod(cid:286)wietlenia z (cid:225)atwo(cid:286)ci(cid:261) mo(cid:298)na sterowa(cid:252), wykorzystuj(cid:261)c technik(cid:266) PWM. Pod(cid:286)wietlenie oparte na diodach LED mo(cid:298)e mie(cid:252) ró(cid:298)ny kolor — bia(cid:225)y, (cid:298)ó(cid:225)ty, zielony, niebieski, czerwony. Kolor mo(cid:298)emy sobie wi(cid:266)c dobra(cid:252) wg w(cid:225)asnych preferencji. Naj- nowsze wy(cid:286)wietlacze alfanumeryczne s(cid:261) wykonywane w technologii OLED — w tej technologii (cid:286)wiec(cid:261) poszczególne piksele, wi(cid:266)c taki wy(cid:286)wietlacz nie wymaga pod- (cid:286)wietlenia. Niejako przy okazji zyskujemy znacznie lepsze czasy prze(cid:225)(cid:261)czania pikseli — dla wy(cid:286)wietlaczy LCD, szczególnie w ni(cid:298)szych temperaturach, czas prze(cid:225)(cid:261)czania wynosi kilkadziesi(cid:261)t do kilkuset milisekund, co powoduje pojawienie si(cid:266) wyra(cid:296)nych „duchów” i psuje estetyk(cid:266). Wy(cid:286)wietlacze OLED nie maj(cid:261) tej wady. Jednak zazwyczaj s(cid:261) dro(cid:298)sze. Je(cid:276)eli mo(cid:276)esz, staraj si(cid:246) wybiera(cid:232) wy(cid:264)wietlacze LCD z pod(cid:264)wietleniem opartym na diodach LED lub wykonane w technologii OLED. Kolejn(cid:261) istotn(cid:261) kwesti(cid:261) jest regulacja kontrastu. Zwykle graficzne kolorowe LCD z wbu- dowanymi sterownikami automatycznie reguluj(cid:261) kontrast, dodatkowo sterownik ma zaimplementowane rejestry umo(cid:298)liwiaj(cid:261)ce wy(cid:225)(cid:261)cznie programow(cid:261) zmian(cid:266) kontrastu. W przypadku prostszych sterowników, wyst(cid:266)puj(cid:261)cych najcz(cid:266)(cid:286)ciej w wy(cid:286)wietlaczach monochromatycznych (zarówno alfanumerycznych, jak i graficznych), kontrast re- guluje si(cid:266), podaj(cid:261)c odpowiednie napi(cid:266)cie na jeden z pinów wy(cid:286)wietlacza. Jest to nie- zwykle istotne, gdy(cid:298) bez w(cid:225)a(cid:286)ciwego napi(cid:266)cia reguluj(cid:261)cego kontrast na wy(cid:286)wietlaczu nic nie zobaczymy. Mo(cid:298)emy w takiej sytuacji odnie(cid:286)(cid:252) b(cid:225)(cid:266)dne wra(cid:298)enie, (cid:298)e wy(cid:286)wie- tlacz nie dzia(cid:225)a. Z kolei je(cid:286)li kontrast b(cid:266)dzie zbyt du(cid:298)y, wszystkie piksele b(cid:266)d(cid:261) w(cid:225)(cid:261)- czone, co te(cid:298) mo(cid:298)e sugerowa(cid:252) b(cid:225)(cid:266)dne dzia(cid:225)anie LCD. Jedn(cid:241) z cz(cid:246)stszych przyczyn tego, (cid:276)e po prawid(cid:228)owym pod(cid:228)(cid:241)czeniu wy(cid:264)wietlacza LCD nic na nim nie wida(cid:232) albo wszystkie piksele s(cid:241) w(cid:228)(cid:241)czone, jest nieprawid(cid:228)owe napi(cid:246)cie na pinie reguluj(cid:241)cym kontrast. Kup książkęPoleć książkę Rozdzia(cid:228) 22. (cid:105) Wy(cid:264)wietlacze LCD alfanumeryczne 45 Obs(cid:228)uga wy(cid:264)wietlaczy alfanumerycznych Wy(cid:286)wietlacze alfanumeryczne s(cid:261) zbudowane z matryc pikseli, zwykle o wielko(cid:286)ci 5×8 pikseli, pogrupowanych razem. W tym typie wy(cid:286)wietlacza mo(cid:298)emy sterowa(cid:252) zawarto(cid:286)ci(cid:261) tak utworzonej matrycy znakowej, jednak nie ma mo(cid:298)liwo(cid:286)ci sterowania poszczególnymi pikselami. Najcz(cid:266)(cid:286)ciej spotykane wy(cid:286)wietlacze tego rodzaju mog(cid:261) wy(cid:286)wietla(cid:252) 1×8, 1×16, 2×16, 2×20, 4×16 znaków, gdzie pierwszy wymiar okre(cid:286)la liczb(cid:266) wy(cid:286)wietlanych wierszy, a drugi liczb(cid:266) znaków w wierszu. Poniewa(cid:298) nie steru- jemy poszczególnymi pikselami, do kontrolera wysy(cid:225)amy tylko kod znaku, który ma zosta(cid:252) wy(cid:286)wietlony na danej pozycji. Kontroler na podstawie kodu znaku generuje adres do specjalnego obszaru pami(cid:266)ci, tzw. tablicy znaków, w której znajduje si(cid:266) bajtowa reprezentacja poszczególnych pikseli tworz(cid:261)cych znak. Dla matrycy 5×8 ma ona 40 bitów. Tablica ta jest umieszczona w pami(cid:266)ci ROM kontrolera LCD, nie mo(cid:298)emy jej wi(cid:266)c zmienia(cid:252). Zwykle jednak kontrolery udost(cid:266)pniaj(cid:261) mo(cid:298)liwo(cid:286)(cid:252) definicji kilku w(cid:225)a- snych znaków, dzi(cid:266)ki czemu mo(cid:298)emy zdefiniowa(cid:252) np. znaki charakterystyczne dla j(cid:266)- zyka polskiego. Takie podej(cid:286)cie do generowania obrazu ma podstawow(cid:261) zalet(cid:266), jak(cid:261) jest prostota i zwi(cid:261)zane z tym niewielkie zapotrzebowanie na pami(cid:266)(cid:252) RAM. Do prze- chowania np. zawarto(cid:286)ci 8-znakowego wy(cid:286)wietlacza LCD wystarczy zaledwie 8 bajtów pami(cid:266)ci. Ma to szczególne znaczenie w prostych mikrokontrolerach, z niewielk(cid:261) ilo- (cid:286)ci(cid:261) pami(cid:266)ci RAM. Najpopularniejszym kontrolerem stosowanym w wy(cid:286)wietlaczach alfanumerycznych jest HD44780; nawet je(cid:286)li w posiadanym wy(cid:286)wietlaczu jest inny kontroler, to mamy du(cid:298)(cid:261) szans(cid:266), (cid:298)e jest on z nim kompatybilny. Typowy rozk(cid:225)ad sy- gna(cid:225)ów modu(cid:225)ów opartych na tym kontrolerze pokazano w tabeli 22.1. Tabela 22.1. Typowy uk(cid:225)ad wyprowadze(cid:276) modu(cid:225)ów alfanumerycznych LCD opartych na kontrolerze HD44780 Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Funkcja Masa Zasilanie (typowo 5 V) Regulacja kontrastu Zapis polecenia Strob odczyt/zapis Wybór uk(cid:225)adu Bit danych 0 Bit danych 1 Bit danych 2 Bit danych 3 Bit danych 4 Bit danych 5 Bit danych 6 Bit danych 7 Pod(cid:286)wietlenie — anoda Pod(cid:286)wietlenie — katoda Nazwa GND Vcc Vee RS RW E D0 D1 D2 D3 D4 D5 D6 D7 A K Kup książkęPoleć książkę 46 AVR. Uk(cid:228)ady peryferyjne Przed pod(cid:228)(cid:241)czeniem modu(cid:228)u zawsze upewnij si(cid:246), czy podany rozk(cid:228)ad odpowiada u(cid:276)ytemu modu(cid:228)owi. W szczególno(cid:264)ci sprawd(cid:274) rozmieszczenie linii zasilaj(cid:241)cych. Ich niew(cid:228)a(cid:264)ciwe pod(cid:228)(cid:241)czenie grozi uszkodzeniem modu(cid:228)u! Zwykle piny 15 i 16 steruj(cid:261)ce pod(cid:286)wietleniem s(cid:261) umieszczone osobno lub te(cid:298) przed pinem 1. St(cid:261)d te(cid:298) zawsze nale(cid:298)y je dok(cid:225)adnie zidentyfikowa(cid:252) przed pod(cid:225)(cid:261)czeniem mo- du(cid:225)u. Do pinów tych nale(cid:298)y pod(cid:225)(cid:261)czy(cid:252) napi(cid:266)cie wykorzystane do pod(cid:286)wietlenia modu(cid:225)u. Przy(cid:225)(cid:261)czone napi(cid:266)cie zale(cid:298)y od typu zastosowanego pod(cid:286)wietlenia — CCFL, folii elektroluminescencyjnej lub diod LED. W dalszej cz(cid:266)(cid:286)ci b(cid:266)dziemy zajmowa(cid:252) si(cid:266) modu- (cid:225)em z pod(cid:286)wietleniem LED. W nocie katalogowej ka(cid:298)dego modu(cid:225)u znajduj(cid:261) si(cid:266) szcze- gó(cid:225)owe informacje dotycz(cid:261)ce zasilania pod(cid:286)wietlenia. Zwykle w tym celu wymagane jest napi(cid:266)cie 5 V, a nat(cid:266)(cid:298)enie pr(cid:261)du pod(cid:286)wietlenia wynosi 20 – 50 mA. Wy(cid:286)wietlacze LCD alfanumeryczne s(cid:261) dost(cid:266)pne w handlu w wersjach dostosowanych do ró(cid:298)nych napi(cid:266)(cid:252) zasilaj(cid:261)cych. Typowo jest to napi(cid:266)cie 5 V, co stwarza pewne pro- blemy przy pod(cid:225)(cid:261)czeniu takiego LCD do procesorów rodziny XMEGA. S(cid:261) one zasi- lane maksymalnym napi(cid:266)ciem 3,6 V, nie ma wi(cid:266)c mo(cid:298)liwo(cid:286)ci, aby LCD i procesor dzia(cid:225)a(cid:225)y w tych samych domenach napi(cid:266)ciowych. W efekcie przy po(cid:225)(cid:261)czeniu obu uk(cid:225)a- dów musimy zastosowa(cid:252) konwersj(cid:266) napi(cid:266)(cid:252). Poniewa(cid:298) LCD alfanumeryczny z perspek- tywy procesora jest urz(cid:261)dzeniem bardzo wolnym, ca(cid:225)kowicie wystarczaj(cid:261)cym rozwi(cid:261)za- niem jest zastosowanie szeregowych rezystorów, które wraz z wbudowanymi w procesor diodami zabezpieczaj(cid:261)cymi b(cid:266)d(cid:261) stanowi(cid:225)y uk(cid:225)ad obni(cid:298)aj(cid:261)cy napi(cid:266)cie na magistrali komunikacyjnej z 5 V do bezpiecznego dla wej(cid:286)cia XMEGA napi(cid:266)cia. Z drugiej strony jedynka logiczna generowana przez procesor zasilany napi(cid:266)ciem 3,3 V jest poprawnie rozpoznawana przez LCD pracuj(cid:261)cy z napi(cid:266)ciem 5 V. Je(cid:286)li procesor by(cid:225)by zasilany bardzo niskim napi(cid:266)ciem (rz(cid:266)du 1,8 – 2,8 V), wymagany by(cid:225)by bardziej skompliko- wany konwerter, co zosta(cid:225)o szerzej omówione w rozdziale 7. ksi(cid:261)(cid:298)ki AVR. Praktyczne projekty. Wy(cid:286)wietlacze LCD wymagaj(cid:261) pod(cid:286)wietlenia, bez tego wy(cid:286)wietlana zawarto(cid:286)(cid:252) jest praktycznie nieczytelna. W starszych konstrukcjach wykorzystywano pod(cid:286)wietlenie w oparciu o lampy fluorescencyjne lub folie elektroluminescencyjne, jednak obecnie dominuj(cid:261)cym typem jest pod(cid:286)wietlenie za pomoc(cid:261) diod LED. Poniewa(cid:276) zasilamy diod(cid:246) LED, wymagane jest do(cid:228)(cid:241)czenie szeregowego rezystora. Czasami taki rezystor jest wbudowany w modu(cid:228) LCD. Pod(cid:286)wietlenie tego typu zu(cid:298)ywa spor(cid:261) ilo(cid:286)(cid:252) energii. Innym rozwi(cid:261)zaniem jest kupno wy(cid:286)wietlacza wykonanego w technologii OLED (ang. Organic Light-Emitting Diode). Wy(cid:286)wietlacze tego typu cechuj(cid:261) si(cid:266) zdecydowanie lepszym kontrastem, ale tak(cid:298)e wi(cid:266)k- sz(cid:261) szybko(cid:286)ci(cid:261) prze(cid:225)(cid:261)czania, w zwi(cid:261)zku z czym mo(cid:298)na za ich pomoc(cid:261) uzyska(cid:252) o wiele lepsze efekty animacji, które s(cid:261) praktycznie nieosi(cid:261)galne dla klasycznych wy(cid:286)wietlaczy LCD. Nie maj(cid:261) one tak(cid:298)e innej wady LCD — zale(cid:298)no(cid:286)ci szybko(cid:286)ci prze(cid:225)(cid:261)czania seg- mentów od temperatury. Wy(cid:286)wietlacze OLED nie maj(cid:261) wyprowadzonych pinów odpowiedzialnych za pod- (cid:286)wietlenie — po prostu go nie wymagaj(cid:261). Kup książkęPoleć książkę Rozdzia(cid:228) 22. (cid:105) Wy(cid:264)wietlacze LCD alfanumeryczne 47 Kolejn(cid:261) istotn(cid:261) kwesti(cid:261) jest pod(cid:225)(cid:261)czenie w(cid:225)a(cid:286)ciwego napi(cid:266)cia reguluj(cid:261)cego kontrast wy(cid:286)wietlacza. Dla wi(cid:266)kszo(cid:286)ci modu(cid:225)ów LCD mie(cid:286)ci si(cid:266) ono w przedziale GND – Vcc, a dla modu(cid:225)ów o rozszerzonym zakresie temperatury w przedziale od –7 do 0 V — rysunek 22.1. Rysunek 22.1. Pod(cid:225)(cid:261)czenie napi(cid:266)cia reguluj(cid:261)cego kontrast: a) modu(cid:225)y klasyczne, b) modu(cid:225)y o rozszerzonym zakresie temperatur Napi(cid:266)cie ujemne mo(cid:298)na uzyska(cid:252) z prostej pompy (cid:225)adunkowej sterowanej przebiegiem PWM z procesora. Pobór pr(cid:261)du z tego wej(cid:286)cia jest znikomo ma(cid:225)y. Alternatywnie mo(cid:298)na u(cid:298)y(cid:252) uk(cid:225)adu ICL7660, który mo(cid:298)e generowa(cid:252) napi(cid:266)cia ujemne. Kolejn(cid:261) decyzj(cid:261), jak(cid:261) musimy podj(cid:261)(cid:252), jest sposób pod(cid:225)(cid:261)czenia modu(cid:225)u LCD z mikro- kontrolerem. Mamy do wyboru dwie opcje — albo pod(cid:225)(cid:261)czamy wszystkie 8 linii da- nych (D0 – D7), albo tylko 4 najstarsze (D4 – D7). Pod(cid:225)(cid:261)czaj(cid:261)c tylko 4 linie danych, zmniejszamy liczb(cid:266) niezb(cid:266)dnych po(cid:225)(cid:261)cze(cid:276) modu(cid:225)u z mikrokontrolerem oraz liczb(cid:266) wykorzystanych linii IO. Ze wzgl(cid:266)du na znikom(cid:261) ilo(cid:286)(cid:252) danych przesy(cid:225)anych z/do mo- du(cid:225)u, wynikaj(cid:261)ce z pod(cid:225)(cid:261)czenia tylko 4 linii danych spowolnienie transmisji jest bez znaczenia. W trybie 4-bitowym najpierw transferowana jest starsza, a potem m(cid:225)od- sza tetrada. Niewykorzystane linie D0 – D3 mo(cid:298)na pozostawi(cid:252) niepod(cid:225)(cid:261)czone; wi(cid:266)k- szo(cid:286)(cid:252) modu(cid:225)ów wewn(cid:266)trznie podci(cid:261)ga niepod(cid:225)(cid:261)czone linie poprzez rezystor do Vcc. Poniewa(cid:276) linie D0 – D7 s(cid:241) dwukierunkowe, musimy pami(cid:246)ta(cid:232), aby podczas operacji odczytu z LCD odpowiednie piny mikrokontrolera by(cid:228)y ustawione jako wej(cid:264)cia. W prze- ciwnym przypadku dojdzie do konfliktu. Kolejnym sygna(cid:225)em, co do którego musimy podj(cid:261)(cid:252) decyzj(cid:266), jest sygna(cid:225) RW okre(cid:286)laj(cid:261)cy typ operacji (odczyt/zapis). Poniewa(cid:298) zwykle zapisujemy dane do LCD, w(cid:225)a(cid:286)ciwie nie zachodzi konieczno(cid:286)(cid:252) ich odczytywania; mo(cid:298)emy ten sygna(cid:225) na sta(cid:225)e po(cid:225)(cid:261)czy(cid:252) z mas(cid:261), oszcz(cid:266)dzaj(cid:261)c w ten sposób jedn(cid:261) lini(cid:266) IO procesora. Takie rozwi(cid:261)zanie ma jednak po- wa(cid:298)n(cid:261) wad(cid:266) — po jego zastosowaniu nie jest mo(cid:298)liwe odczytywanie sygna(cid:225)u zaj(cid:266)to(cid:286)ci modu(cid:225)u (ang. busy flag). Powoduje to, (cid:298)e pomi(cid:266)dzy kolejnymi zapisami do modu(cid:225)u mu- simy stosowa(cid:252) opó(cid:296)nienia dobrane na najwolniejsz(cid:261) mo(cid:298)liw(cid:261) okoliczno(cid:286)(cid:252). W efekcie ca(cid:225)a transmisja jest wolniejsza, ni(cid:298) mog(cid:225)aby by(cid:252). Je(cid:264)li korzystamy z tych modu(cid:228)ów, nie musimy pisa(cid:232) w(cid:228)asnych procedur ich obs(cid:228)ugi. Instaluj(cid:241)c (cid:264)rodowisko WinAVR (lub nowy toolchain firmy Atmel), w katalogu doc\ avr-libc\examples\sdtiodemo znajdziemy gotowe funkcje obs(cid:228)ugi HD44780. Funkcje te nie dzia(cid:228)aj(cid:241) z mikrokontrolerami XMEGA, st(cid:241)d te(cid:276) w za(cid:228)(cid:241)czonych przyk(cid:228)adach zosta- (cid:228)y one zmodyfikowane tak, aby poprawnie wspó(cid:228)pracowa(cid:232) równie(cid:276) z tymi mikro- kontrolerami. Kup książkęPoleć książkę 48 AVR. Uk(cid:228)ady peryferyjne Mo(cid:298)emy te(cid:298) skorzysta(cid:252) z licznych przyk(cid:225)adów dost(cid:266)pnych w internecie. W dalszej cz(cid:266)(cid:286)ci rozdzia(cid:225)u zostan(cid:261) wykorzystane funkcje z pakietu WinAVR napisane przez Joerga Wunscha. Pokazane przyk(cid:225)ady zak(cid:225)adaj(cid:261), (cid:298)e wy(cid:286)wietlacz jest po(cid:225)(cid:261)czony z mikrokontrolerem tak jak na rysunku 22.2. Rysunek 22.2. Po(cid:225)(cid:261)czenie LCD z mikrokontrolerem. Na górze pod(cid:225)(cid:261)czenie do mikrokontrolera XMEGA, na dole pod(cid:225)(cid:261)czenie do modu(cid:225)u Xplained. Na schematach pokazano tak(cid:298)e opcjonalne sposoby pod(cid:225)(cid:261)czenia pinu Vee odpowiedzialnego za regulacj(cid:266) kontrastu LCD Kup książkęPoleć książkę Rozdzia(cid:228) 22. (cid:105) Wy(cid:264)wietlacze LCD alfanumeryczne 49 Zanim co(cid:286) wy(cid:286)wietlimy na LCD, musimy pozna(cid:252), w jaki sposób s(cid:261) generowane znaki. Sterownik LCD zawiera w sobie, niezale(cid:298)nie od typu u(cid:298)ytej matrycy, 80 bajtów pami(cid:266)ci DDRAM (ang. Display Data RAM). Je(cid:286)li zastosowana matryca wy(cid:286)wietla mniejsz(cid:261) liczb(cid:266) znaków, to cz(cid:266)(cid:286)(cid:252) komórek pami(cid:266)ci jest nieu(cid:298)ywana. Mo(cid:298)emy je wykorzysta(cid:252) do innych celów — np. jako zwyk(cid:225)(cid:261) pami(cid:266)(cid:252) RAM. Mo(cid:298)emy te(cid:298) u(cid:298)y(cid:252) jej do przesu- wania napisów, które nie mieszcz(cid:261) si(cid:266) na wy(cid:286)wietlaczu. Aby mo(cid:298)na by(cid:225)o umie(cid:286)ci(cid:252) znak na w(cid:225)a(cid:286)ciwej pozycji, niezb(cid:266)dne jest poznanie organizacji pami(cid:266)ci kontrolera. W za- le(cid:298)no(cid:286)ci od u(cid:298)ytej matrycy pami(cid:266)(cid:252) ta jest zorganizowana nast(cid:266)puj(cid:261)co: (cid:141) Dla matryc 16×1 — pami(cid:266)(cid:252) jest podzielona na dwa obszary, ka(cid:298)dy zawieraj(cid:261)cy po 8 znaków. Obszar pierwszy (od lewej) ma adresy 0x00 do 0x07, a obszar drugi (prawy) adresy 0x40 do 0x47. St(cid:261)d te(cid:298) gdy wy(cid:286)wietla si(cid:266) tekst przekraczaj(cid:261)cy granic(cid:266) obszarów, nale(cid:298)y zadba(cid:252), aby poszczególne litery trafi(cid:225)y pod w(cid:225)a(cid:286)ciwe adresy. (cid:141) Dla matryc 20×1 — adresy 0x00 do 0x13. (cid:141) Dla matryc 16×2 — adres pierwszej linii zaczyna si(cid:266) od 0x00 do 0x0f, adres drugiej linii od 0x40 do 0x4f. (cid:141) Dla matryc 20×2 — adresy pierwszej linii to 0x00 do 0x13, a drugiej 0x40 do 0x53. (cid:141) Dla matryc 40×2 — adresy pierwszej linii to 0x00 do 0x27, drugiej linii 0x40 do 0x67. (cid:141) Dla matryc 20×4 — adresy pierwszej linii to 0x00 do 0x13, drugiej 0x40 do 0x53, trzeciej 0x14 do 0x27, a czwartej 0x54 do 0x67. Jak wida(cid:252), w niektórych typach wy(cid:286)wietlaczy po ka(cid:298)dej linii zostaje od kilku do kil- kunastu bajtów, których zawarto(cid:286)(cid:252) nie jest wy(cid:286)wietlana. Ma to pewn(cid:261) zalet(cid:266) — mo- (cid:298)emy do pami(cid:266)ci modu(cid:225)u wpisywa(cid:252) teksty d(cid:225)u(cid:298)sze, ni(cid:298) s(cid:261) wy(cid:286)wietlane na ekranie, co u(cid:225)atwia przewijanie tekstu. Niestety ma to te(cid:298) pewn(cid:261) wad(cid:266) — funkcje wy(cid:286)wietlaj(cid:261)ce co(cid:286) na ekranie musz(cid:261) „wiedzie(cid:252)”, jak(cid:261) organizacj(cid:266) ma matryca. W przeciwnym przy- padku nie ma mo(cid:298)liwo(cid:286)ci prawid(cid:225)owego wyliczenia adresu komórki, do której ma od- by(cid:252) si(cid:266) zapis. W dalszej cz(cid:246)(cid:264)ci rozdzia(cid:228)u zostanie wykorzystany modu(cid:228) LCD o organizacji 16×2 (ale mo(cid:276)na te(cid:276) bez problemu wykorzysta(cid:232) dowolny inny). Zanim b(cid:266)dzie mo(cid:298)na co(cid:286) wy(cid:286)wietli(cid:252) na ekranie, modu(cid:225) musi zosta(cid:252) zainicjalizowany. W trakcie inicjalizacji ustawiane s(cid:261) podstawowe parametry pracy sterownika LCD — organizacja matrycy (liczba linii), wielko(cid:286)(cid:252) czcionki (5×8 lub 8×11 pikseli). Wielko(cid:286)(cid:252) czcionki zale(cid:298)y od typu pod(cid:225)(cid:261)czonej matrycy LCD. Dla konkretnego modu(cid:225)u LCD tylko jedna z tych warto(cid:286)ci b(cid:266)dzie poprawna. Oprócz inicjalizacji modu(cid:225)u nale(cid:298)y tak- (cid:298)e poprawnie ustawi(cid:252) stan pinów IO wykorzystywanych do pod(cid:225)(cid:261)czenia modu(cid:225)u LCD. Wi(cid:266)kszo(cid:286)(cid:252) pracy zwi(cid:261)zanej z inicjalizacj(cid:261) modu(cid:225)u LCD, odbieraniem i wysy(cid:225)aniem do niego danych wykonuje biblioteka Joerga Wunscha. Dostarcza ona niskopozio- mowe funkcje umo(cid:298)liwiaj(cid:261)ce komunikacj(cid:266) ze sterownikiem hd44780 i innymi kom- patybilnymi z nim sterownikami. Wystarczy, (cid:298)e do aplikacji, w której planujemy wy- korzysta(cid:252) taki modu(cid:225), do(cid:225)(cid:261)czymy plik hd44780.c oraz plik nag(cid:225)ówkowy hd44780.h. Kup książkęPoleć książkę 50 AVR. Uk(cid:228)ady peryferyjne Oba pliki „zak(cid:225)adaj(cid:261)”, (cid:298)e istnieje plik nag(cid:225)ówkowy defines.h, zawieraj(cid:261)cy podstawo- we definicje zwi(cid:261)zane ze sposobem pod(cid:225)(cid:261)czenia modu(cid:225)u LCD z mikrokontrolerem. Na pocz(cid:261)tku nale(cid:298)y okre(cid:286)li(cid:252), które linie IO zosta(cid:225)y wykorzystane do pod(cid:225)(cid:261)czenia modu(cid:225)u: #define HD44780_RS A, 4 #define HD44780_RW A, 5 #define HD44780_E A, 6 #define HD44780_D4 A, 0 W powy(cid:298)szym przyk(cid:225)adzie do kolejnych linii portu A (A4 – A6) zosta(cid:225)y pod(cid:225)(cid:261)czone sygna(cid:225)y RS, RW i E modu(cid:225)u, natomiast do linii A0 – A3 linie D4 – D7 modu(cid:225)u LCD. Wa(cid:298)ne jest, aby linie danych (cid:225)(cid:261)czy(cid:252) z pinami IO w kolejno(cid:286)ci rosn(cid:261)cej. Biblioteka wykorzy- stuje do transmisji danych pomi(cid:266)dzy modu(cid:225)em a mikrokontrolerem tylko 4 linie danych — dzi(cid:266)ki temu mo(cid:298)emy zmniejszy(cid:252) liczb(cid:266) po(cid:225)(cid:261)cze(cid:276), a zwolnione linie IO wykorzysta(cid:252) do innych celów. W pliku wyst(cid:266)puje jeszcze jedna definicja: #define USE_BUSY_BIT 1 Okre(cid:286)la ona, (cid:298)e biblioteka b(cid:266)dzie u(cid:298)ywa(cid:252) flagi Busy modu(cid:225)u LCD — umo(cid:298)liwia to uzyskanie optymalnej szybko(cid:286)ci wspó(cid:225)dzia(cid:225)ania z modu(cid:225)em. Zako(cid:276)czenie realizacji bie(cid:298)(cid:261)cej operacji modu(cid:225) sygnalizuje zmian(cid:261) stanu tej flagi, co umo(cid:298)liwia niezw(cid:225)oczne wys(cid:225)anie kolejnej komendy. Je(cid:286)li nie u(cid:298)ywamy flagi Busy, program musi generowa(cid:252) maksymalne zalecane w nocie katalogowej opó(cid:296)nienia, w efekcie ca(cid:225)a transmisja zwal- nia. Po zdefiniowaniu u(cid:298)ywanych pinów w pliku defines.h mo(cid:298)emy rozpocz(cid:261)(cid:252) korzy- stanie z biblioteki. W pliku hd44780.h s(cid:241) udost(cid:246)pnione prototypy funkcji odpowiedzialnych za wspó(cid:228)- prac(cid:246) z modu(cid:228)em LCD. Funkcje biblioteczne Podstaw(cid:266) modu(cid:225)u stanowi(cid:261) dwie funkcje umo(cid:298)liwiaj(cid:261)ce odpowiednio wys(cid:225)anie da- nych do modu(cid:225)u oraz ich odczytanie: void hd44780_outbyte(uint8_t b, uint8_t rs); uint8_t hd44780_inbyte(uint8_t rs); Obie funkcje wysy(cid:225)aj(cid:261)/odczytuj(cid:261) 8-bitow(cid:261) dan(cid:261); w przypadku wykorzystania tylko 4-bitowej szyny danych wysy(cid:225)anie i odczytywanie danych odbywa si(cid:266) w dwóch etapach. Dodatkowo zmienna rs okre(cid:286)la tryb dost(cid:266)pu. W przypadku wysy(cid:225)ania danych do modu(cid:225)u rs = 0 powoduje, (cid:298)e dane zostan(cid:261) wys(cid:225)ane do rejestru komend, a je(cid:286)li rs = 1, dane trafi(cid:261) do rejestru danych. Przy odczycie jest podobnie, z tym (cid:298)e dla rs = 0 jest odczytywana flaga Busy i rejestr AC (ang. Address Counter). Kolejna funkcja odpowiada za oczekiwanie na gotowo(cid:286)(cid:252) modu(cid:225)u: void hd44780_wait_ready(bool islong); W przypadku gdy w pliku defines.h symbol USE_BUSY_FLAG ma warto(cid:286)(cid:252) 1, parametr islong jest ignorowany, a optymalizator kompilatora usuwa go, gdy(cid:298) nie jest on wy- korzystywany przez funkcj(cid:266). Kiedy warto(cid:286)(cid:252) USE_BUSY_FLAG jest ró(cid:298)na od 1, parametr Kup książkęPoleć książkę Rozdzia(cid:228) 22. (cid:105) Wy(cid:264)wietlacze LCD alfanumeryczne 51 ten okre(cid:286)la d(cid:225)ugo(cid:286)(cid:252) opó(cid:296)nienia. Je(cid:286)li jest ró(cid:298)na od 0, opó(cid:296)nienie wynosi 1,52 ms, a je- (cid:298)eli jest równa 0, opó(cid:296)nienie wynosi 37 (cid:541)s. Poniewa(cid:298) lepiej jest u(cid:298)ywa(cid:252) flagi Busy, mo(cid:298)emy ten parametr ignorowa(cid:252). Powy(cid:298)sze trzy funkcje wystarcz(cid:261) do komunikacji z modu(cid:225)em, dla wygody zdefiniowano jednak kolejne. Funkcje hd44780_outcmd(n) i hd44780_incmd() umo(cid:298)liwiaj(cid:261) odpowiednio wys(cid:225)anie polecenia do rejestru komend kontrolera lub odczytanie bitu Busy i licznika AC. Dwie kolejne — hd44780_outdata(n) oraz hd44780_indata() — umo(cid:298)liwiaj(cid:261) zapis i odczytanie rejestru danych. Oprócz funkcji odpowiedzialnych za komunikacj(cid:266) z modu(cid:225)em LCD zdefiniowano tak(cid:298)e funkcj(cid:266) przeprowadzaj(cid:261)c(cid:261) podstawow(cid:261) inicjalizacj(cid:266) modu(cid:225)u, hd44780_init(void), oraz funkcj(cid:266) hd44780_powerdown(void), ustawiaj(cid:261)c(cid:261) wszystkie linie u(cid:298)yte do komunikacji w stan 0, co umo(cid:298)liwia bezpieczne od(cid:225)(cid:261)czenie zasilania od modu(cid:225)u LCD. W przypadku pozostawienia której(cid:286) z wy(cid:298)ej wymienionych linii w stanie 1 przy od(cid:225)(cid:261)czonym za- silaniu modu(cid:
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

AVR. Układy peryferyjne
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: