Cześć!
Otóż w moje łapki wpadł wyświetlacz 3,2 cala HY-320 z dotykiem, bazujący na sterowniku SSD1289. Poświęciłem bodaj trzy lub cztery wieczory na jego uruchomienie, już miałem się poddać gdyż nie było widać jakichkolwiek efektów, jednak porada jednego użytkownika z forum.atnel.pl okazała się kamieniem zakończającym moje udręki związane z inicjalizacją wyświetlacza. Pozostała mi z niej puenta że trzeba szukać błędów tam gdzie się ich nie spodziewamy.
Historię "choroby" możecie zobaczyć tutaj: http://forum.atnel.pl/topic5747.html
Otóż wszystko działa jak powinno, włącznie z dotykiem, banan na twarzy był niesamowity kiedy udało mi się rozkminić ten problem :)
Załączam przykładowy program dzięki któremu uda się go uruchomić i coś wyświetlić każdemu:
http://adf.ly/1665682/lcd-ssd1289
Kod w najważniejszych miejscach jest z dodanymi komentarzami, jeśli czegoś nie rozumiesz, pytaj w komentarzach pod tym postem. W obecnej wersji działa rysowanie za pomocą dotyku, wyświetlają się współrzędne X i Y, kasuje rysunek po wciśnięciu "Czyść" oraz wyświetla się przykładowa akcja po wciśnięciu pola z napisem "Klik".
Wiele pozostało do dopracowania, jednak myślę że nawet w tym stopniu przyda się przekazana ode mnie takowa "wędka". Jeśli doprowadzę te biblioteki do jakichś diametralnych poprawek, zarzucę je na blogu.
Podłączenie wyświetlacza w tym przykładzie, można je zmienić w pliku pins.h
Użyty mikrokontroler: Atmega32A
Częstotliwość taktowania: 16MHz
LCD Mikrokontroler
DB0 do DB7 <-> PORTC0 do PORTC7
DB8 do DB15 <-> PORTA0 do PORTA7
CS <-> PORTD7
RD <-> PORTD6
WR <-> PORTD5
RS <-> PORTD4
REST <-> PORTD3
T_CLK <-> PORTB0
T_DIN <-> PORTB1
T_DO <-> PORTB2
T_IRQ <-> PORTB3
Jednak parę uwag ode mnie, przeczytaj przed ruszeniem z miejsca:
Sam wyświetlacz można zasilać napięciem 3,3V oraz 5V, posiada wewnętrzny stabilizator.
Napięcie na liniach I/O LCD musi być w przedziale 1.4V – 3.6V, co za tym idzie nie można podłączyć ich bezpośrednio do mikrokontrolera zasilanego 5V!!!, gdyż ulegnie on uszkodzeniu.
Tak więc albo stosujemy jakiś bufor np. 74LVC245 albo zasilamy wszystko 3,3V.
W przykładzie używam mikrokontrolera Atmega32A, który może być zasilany napięciem 3,3V.
Dla bezpieczeństwa żeby nic nam się nie skichało nie podłączać pinów I/O LCD do linii programowania ISP mikrokontrolera. Starczy że programator AVR'a będzie dawał sygnały na poziomie 5V, i już LCD umarł w butach :(
Dobrze opowiedział o problemach używania pinów ISP Mirosław Kardaś w swoim wideo-poradniku: http://www.youtube.com/watch?v=CX9r0GwkFU0
Pozdrawiam!
Brak komentarzy:
Prześlij komentarz