Duża popularność graficznych wyświetlaczy LCD powoduje, że w coraz większej liczbie aplikacji warto byłoby wykorzystać ich możliwości (np. dla zwiększenia atrakcyjności urządzenia lub ułatwienia jego obsługi). W przeciwieństwie do alfanumerycznych wyświetlaczy LCD, gdzie w zasadzie obowiązującym standardem jest sterownik zgodny z HD44780, w szerokiej gamie wyświetlaczy graficznych obowiązuje niestety wiele standardów. Najczęściej spotykane sterowniki to: T6963, SPLC501C, ST7036, SSD1303, NJU6450, PCD8544, S1D15G14 i obsłudze właśnie dla tych sterowników jest poświęcona niniejsza książka. Przykłady zawarte w książce przygotowano w języku C, dzięki czemu można je stosunkowo łatwo zaimplementować niemal w dowolnym systemie mikroprocesorowym. Jako platformę testową dla przykładów wybrano nowoczesne mikrokontrolery z rdzeniem ARM z rodziny LPC2000, a wszystkie przykłady były kompilowane w środowisku uruchomieniowym Keil uvision współpracującym z bezpłatnym kompilatorem ARM GCC. Książka jest przeznaczona dla wszystkich miłośników techniki mikroprocesorowej, którzy zamierzają wykorzystywać graficzne wyświetlacze LCD w swoich projektach. Wiele informacji zawartych w książce może być przydatnych studentom wydziałów elektroniki, automatyki i informatyki wyższych uczelni technicznych. Sekretarz redakcji: mgr Katarzyna Kempista Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr inż. Mariola Mańkowska ISBN 978-83-60233-28-3 Copyright by Wydawnictwo BTC Legionowo 2008 Wydawnictwo BTC ul. Lwowska 5 05-120 Legionowo fax: (22) 767-36-33 http://www.btc.pl e-mail: redakcja@btc.pl Wydanie I Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz wydawnictwo BTC 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 BTC nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentów 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. Druk i oprawa: Drukarnia Narodowa S.A.
Spis treści 3 1. Mikrokontroler LPC2148 i jego interfejs SPI...5 1.1. Mikrokontroler LPC2148... 6 1.2. Porty I/O mikrokontrolera LPC2148... 7 1.2.1. Rejestry IOxPIN...9 1.2.2. Rejestry IOxSET... 10 1.2.3. Rejestry IOxCLR... 10 1.2.4. Rejestry IOxDIR... 10 1.3. Interfejs SPI...11 1.3.1. Formaty danych SPI0...11 1.3.2. Linie interfejsu SPI0... 12 1.3.3. Rejestry interfejsu SPI0... 12 1.4. Tryby pracy interfejsu...14 1.5. Błędy zgłaszane przez interfejs SPI...14 2. Narzędzia programowe i zestaw uruchomieniowy... 15 2.1. Zestaw uruchomieniowy...16 2.2. Zestaw ewaluacyjny ZL9ARM...17 2.3. Moduł diparm z mikrokontrolerem LPC2148...19 2.4. Kompilator C i środowisko uruchomieniowe...20 2.4.1. Konfiguracja uvison3 do pracy z kompilatorem gccarm... 20 2.4.2. Plik startowy i skrypt linkera... 22 2.5. Programowanie mikrokontrolera...24 3. Osługa wyświetlaczy graficznych i alfanumerycznych zintegrowanych ze sterownikami... 25 3.1. Popularne sterowniki wyświetlaczy LCD i OLED...26 3.2. Wyświetlacze ze sterownikiem T6963...27 3.2.1. Sterownik T6963... 27 3.2.2. Sprzętowy interfejs sterownika... 28 3.2.3. Sekwencja włączania zasilania... 30 3.2.4. Komendy obsługiwane przez sterownik T6963... 30 3.2.5. Opis wybranych komend... 32 3.2.6. Rejestr statusu... 33 3.2.7. Przesyłanie komend... 34 3.2.8. Organizacja pamięci VRAM... 35 3.2.8.1. Obszar wyświetlania tekstu Text Area...36 3.2.8.2. Obszar wyświetlania grafiki Graphic Area...36 3.2.9. Generator znaków tekstowych... 37 3.2.9.1. Generator CG ROM...37 3.2.9.2. Generator CG RAM...37 3.2.10. Obsługa wyświetlaczy ze sterownikiem T6963... 38 3.2.11. Przesyłanie danych do sterownika T6963... 39 3.3. Wyświetlacze ze sterownikiem SPLC501C...46 3.3.1. Sterownik SPLC501C... 46 3.3.2. Sprzętowy interfejs sterownika... 48
4 Spis treści 3.3.3. Pamięć RAM... 48 3.3.3.1. Adresowanie pamięci RAM...49 3.3.4. Zasilanie sterownika... 49 3.3.5. Komendy obsługiwane przez sterownik SPLC501C... 51 3.3.6. Zerowanie sterownika... 54 3.3.7. Programowa obsługa sterownika SPLC501C... 55 3.4. Wyświetlacze ze sterownikiem ST7036...61 3.4.1. Sterownik ST7036... 62 3.4.2. Sprzętowy interfejs sterownika... 62 3.4.3. Polecenia obsługiwane przez sterownik... 65 3.4.4. Pamięć sterownika ST7036... 68 3.4.5. Zerowanie sterownika... 69 3.4.6. Programowa obsługa sterownika ST7036... 70 3.4.7. Programowa obsługa interfejsu równoległego... 71 3.5. Wyświetlacze OLED ze sterownikiem SSD1303...75 3.5.1. Sterownik SSD1303... 75 3.5.2. Sprzętowy interfejs sterownika... 76 3.5.3. Zerowanie sterownika SSD1303... 78 3.5.4. Pamięć obrazu... 78 3.5.5. Wewnętrzny generator taktujący... 79 3.5.6. Zasilanie driverów matrycy... 79 3.5.7. Komendy obsługiwane przez sterownik SSD1303... 79 3.5.8. Obsługa sterownika... 81 3.6. Wyświetlacze ze sterownikiem NJU6450...89 3.6.1. Sterownik NJU6450... 91 3.6.2. Pamięć RAM sterownika NJU6450... 92 3.6.3. Komendy obsługiwane przez sterownik NJU6450... 93 3.6.4. Zasilanie i podłączenie do mikrokontrolera... 94 3.6.5. Programowa obsługa sterownika NJU6450... 94 3.7. Wyświetlacze graficzne ze sterownikiem PCD8544 (Nokia 3310)... 100 3.7.1. Sterownik PCD8544... 101 3.7.2. Interfejs fizyczny i zasilanie... 102 3.7.3. Organizacja pamięci obrazu RAM... 103 3.7.4. Komendy obsługiwane przez sterownik PCD8544... 105 3.7.5. Zasilanie i podłączenie do mikrokontrolera... 106 3.7.6. Programowa obsługa sterownika PCD8544... 107 3.8. Wyświetlacze kolorowe ze sterownikiem S1D15G14 (Nokia 3510i)...114 3.8.1. Sterownik S1D15G14... 114 3.8.2. Interfejs fizyczny i zasilanie... 115 3.8.3. Organizacja pamięci RAM wyświetlacza... 117 3.8.4. Komendy obsługiwane przez sterownik S1D15G14... 119 3.8.5. Zasilanie i podłączenie do mikrokontrolera... 125 3.8.6. Programowa obsługa sterownika S1D15G14... 125 Dodatek. Współpraca układów cyfrowych zasilanych napięciami 3,3 V i 5 V...133