Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00056 020172 17744333 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 (-50%), 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ą: