Untitled
Transkrypt
Untitled
Książka jest praktycznym przewodnikiem po sterownikach wyświetlaczy alfanumerycznych i graficznych, stosowanych w popularnych wyświetlaczach LCD, OLED i VFD. Na potrzeby książki autor przygotował i opisał bibliotekę graficzną libd (dostępna bezpłatnie), której zadaniem jest ułatwienie stosowania modułów wyświetlaczy w praktycznych aplikacjach. Oprogramowanie jest dostępne w wersjach dla mikrokontrolerów z rodzin: AVR, LPC2000 i STR91x. Książka może spełniać rolę podręcznika dla inżynierów, studentów i hobbystów zajmujących się elektroniką, którzy chcą poznać współczesne technologie wyświetlania i wygodnie stosować nowoczesne wyświetlacze we własnych aplikacjach. Sekretarz redakcji: mgr Katarzyna Kempista Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr Anna Kubacka ISBN 978-83-60233-34-4 © 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: [email protected] 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 Wstęp ................................................................................................................................................... 9 1. Elementy optoelektroniczne............................................................................................. 11 1.1. Rys historyczny ............................................................................................................. 12 1.2. Technologia VFD .......................................................................................................... 20 1.2.1. Struktura i zasada działania VFD ...............................................................................20 1.2.2. Sposób zasilania VFD ................................................................................................21 1.2.3. Sposób sterowania VFD .............................................................................................23 1.2.4. Systematyka wyświetlaczy VFD................................................................................24 1.2.5. Kolorowe VFD i filtry ................................................................................................27 1.2.6. Zalety i wady VFD .....................................................................................................27 1.3. Technologie LCD .......................................................................................................... 28 1.3.1. Ciekłe kryształy ..........................................................................................................28 1.3.2. Własności fizyczne ciekłych kryształów ...................................................................30 1.3.3. Struktura i zasada działania modulatora TN ..............................................................31 1.3.4. Pasywne wyświetlacze TN-LCD ...............................................................................33 1.3.5. Zaawansowane, pasywne wyświetlacze LCD............................................................34 1.3.6. Statyczny sposób sterowania LCD.............................................................................35 1.3.7. Multipleksowany sposób sterowania LCD ................................................................37 1.3.8. Aktywne matryce LCD ..............................................................................................41 1.3.9. Podział LCD ze względu na sposób oświetlenia........................................................43 1.3.10. Elementy podświetlające dla LCD .............................................................................45 1.3.11. Parametry LCD ..........................................................................................................47 1.3.12. Zalety i wady LCD .....................................................................................................50 1.4. Technologie OLED ....................................................................................................... 50 1.4.1. Podstawy działania diod OLED .................................................................................50 1.4.2. Struktury diod OLED .................................................................................................52 1.4.3. Pasywne matryce OLED ............................................................................................53 1.4.4. Aktywne matryce OLED............................................................................................54 1.4.5. Zalety i wady OLED ..................................................................................................56 2. Sterowniki alfanumeryczne ............................................................................................. 57 2.1. HD44780......................................................................................................................... 58 2.1.1. Własności ...................................................................................................................58 2.1.2. Kompatybilność .........................................................................................................59 2.1.3. Interfejs ......................................................................................................................59 2.1.4. Protokół komunikacyjny ............................................................................................60 2.1.5. Funkcjonalność ..........................................................................................................60 2.1.6. Sekwencja inicjalizacji ...............................................................................................64 2.1.7. Możliwe konfiguracje matrycy ..................................................................................65 4 Spis treści 2.2. ST7036 ............................................................................................................................ 66 2.2.1. Własności ...................................................................................................................66 2.2.2. Kompatybilność .........................................................................................................67 2.2.3. Interfejs ......................................................................................................................67 2.2.4. Protokół komunikacyjny ............................................................................................68 2.2.5. Funkcjonalność ..........................................................................................................69 2.2.6. Sekwencja inicjalizacji ...............................................................................................74 2.2.7. Możliwe konfiguracje matrycy ..................................................................................75 2.3. M66004 ........................................................................................................................... 75 2.3.1. Własności ...................................................................................................................75 2.3.2. Interfejs ......................................................................................................................76 2.3.3. Protokół komunikacyjny ............................................................................................76 2.3.4. Funkcjonalność ..........................................................................................................76 2.3.5. Sekwencja inicjalizacji ...............................................................................................79 3. Sterowniki graficzne ........................................................................................................... 81 3.1. KS0108/7B ..................................................................................................................... 82 3.1.1. Własności ...................................................................................................................82 3.1.2. Kompatybilność .........................................................................................................82 3.1.3. Interfejs ......................................................................................................................82 3.1.4. Protokół komunikacyjny ............................................................................................83 3.1.5. Funkcjonalność ..........................................................................................................83 3.1.6. Sekwencja inicjalizacji ...............................................................................................85 3.1.7. Możliwe konfiguracje matrycy ..................................................................................86 3.2. SED1520 ......................................................................................................................... 86 3.2.1. Własności ...................................................................................................................86 3.2.2. Kompatybilność .........................................................................................................86 3.2.3. Interfejs ......................................................................................................................87 3.2.4. Protokół komunikacyjny ............................................................................................88 3.2.5. Funkcjonalność ..........................................................................................................88 3.2.6. Sekwencja inicjalizacji ...............................................................................................90 3.2.7. Możliwe konfiguracje matrycy ..................................................................................91 3.3. KS0713 ........................................................................................................................... 92 3.3.1. Własności ...................................................................................................................92 3.3.2. Kompatybilność .........................................................................................................92 3.3.3. Interfejs ......................................................................................................................93 3.3.4. Protokół komunikacyjny ............................................................................................94 3.3.5. Funkcjonalność ..........................................................................................................95 3.3.6. Sekwencja inicjalizacji ...............................................................................................98 3.3.7. Możliwe konfiguracje matrycy ..................................................................................99 Spis treści 3.4. 5 T6963C ......................................................................................................................... 100 3.4.1. Własności .................................................................................................................100 3.4.2. Kompatybilność .......................................................................................................100 3.4.3. Interfejs ....................................................................................................................100 3.4.4. Protokół komunikacyjny ..........................................................................................101 3.4.5. Organizacja pamięci .................................................................................................102 3.4.6. Funkcjonalność ........................................................................................................106 3.4.7. Sekwencja inicjalizacji .............................................................................................109 3.5. PCD8544 ...................................................................................................................... 110 3.5.1. Własności .................................................................................................................110 3.5.2. Kompatybilność .......................................................................................................110 3.5.3. Interfejs ....................................................................................................................110 3.5.4. Protokół komunikacyjny ..........................................................................................111 3.5.5. Funkcjonalność ........................................................................................................111 3.5.6. Sekwencja inicjalizacji .............................................................................................114 4. Interfejsy ............................................................................................................................... 115 4.1. Interfejs równoległy typu 6800 ................................................................................. 116 4.1.1. Budowa interfejsu ....................................................................................................116 4.1.2. Przebiegi czasowe ....................................................................................................116 4.1.3. Wariant 4-bitowy ......................................................................................................117 4.2. Interfejs równoległy typu 8080 ................................................................................. 118 4.2.1. Budowa interfejsu ....................................................................................................118 4.2.2. Przebiegi czasowe ....................................................................................................118 4.3. Prosty interfejs szeregowy ......................................................................................... 119 4.3.1. Budowa interfejsu ....................................................................................................120 4.3.2. Przebiegi czasowe ....................................................................................................120 4.4. Interfejs I2C .................................................................................................................. 121 4.4.1. Budowa interfejsu ....................................................................................................121 4.4.2. Przebiegi czasowe ....................................................................................................122 4.5. Interfejs SPI .................................................................................................................. 126 4.5.1. Budowa interfejsu ....................................................................................................126 4.5.2. Przebiegi czasowe ....................................................................................................127 5. Biblioteka libd ..................................................................................................................... 129 5.1. Język i kompatybilność .............................................................................................. 130 5.2. Budowa ......................................................................................................................... 130 5.3. Interfejs API ................................................................................................................. 131 5.3.1. Disp_init ...................................................................................................................134 5.3.2. Disp_update..............................................................................................................134 6 Spis treści 5.3.3. Disp_flush_buffer ....................................................................................................134 5.3.4. Disp_set_input_mode ...............................................................................................135 5.3.5. Disp_set_update .......................................................................................................135 5.3.6. Disp_get_update .......................................................................................................135 5.3.7. Disp_get_error..........................................................................................................135 5.3.8. Disp_get_ovf ............................................................................................................136 5.3.9. Disp_set ....................................................................................................................136 5.3.10. Disp_set_cur .............................................................................................................136 5.3.11. Disp_set_cur (2) .......................................................................................................136 5.3.12. Disp_clr_txt ..............................................................................................................136 5.3.13. Disp_clr_graph .........................................................................................................137 5.3.14. Disp_clr ....................................................................................................................137 5.3.15. Disp_set_cxy ............................................................................................................137 5.3.16. Disp_get_cxy............................................................................................................137 5.3.17. Disp_get_cx..............................................................................................................137 5.3.18. Disp_get_cy..............................................................................................................137 5.3.19. Disp_move_txt_cur ..................................................................................................138 5.3.20. Disp_move_txt_window ..........................................................................................138 5.3.21. Disp_scroll_txt_window ..........................................................................................138 5.3.22. Disp_scroll_window ................................................................................................138 5.3.23. Disp_ret_cur .............................................................................................................138 5.3.24. Disp_putc .................................................................................................................139 5.3.25. Disp_getc..................................................................................................................139 5.3.26. Disp_puts..................................................................................................................139 5.3.27. Disp_puts_const .......................................................................................................139 5.3.28. Disp_gets ..................................................................................................................139 5.3.29. Disp_set_ctempl .......................................................................................................140 5.3.30. Disp_set_ctempl_const ............................................................................................140 5.3.31. Disp_set_ctempl (2) .................................................................................................141 5.3.32. Disp_set_ctempl_const (2) .......................................................................................141 5.3.33. Disp_get_ctempl ......................................................................................................142 5.3.34. Disp_get_ctempl (2) .................................................................................................142 5.3.35. Disp_set_pxy ............................................................................................................142 5.3.36. Disp_get_pxy ...........................................................................................................143 5.3.37. Disp_get_px .............................................................................................................143 5.3.38. Disp_get_py .............................................................................................................143 5.3.39. Disp_putp .................................................................................................................143 5.3.40. Disp_getp .................................................................................................................143 5.3.41. Disp_hlineto .............................................................................................................144 Spis treści 7 5.3.42. Disp_vlineto .............................................................................................................144 5.3.43. Disp_lineto ...............................................................................................................144 5.3.44. Disp_line ..................................................................................................................144 5.3.45. Disp_box ..................................................................................................................145 5.3.46. Disp_circle ...............................................................................................................145 5.3.47. Disp_put_picture ......................................................................................................145 5.3.48. Disp_put_picture_const............................................................................................146 5.3.49. Disp_get_picture ......................................................................................................146 5.3.50. Disp_set_cg_mode ...................................................................................................146 5.3.51. Disp_set_power ........................................................................................................147 5.3.52. Disp_set_contrast .....................................................................................................147 5.3.53. Disp_set_contrast (2) ...............................................................................................147 5.3.54. Disp_set_contrast (3) ...............................................................................................147 5.4. Interfejs HAL ............................................................................................................... 148 5.4.1. disable_interrupts .....................................................................................................148 5.4.2. revert_interrupts .......................................................................................................148 5.4.3. delay_ms ..................................................................................................................148 5.4.4. delay_dus..................................................................................................................148 5.4.5. delay_us....................................................................................................................149 5.4.6. delay_500ns..............................................................................................................149 5.4.7. release .......................................................................................................................149 5.4.8. get_const ..................................................................................................................149 5.4.9. init_ports ..................................................................................................................149 5.4.10. chg_dir_db................................................................................................................150 5.4.11. write_db....................................................................................................................150 5.4.12. read_db .....................................................................................................................150 5.5. Konfiguracja................................................................................................................. 150 5.5.1. Konfiguracja platformy ............................................................................................150 5.5.2. Konfiguracja wyświetlacza ......................................................................................152 5.6. Korzystanie z bibliotek libd....................................................................................... 153 5.6.1. Struktura katalogowa projektów demonstracyjnych ................................................154 5.6.2. Kompilacja projektów demonstracyjnych................................................................154 5.6.3. Źródło bibliotek libd i warunki ich używania ..........................................................156 Dodatki .......................................................................................................................................... 157 Dodatek A. Zasilanie i interfejs fizyczny modułów wyświetlających ............... 158 Dodatek B. Producenci modułów wyświetlających .............................................. 161 Dodatek C. Platforma AVR ....................................................................................... 162 8 Spis treści Dodatek D. Platforma LPC2000 (ARM7) .............................................................. 164 Dodatek E. Platforma STR91X (ARM9) ................................................................ 166 Dodatek F. Tworzenie i wyświetlanie obrazów (XBitMap) ................................. 168 Skorowidz ..................................................................................................................................... 171 Bibliografia .................................................................................................................................. 175 10 Wstęp Wraz z rozwojem nauki wciąż pojawiają się nowe technologie elementów wyświetlających. Dawniej technika lampowa, następnie LED i LCD, a obecnie technologie OLED i PLED wyznaczają nowe drogi rozwoju. Malejące ceny, zwiększające się wymiary i rozdzielczość oraz wyższy kontrast i niezawodność matryc wyświetlających to niewątpliwie najważniejsze osiągnięcia w tej dziedzinie. Za rozwojem technologii matryc podążać musi także technika sterowania nimi. Typowym rozwiązaniem problemu sterowania są scalone sterowniki, przystosowane do obsługi matryc w danej technologii. Automatyzują one funkcje związane z odświeżaniem obrazu, a często oferują wiele funkcji dodatkowych, ułatwiających obsługę wyświetlacza. Zależnie od typu, sterowniki mają najczęściej interfejs pamięciowy lub jeden ze standardowych interfejsów szeregowych. Interfejsy te czynią układy łatwymi do wbudowania w system mikroprocesorowy. W wizualny interfejs HMI (ang. Human-Machine Interface – interfejs człowiek-maszyna) wyposażana jest coraz szersza grupa urządzeń obsługiwanych przez człowieka. Coraz częściej interfejs ten przyjmuje także postać graficzną. Zjawisko to wynika nie tylko z potrzeby większej funkcjonalności i łatwości obsługi urządzenia, ale często jest podyktowane zwiększającymi się wymaganiami klienta, względami estetycznymi i konkurencją. W przypadku urządzeń produkowanych na dużą skalę kwestię wizualizacji często rozwiązuje się wykonywaną na specjalne zamówienie matrycą, a czasem nawet dedykowanym sterownikiem. W przypadku aplikacji, w których ilość przekazywanej informacji jest niska (ang. low information content applications), oraz przy produkcji na małą i średnią skalę najbardziej opłacalnym rozwiązaniem pozostają jednak moduły wyświetlające. Urządzenia te są zwykle zintegrowane ze sterownikami przystosowanymi do współpracy z systemem mikroprocesorowym lub mikrokontrolerem. Niniejsza książka ma na celu przybliżyć tematykę sterowników zintegrowanych w powszechnie dostępnych modułach wyświetlających. Pierwszy rozdział traktuje o współczesnych technologiach matryc wyświetlających. Przedstawiano w nim ich zasadę działania, podstawowe parametry oraz przeprowadzono dyskusję nad zaletami i wadami wybranych technologii. W dalszych dwóch rozdziałach opisano własności funkcjonalne najpopularniejszych sterowników dla wyświetlaczy alfanumerycznych i graficznych. Ilustracją książki jest przedstawiona w ostatnim rozdziale biblioteka programistyczna – uniwersalne narzędzie, pozwalające na obsługę szerokiej gamy modułów wyświetlających bez dogłębnej wiedzy o sposobie działania sterowników.