Ceść!
Posiadam zestaw: TFT_320QVT oraz stmf4 discovery.
Przypisuję:
GPIOE[15:0] <- DB [15:0] (dalej nazwane "dane")
PB11 <- reset
PB12 <- CS
PB13 <- RD
PB14 <- WR
PB15 <- RS
Pseudoalgorytm:
Kod:
reset = cs = rd = wr = rs = 1;
reset = 0;
czekaj(100); //ms
reset = 1;
czekaj(100);
cs = 0;
rs = 0;
dane = 0; // na szynę danych dajemy adres 0;
wr = 0;
wr = 1;
rs = 1;
dane = 1; // zapisujemy 1 do rejestru, aby uruchomić oscylator
wr = 0;
wr = 1;
cs = 1;
//próba odczytania jakiegoś rejestru
cs = 0;
rs = 0;
dane = 0; // adres rejestru do odczytania
wr = 0;
wr = 1;
rs = 1;
rd = 0;
zmienna = dane; //zmienna zawsze przyjmuje 0x8988
rd = 1;
cs = 1;
Mam taki problem, że co bym nie wpisał jako adres rejestru do odczytania, zawsze otrzymuję 0x8988, jako odpowiedź z wyświetlacza. Mógłbyś mi powiedzieć co robię źle?
Posiłkuję się tym datasheet'em (dokładniej to 2 pierwsze przebiegi czasowe na stronie 50):
http://www.densitron.com/uploadedFiles/ ... _V0.51.pdf--------
edytowany:
Pomyliłem się we wcześniejszym opisie: Otrzymuję 0x8989 zamiast 0x8988
--------
2 x edytowany:
Problem rozwiązany:
Naprowadził mnie fakt, że po podłączeniu do PORTC wszystkich nóg od wyświetlacza otrzymałem wartość 0x8989 (na porcie E coś jest podpięte na płytce discovery, wyświetlacz nie był w stanie się prawidłowo przedstawić), a tak przedstawia się SSD1289. Na allegro kupiłem SSD, chociaż w opisie aukcji było ILI. Nie ważne już, ważne, że wiem co mam i już działa.