Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej INSTRUKCJA (do użytku wewnętrznego) Nazwa przedmiotu: KONSTRUKCJE I TECHNOLOGIE W APARATURZE ELEKTRONICZNEJ (Laboratorium) MODUŁ ĆWICZENIOWY Nr 2 (Czas trwania: 3 x 2 godz.) Inteligentne wyświetlacze alfanumeryczne i graficzne z ekranem dotykowym Opracował: dr inż. Jerzy Kołłątaj Białystok, 2010 r. 1
Moduł ćwiczeniowy Nr 2 1. Cel ćwiczenia Celem ćwiczeń w ramach Modułu ćwiczeniowego Nr.2 jest poznanie konstrukcji inteligentnych wyświetlaczy alfanumerycznych i graficznych z serii PICASO GFX firmy 4D- Lab programowanych w języku 4DGL (podobnym do języka C) oraz wyświetlaczy z serii PICASO SGC programowanych za pomocą zewnętrznego mikrokontrolera zewnętrznego z szeregową transmisją danych. Studenci w ramach ćwiczenia mają zaprojektować i wykonać system prezentacji danych na dotykowym wyświetlaczu graficznym. 2. Moduł wyświetlacza µlcd-32pt (SGC) konstrukcja i dane techniczne Wyświetlacz µlcd-32pt (SGC) firmy 4D Systems (Rys. 1 i Rys. 2) jest inteligentnym wyświetlaczem z szeregową transmisją danych i najnowszą wersją ekranu LCD (w technologii TFT, 3,2 ) o rozdzielczości 240 x 320 pikseli. Moduł wyświetlacza posiada wbudowany procesor graficzny z serii PICASO-SGC, który pozwala na współpracę z dowolnym zewnętrznym mikrokontrolerem. Rys. 1. Moduł wyświetlacza µlcd-32pt (SGC) widok od strony ekranu 2
Rys. 2. Moduł wyświetlacza µlcd-32pt (SGC) widok od strony druku Moduł wyświetlacza zawiera wbudowane pełne możliwości graficzne, tekstowe wraz animację grafiki i tekstu. Transmisja danych do wyświetlacza odbywa się poprzez port szeregowy za pomocą odpowiedniego protokołu (instrukcji). Szeregowa platforma umożliwia użytkownikowi zastosowanie dowolnego mikrokontrolera oraz narzędzi programowych. Moduł wyświetlacza aktualnie oferuje najbardziej efektywny, graficzny system wbudowany w swojej klasie. 3
Rys. 3. Konfiguracja wyprowadzeń wyświetlacza Opis złącz Złącze J3 (Interfejs użytkownika) 4
Złącze J2 (Port rozszerzeń) Złącze J1 (Port rozszerzeń) 5
Przykład podłączenia modułu wyświetlacza z mikrokontrolerem pokazano na Rys. 4. Rys. 4. Podłączenie mikrokontrolera z modułem wyświetlaczem 3. Interfejs sprzętowy (piny) Moduł wyświetlacza µlcd-32pt(sgc) dostarcza zarówno sprzętowy i programowy interfejs do zewnętrznego mikrokontrolera. W dalszej części instrukcji do ćwiczenia omówiono piny interfejsu sprzętowego. 3.1. Interfejs szeregowy UART Moduł graficzny µlcd-32pt(sgc) posiada dedykowany sprzętowo interfejs UART, który może komunikować się z głównym mikrokontrolerem przez jego port szeregowy. Jest to główny interfejs używany przez mikrokontroler z modułem ulcd w celu wysyłania i odbierania informacji zwrotnych. Podstawowe cech y interfejsu są następujące: Transmisja Full-Duplex, 8 bitów dla transmisji danych i odbiór poprzez piny TX i RX. Format danych: 8 bitów, bez bitu parzystości, 1 bit Stop. Szybkość transmisji: 300-256K bodów (domyślnie ustawiono na 9600 bodów). 6
Pojedynczy bajt transmisji szeregowej zawiera bit startu, 8 bitów danych i następujący po nich bit stopu. Bit startowy zawsze ma wartość logiczną 0, podczas gdy bit stopu zawsze ma wartość logiczną 1. Bit LSB (Least Significant Bit, Bit 0) jest zawsze wysyłany jako pierwszy poprzedzony bitem startu. Na Rys. 5 pokazano przebieg czasowy transmisji pojedynczego bajtu. Rys. 5. Przebieg czasowy transmisji jednego bajtu Port szeregowy jest również podstawowym portem dla uaktualniania i programowania procesora modułu LCD za pomocą plików PmmC dla przyszłych uaktualnień i ulepszeń szeregowych rozkazów. (patrz punkt 7 w tej Instrukcji: Uaktualnianie Systemu programowania w celu uzyskania więcej szczegółowych informacji). TX (Serial Transmit), J3 pin 2, J2 pin 29: Pin TX Port asynchronicznej transmisji szeregowej. Pin ten należy podłączyć do szeregowego sygnału odbioru (Rx) w głównym mikrokontrolerze. Główny mikrokontroler (host) odbiera dane z modułu ulcd poprzez ten pin. Pin ten toleruje napięcia o wartości 5,0V. RX (Serial Receive), J3 pin, J2 pin 27): Pin RX Port asynchronicznego odbioru. Pin ten należy podłączyć do szeregowej transmisji sygnału (Tx) w głównym mikrokontrolerze. Główny mikrokontroler (host) transmituje dane do modułu ulcd poprzez ten pin. Pin ten toleruje napięcia o wartości 5,0V. 3.2. GPIO General Purpose IO Interface (Interfejs I/O ogólnego przeznaczenia) Mikrokontroler zewnętrzny ma dostęp do 16 pinów I/O ogólnego przeznaczenia poprzez złącze modułu J1 i J2. Piny te oznaczone są jako P0..P15. Każdy pin I/O może być ustawiony jako INPUT lub jako OUTPUT. 8 wyższych bitów (P8..P15) jest także oznaczone jako BUS0..BUS7. Umożliwiają one obustronny, szybki równoległy transfer do zewnętrznych urządzeń. Szczegółowe dane można znaleźć w dokumencie firmowym pod adresem: PICASO-SGC-COMMANDS-SIS.pdf 7
P0-P15 (16 x GPIO pinów), J1/J2: Piny I/O ogólnego przeznaczenia. Każdy pin może być indywidualnie jako INPUT Lu OUTPUT. Power-Up Reset ustawia domyślnie wszystkie piny jako INPUTS (WEJŚCIA). BUS0-BUS7 (8(8 bits GPIO Bus), J1/J2: 8-mio bitowy równoległy BUS I/O ogólnego przeznaczenia. Uwaga: Wszystkie piny GPIO akceptują napięcie 5,0V 3.3. Piny systemowe VCC (Zasilanie modułu,module Voltage Input), J3 pin 1, J2 pin6: Pin wejściowego napięcia zasilającego. Pin ten musi być podłączony do stabilizowanego napięcia w zakresie od 4,0V do 5,5V. Nominalna wartość tego napięcia wynosi 5,0V. 3,3Vout (stabilizowane napięcie wyjściowe 3,3V), J2 piny 16/18 Z tego pinu mogą być zasilane urządzenia zewnętrzne, wymagające napięcia zasilania 3,3V. Maksymalna dostępna wartość prądu wynosi 400 MA. GND (Masa modułu, Module Ground), J3 pin 4, J2 piny 15/17: Piny masy urządzenia. Piny te muszą być podłączone do masy. RESET Kasowanie, Module Master Reset), J3 pin 5, J1 pin 14: Pin kasowania modułu. Stanem aktywnym tego pinu jest stan niski impulsu o czasie trwania większym niż 2 mikrosekundy, który powoduje skasowanie modułu. Pin ten jest wewnętrznie podciągnięty (pulled up) do napięcia 3,3V poprzez rezystor 4,7 kω. Jeśli wymagane jest zewnętrzne kasowanie urządzenia, to należy użyć tylko układy z otwartym kolektorem. 4. Interfejs Programowy Rozkazy Interfejs programowy dostarczony przez moduł ulcd-32pt(sgc) jest zestawem prostych w użyciu rozkazów, pogrupowanych na następujące sekcje: Uwaga: Nazwy rozkazów podano w oryginalnej wersji angielskiej ze względu na konieczność posługiwania się oryginalną specyfikacją producenta: PICASO-SGC Command Set, Software Interface Specification General Commands: AutoBaud Set new Baud-Rate Version-Device Info Request Replace Background Colour Clear Screen Display Control Functions Set Volume Sleep (Low Power Mode) 8
Read GPIO Pin Write GPIO Pin Read GPIO Bus Write GPIO Bus Graphics Commands: Add User Bitmap Character Draw User Bitmap Character Draw Circle Draw ellipse Draw Triangle Draw Rectangle Draw Image-Icon Set Background colour Draw Line Draw Pixel Draw Polygon Read Pixel Screen Copy-Paste Replace colour Set Pen Size Text Commands: Set Font Set Transparent-Opaque Text Draw String Text (graphics format) Draw ASCII Char (text format) Draw String Text (text format) Draw ASCII Char (graphics format) Draw Text Button Touch Screen Commands: Get Touch Coordinates Detect Touch Region Wait Until Touch usd Memory Card Commands (Low-Level/RAW) Initialise Memory Card Set Address Pointer of Card Read Byte Data from Card Write Byte Data to Card Read Sector Block from Card Write Sector Block to Card Screen Copy-Save to Card Display Image-Icon from Card Display Object from Card Display Video-Animation Clip from Card Run Script (4DSL) Program from Card usd Memory Card Commands (FAT-Level/DOS) Initialise Memory Card Read File from Card (FAT) Write File to Card (FAT) Erase file from Card (FAT) List Directory from Card (FAT) Screen Copy-Save to Card (FAT) Display Image-Icon from Card (FAT) 9
Play Audio WAV file from Card (FAT) Run Script (4DSL) Program from Card (FAT) 4DSL - Scripting Language Commands Delay Set Counter Decrement Counter Jump to Address If Counter Not Zero Jump to Address Exit-Terminate Script Program Pełny opis rozkazów znajduje się w dokumencie: PICASO-SGC-COMMANDS-SIS.pdf Rozkazy posiadające specyficzne odpowiedzi (ze strony modułu) mogą wysyłać różną liczbę zwrotnych bajtów w zależności od rozkazu i odpowiedzi. Zajmuje to dodatkowy czas (w celu uzyskania odpowiedzi ze strony modułu), zależny od typu rozkazu i operacji, która ma być wykonana. Jeżeli moduł wyświetlacza otrzyma niezrozumiały rozkaz, to zostanie przez niego wysłane zwrotnie (do zewnętrznego mikrokontrolera) negatywne potwierdzenie zwane NAK (15hex). Ponieważ rozkaz jest identyfikowany tylko poprzez jego pozycję w sekwencji bajtów danych, to wysłanie niewłaściwej danej może skutkować przypadkowym działaniem. 5. Dane techniczne modułu Moduł ulcd-32pt(sgc) wyposażony jest w wyświetlacz TFT o przekątnej ekranu 3,2. 5.1. Podstawowe dane techniczne wyświetlacza: Przekątna ekranu: 3,2 Wymiary wyświetlacza: 56 x 77,6 x 3,7 mm Wymiary aktywnej części wyświetlacza: 48,6 x 64,8 mm Zintegrowany ekran dotykowy Jasność ekranu: 300 cd/m 2 Kontrast: 250:1 Kąt widzenia: 45 Podświetlenie ekranu: 5 diod LED 5.2. Procesor graficzny PICASO-SGC Moduł wyświetlacza jest zaprojektowany w oparciu o procesor graficzny PICASO-SGC firmy 4D-Labs. Procesor PICASO-SGC jest inteligentnym szeregowym kontrolerem. Wszystkie dane i sygnały sterujące są dostarczane przez układ scalony bezpośrednio do wyświetlacza. Procesor posiada wbudowane możliwości dotyczące użycia pełnej grafiki, tekstu, obrazów, animacji oraz wielu innych dodatkowych cech. Moduł graficzny oferuje prosty i efektywny szeregowy interfejs to dowolnego zewnętrznego mikrokontrolera. 10
5.3. Karta pamięci usd Moduł wyświetlacza obsługuje kartę pamięci (micro-sd) przez złącze usd znajdujące się na płycie modułu. Karta pamięci jest używana dla wszystkich multimedialnych plików jak obrazy, animacje i video clipy. Karta pamięci może być także jako pamięć ogólnego przeznaczenia dla zastosowań typu data logging. Oprogramowanie obsługuje karty micro-sd i karty dużej pojemności (HC) (High Capacity, powyżej 4Gb). Uwaga: Moduł obsługuje także pliki typu FAT. 5.4. Audio Sygnał audio jest dostępny jako sygnał PWM dostarczany przez procesor PICASO-SGC. Na płycie modułu znajduje się wzmacniacz o mocy 0,7 W z głośnikiem 8 Ω. Siła głosu jest ustawiana programowo (w zakresie 8-127) poprzez szeregowe rozkazy. Prosty rozkaz wspomaga użytkownika do egzekwowania plików WAV. Operacje audio mogą być przeprowadzane jednocześnie z wykonywaniem innych, koniecznych instrukcji. Głośnik zamontowany na płycie jest głośnikiem małej mocy o niewielkiej głośności do obsługi operacji audio nie wymagających dużej siły głosu. 5.5. Ekran dotykowy Moduł LCD obsługuje zintegrowany czteroprzewodowy rezystancyjny panel dotykowy. 6. Włączanie zasilania i kasowanie modułu wyświetlacza (Power-Up and Reset) W momencie włączenia zasilania lub zewnętrznego kasowania musi wystąpić sekwencja zdarzeń przed podjęciem próby skomunikowania się z modułem. Należy pozwolić na opóźnienie 500 ms po włączeniu zasilania lub skasowaniu w celu wykonania wewnętrznych ustawień modułu. W tym czasie nie należy komunikować się z modułem. Urządzenie może wysłać nieistotne rozkazy na swoim pinie TX. Mikrokontroler zewnętrzny (host) musi dezaktywować swoją linię odbiory Rx. Uwaga: W aplikacjach, w których stosowane są karty o dużej pamięci, należy zezwolić na inicjalizację karty w czasie do 3-ech sekund. Zewnętrzny mikrokontroler musi wysłać znak ascii U (55hex) przy prędkości transmisji 9600 bodów i czekać na potwierdzenie ACK (06hex). Domyślna prędkość transmisji wynosi 9600 bitów/sek i zewnętrzny mikrokontroler musi zainicjalizować z komunikację z modułem LCD z tą prędkością transmisji. Aby zmienić szybkość transmisji należy użyć rozkazu "Set New Baud-Rate". Na Rys. 6 pokazano kolejność występowania zdarzeń podczas kasowania. 11
Rys. 6. Kolejność zdarzeń podczas kasowania modułu LCD 6.1. Migotanie ekranu podczas włączenia zasilania (Splash Screen) Moduł LCD będzie czekał do 5 sekund z wygaszonym ekranem na rozkaz Auto-Baud z mikrokontrolera ( U, 55hex). Jeśli zewnętrzny mikrokontroler nie wyśle rozkazu Auto-Baud, moduł LCD wyświetli migotanie na końcu tego okresu czasu. Jeśli mikrokontroler wysłał rozkaz Auto-Baud, to ekran pozostanie pusty. Ten okres oczekiwania jest dla tych specyficznych zastosowań użytkowników w których migotanie ekranu jest niepożądane. 6.2. Program skryptowy 4DSL dla karty pamięci Podsumowanie kompletnej listy rozkazów przedstawiono w rozdziale 4 tego opracowania. Wykonywanie rozkazów nie jest ograniczone tylko do rozkazów wysyłanych przez zewnętrzny mikrokontroler przez szeregowy interfejs. Ważniejsze z tych rozkazów mogą być złożone jako skrypt (scenariusz) i zapisane w karcie pamięci. Program skryptowy 4DSL jest sekwencją tych rozkazów, które są zapisane w wewnętrznej karcie pamięci i mogą być one kombinacją rozkazów grafiki, tekstu, obrazów, plików audio i video. Kompletna lista rozkazów dla programu skryptowego podana jest w oddzielnym opracowaniu: PICASO-SGC-COMMANDS-SIS.pdf 6.3. Program skryptowy Auto-Run Card Moduł ulcd-32pt(sgc) posiada w momencie jego włączenia możliwość automatycznego wykonywania (auto run) zapisanego programu skryptowego. Moduł wyposażony jest w cechę akceptacji karty pamięci. Kiedy używany jest system pliku FAT po włączeniu zasilania (jeśli plik programu skryptowego 4DSL zwany autoexec.4ds znajduje się w karcie pamięci), to PICASO-SGC automatycznie rozpocznie wykonywanie programu skryptowego. 12
Jest to bardzo użyteczna cecha dla tych autonomicznych (niezależnych) aplikacji, które nie wymagają stosowania zewnętrznego mikrokontrolera do wysyłania rozkazów do modułu w celu odgrywania pokazu slajdów (obrazów), wideoklipów, itp. Użytkownik musi stworzyć i załadować kompozycję slajdów do karty pamięci w celu skorzystania z cechy automatycznego pokazu. Na końcu oddzielnego dokumentu pt. PICASO-SGC-COMMANDS-SIS.pdf jest krótki poradnik ułatwiający kreowanie plików skryptowych przy użyciu narzędzi programowych FAT-Controller. 7. Programowanie uaktualnień systemowych Procesor graficzny PICASO-SGC, zastosowany w module ulcd-32pt(sgc) jest graficznym procesorem użytkownika w postaci układu scalonego. Wszystkie cechy funkcjonalne zawierające rozkazy wysokiego poziomu są wbudowane do tego układu scalonego. Konfiguracja układu scalonego jest dostępna jako plik PmmC (Personality-module-micro- Code). Plik PmmC zawiera także wszystkie informacje dotyczące mikro kodów niskiego poziomu, które definiują charakterystyki i funkcjonalność urządzenia. Możliwość programowania urządzenia za pomocą pliku PmmC jest nadzwyczaj elastyczną metodą uaktualniania i rozszerzania jego możliwości. Plik PmmC może być zaprogramowany w urządzeniu tylko przez port szeregowy z dodaniem PmmC Loader na bazie programu narzędziowego z użyciem komputera PC. Wymagane jest użycie interfejsu szeregowego USB (np. typu uusb-ce5 lub uusb-mb5) w celu dostarczenia połączenia między komputerem PC oraz ICSP. 8. Karty pamięci format FAT16 Moduł wyświetlacza ulcd-32pt(sgc) standardowych kart pamięci microsd Przed użyciem karty pamięci, najpierw musi być ona sformatowana w opcji FAT16. Formatowanie karty może być przeprowadzone na komputerze PC z użyciem czytnika karty. Należy wybrać odpowiedni sterownik i opcję FAT16 dla sformatowania karty. Po wykonaniu tych czynności karta jest gotowa do użycia w module wyświetlacza. Moduł obsługuje również karty dużej pojemności HC (4 Gb i powyżej). Dostępna pojemność kart SD-HC zmienia się stosownie sposobu w jakim wykona się partycje i rozkazy do ich dostępu. Wykonanie partycji FAT zawsze wykonuje się na początku (jeśli to ma miejsce) i może być wykonane do maksymalnego zez wolonego rozmiaru przez FAT16. System Windows sformatuje FAT16 do 2 Gb a rozkaz Windows promt sformatuje FAT16 do 4 Gb. Dla partycji RAW (Reads And Writes) bajty odczytu i zapisu mają dostęp do pojemności 2^32 karty (tj. 4gb). Sektor odczytu i zapisu może mieć dostęp 2^24 sektorów (512 bajtowych, tj. 8gb). Łączna, użytkowa pojemność karty jest sumą partycji FAT i RAW. 13
9. Narzędzia rozwojowe i wspomagające. 9.1. Program PmmC Loader Program PmmC Loader jest narzędziem programowym na bazie platformy Windows. Program służy do programowania najnowszych wersji plików procesora graficznego PICASO-SGC wbudowanego do modułu ulcd-32pt(sgc). 9.2. Narzędzia sprzętowe - Interfejs USB do programowania PmmC Moduł micro-usb jest adapterem, który umożliwia wygodne, fizyczne połączenie między komputerem PC i modułem graficznym. Dostępne są dwa typy modułów USB. (uusb-ce5 i uusb-mb5) (Rys. 7). Rys. 7. Mikromoduły USB do programowania wyświetlacza graficznego 14
9.3. Narzędzia programowe - Ustawianie i personalizacja wyświetlacza Display Initialisation Personality (DISP) Program DISP (Rys. 8) jest programem pracującym w środowisku Windows, przeznaczonym do: Konfiguracja układu PICASO-SGC do pracy ze wyspecyfikowanym wyświetlaczem. Modyfikacja ustawień wyświetlacza, np. zapamiętanie zawartości ekranu, jasność ekranu itp. Konstrukcja migających ekranów (splash screens). Wymiana lub modyfikacja wbudowanych fontów Rys. 8. Okno programu DISP 9.4. Narzędzie programowe Graphics Composer Graphics Composer (Rys. 9) jest programem (dla środowiska Windows) to tworzenia pokazu slajdów obrazy/animacje/klipy filmowe (Multi-media objects), które mogą byuć wprowadzone do karty pamięci 9SD. Mikrokontroler zewnętrzny wysyła szeregowe rozkazy do modułu wyświetlacza do wyświetlania plików multimedialnych. 15
9.5. FONT Tool Narzędzie programowe Rys. 9. Okno programu Graphics Composer FONT-Tool jest programem przeznaczonym do konwersji standardowych fontów (w tym True Type) na mapę bitową fontów używanych w procesorze graficznym PICASO-SGC. Rys. 10. Okno programu FONT Tool 16
9.6. FAT Controller Testowe narzędzie programowe 4D FAT Controller (Rys. 11) jest programem do testowania wszystkich cech funkcjonalnych urządzeń GOLDELOX-DOS, GOLDELOX-SGC i PICASO-SGC i ich odpowiednich modułów. Program jest użyteczny w nauce komunikacji z układami scalonymi i modułami. Dla urządzeń GOLDELOX-SGC i PICASO-SGC program może symulować większość operacji urządzenia i towarzyszyć w kreowaniu prostycg skryptów albo też symulowanie sytuacji wykonywania tych skryptów i/lub załadowanie ich do kart pamięci usd/usdhc do wykonywania ich na ekranie. Rys. 11. Okno programu FAT Controller 9.7. RMPET Narzędzie programowe Karty pamięci usd/sdhc prawie zawsze dostarczane z predefiniowaniem partycji z pojedynczą partycją. Programy Windows mają dostęp jedynie do pierwszej partycji na karcie pamięci i ignorują jakiekolwiek inne partycje. Program Removeable Media Partition Edit Tool (RPET) (Rys. 12) może podzielić dużą kartę na dwie partycje. Pierwsza partycja do użytku jako FAT16 a druga partycja jako partycja RAW. Program RMPET pozwala na ustawienie pierwszej partycji jako procentową zawartość karty pamięci, 2 Gb maksimum FAT16 Windows sformatowanego programu lub 4 Gb maksimum FAT16, kiedy używana jest podpowiadający rozkaz formatowania. 17
9.8. Płyta rozszerzeń: P1-EB Rys. 12. Okno programu RMPET P1-EB jest płytką drukowaną ułatwiającą dostęp do wszystkich pinów I/O ogólnego przeznaczenia procesora PICASO-SGC (Rys. 13) 18
Rys. 13. Widok płytki P1-EB oraz płytki z zamontowanym modułem wyświetlacza 19
Na Rys. 14 przedstawiono widok wyprowadzeń. Rys. 14. Widok wyprowadzeń na płytce P1-EB 20
10. Szczegóły mechaniczne Rys. 15. Widok modułu od strony druku oraz z boku 21
11. SCHEMATY ELEKTRYCZNE Rys. 16.. Schemat ideowy układu procesora graficznego PICASO-SGC 22
Rys. 17. Schemat modułu wyświetlacza graficznego ulcd-32pt (SGC) 23
12. Dane techniczne 24