Wyświetlacze LCD bywają dosyć kłopotliwe w obsłudze, dlatego przygotowałem prosty opis podłączenia i obsługi za pomocą mikrokontrolerów STM32. Przykładowe oprogramowanie zostało napisane w Coocox IDE.
Platforma testowa:
- płyta: HY-Mini z STM32F103VCT
- programator: AsLinkEx
- prosty adapter w postaci 2 wtyczek, kawałka tasiemki oraz rezystora 100Ω
Rozkład wyprowadzeń wyświetlaczy z seri ITDB02.
Schemat płyty HY-Mini: HY-MiniSTM32V.pdf
Podłączenie: wyświetlacz -> STM32
Pin ITDB02 | Opis | Pin STM32 |
GND | Masa | ------------ |
VCC | 5V zasilanie | ------------ |
CS | Chip Selection,Low level active | PD7 |
RS | Data/Command selection | PD11 |
WR | Write signal enable, low active | PD5 |
RD | Read signal enable, low active | PD4 |
DB0 | Data Bus | PD14 |
DB1 | Data Bus | PD15 |
DB2 | Data Bus | PD0 |
DB3 | Data Bus | PD1 |
DB4 | Data Bus | PE7 |
DB5 | Data Bus | PE8 |
DB6 | Data Bus | PE9 |
DB7 | Data Bus | PE10 |
DB8 | Data Bus | PE11 |
DB9 | Data Bus | PE12 |
DB10 | Data Bus | PE13 |
DB11 | Data Bus | PE14 |
DB12 | Data Bus | PE15 |
DB13 | Data Bus | PD8 |
DB14 | Data Bus | PD9 |
DB15 | Data Bus | PD10 |
T_CLK | Touch clock | PA5 |
T_CS | Touch chip selection | PA4 |
T_DIN | Touch data input | PA7 |
T_BUSY | Touch status | ------- |
T_DOUT | Touch data output | PA6 |
T_IRQ | Touch interrupt | PB6 |
LED | Podświetlanie, przez rezystor 100R do 5V |
Przy podłączaniu należy dążyć do tego aby przewody były jak najkrótsze.
Program
Większość kontrolerów wyświetlaczy LCD umożliwia odczyt Product ID (DeviceCode) jest to liczba określająca jaki typ kontrolera jest zastosowany do obsługi wyświetlacza. Product ID znajduje się w adresie 0x00.
Co nam to daje? Możemy napisać tak program aby był uniwersalny - tzn. odczytywał kod kontrolera wyświetlacza i w zależności od tego kodu odpowiednio inicjalizował obsługę.
Kody typowych kontrolerów:
Device Code | Kontroler | Wyświetlacz |
0x9320 | ILI9320 | |
0x9325 | ILI9325 | |
0x9328 | ILI9328 | |
0x9331 | ILI9331 | |
0x8999 | SSD1298 | |
0x8989 | SSD1289 | ITDB02-3.2S, HY32D |
0x7783 | ST7781 | |
0x4531 | LGDP4531 | |
0x5408 | SPFD5408B | |
0x1505 0x0505 | R61505U | |
0x0046 | HX8346A | |
0x0047 | HX8347D | |
0x0047 | HX8347A | |
0x4535 | LGDP4535 | |
0x9919 | SSD2119 | |
0x0052 | HX8352-A | ITDB02-3.2WD |
0x1121 | S1D19122 | ITDB02-2.4E |
Poniżej znajduje się link do programu. Samo działanie jest dosyć proste: po uruchomieniu program odczytuje DeviceCode i w zależności od tego inicjalizuje wyświetlacz. Następnie przechodzi do obsługi panela dotykowego. Dodatkowo za pomocą USART1 (na płycie Hy-Mini za pomocą USB) wysyłany jest DeviceCode. Program powinien obsługiwać wyświetlacze z kontrolerami, które są przedstawione w ramce powyżej, w trybie 16bit.
Testowany był z następującymi wyświetlaczami:
- ITDB02-2.4E - testowany w trybie 16bit
- ITDB02-3.2WD - działa tylko inicjalizacja oraz czyszczenie ekranu
- HY32C
Wyświetlacz ITDB02-4.3
Wyświetlacz ITDB02-4.3 posiada kontroler SSD1963 jego obsługa różni się od powyższych. Sposób połączenia pozostaje ten sam.
Przykładowy program inicjalizuje wyświetlacz oraz wyświetla tekst. Obsługa panel dotykowego nie jest dodana.