Inițializarea afișării tft pentru exemplul ssd1289 pentru avr

A doua zi a apărut afișajul TFT, comandat lui Ali, să luăm în considerare caracteristicile sale principale.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Caracteristicile principale ale afișajului:
  • 3.2 inch, cu o rezoluție de 320x240
  • Afișaj TFT - SSD1289, driver touch panel - XPT2046
  • Controlul TFT asupra protocolului 6800, 8080, suport pentru FSMC
  • Interfața SPI de control al panoului tactil
  • sursa de alimentare de 5V sau 3.3V, datorită stabilizatorului de coborâre încorporat
  • capacitatea de a controla lumina de fundal cu PWM
  • conector incorporat pentru card SD
  • spațiu liber pentru lipirea memoriei FLASH
  • sprijină orientarea orizontală și verticală, capacitatea de a afișa mai multe ferestre
  • adâncime de culoare: 18bit (262144 combinații)







Ca microcontroler de control luăm Atmega16. Exemplele finalizate de inițializare nu au căutat, au decis să înțeleagă cum funcționează și să scrieți propria dvs. Mai întâi, o să ne dăm seama cu interfața de conectare. Comunicarea cu controlerul SSD1289 poate apărea pe 1 din 4 interfețe: i8080, M6800, RGB, SPI, dar nu suntem chinuiți, neștiind ce să alegem, producătorul modulului ne-a ajutat. A lăsat o gamă de două interfețe pe 16 biți: Intel i8080 și motorul M6800. i8080 și M6800 sunt interfețe paralele care pot funcționa în modul 18/16/8-biți. Alegerea a căzut pe i8080, deși se judecă după fișa tehnică, acesta diferă de modelul M6800 doar prin faptul că i8080 are semnale separate WR și citite (RD). în timp ce M6800 are același semnal de control al direcției RD / WR unul, dar pe lângă acesta există un semnal de rezoluție E.
Acum, să ne uităm la pinui modulului.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Terminale de alimentare.
VCC este tensiunea de alimentare a modulului. În interiorul modulului este un regulator de tensiune de 3.3V, de la care sunt alimentate controlerul grafic (SSD1289), controlerul touchscreen rezistiv (XPT2046) și cardul SD. Prezența unui stabilizator permite alimentarea modulului cu o putere egală cu 5V. Dar schimbul de informații între microcontroler și modul ar trebui să aibă loc cu ajutorul a 3.3V. În circuitul meu, modulul și microcontrolerul sunt alimentate de o singură tensiune - 3.3V, care asigură schimbul normal de date. Cu această tensiune de alimentare, microcontrolerul funcționează în mod normal la o frecvență de 8MHz. Da, apropo, am servit 5 volți pe microcontroler și modul, am avut noroc că nimic nu a ars și totul a funcționat, dar nu merită.
GND - ieșire comună (pe sol).
LED-A - anodul luminii de fundal a afișajului TFT, este necesar să se conecteze printr-o rezistență limitatoare de curent, la o sursă de alimentare de 3,3V conectată la 200 Ohm.

Ieșirile controlerului grafic.
[DB15, DB0] (Bus de date) - O magistrală de date / comandă pe 16 biți.
RS (Selectare înregistrare) -pin cu care puteți comuta între registrele de date (GRAM) și registrele de instrucțiuni, în datasphere se numește D / C.
WR (Write) - o strobe pentru scrierea datelor / comenzilor.
RD (Citire) - citiți strobe de date / parametri.
REST (Resetare) - resetați controlerul grafic.
CS (Chip Select) - activarea / dezactivarea afișajului grafic.

Schema generală de conectare a afișajului TFT este prezentată mai jos.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr






Acum trebuie să ne dăm seama cum să trimiteți comanda / datele SSD1289, pentru aceasta, să ne uităm la imaginea de mai jos.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Imaginea arată că acest lucru se poate face în două moduri, vom implementa primul.
Pentru a trimite o comandă, trebuie să faceți următoarele:
  • pe piciorul D / C am stabilit zero pentru a spune că vom trimite echipa
  • Pe piciorul RD, am setat unitatea să înregistreze cu precizie
  • activați cipul instalând pe piciorul CS zero
  • emitem date către autobuz, în cazul nostru sunt două porturi
  • pe piciorul WR expunem unitatea
  • așteptând câteva microsecunde
  • pe tulpina WR am setat zero
  • Pe piciorul CS am setat unitatea, dezactivăm cipul

Pentru a trimite datele, este necesar să efectuați următoarea secvență de acțiuni:
  • pe piciorul D / C setați unitatea spunând că vom trimite date
  • Pe piciorul RD, am setat unitatea să înregistreze cu precizie
  • activați cipul instalând pe piciorul CS zero
  • emitem date către autobuz, în cazul nostru sunt două porturi
  • pe piciorul WR expunem unitatea
  • așteptând câteva microsecunde
  • pe tulpina WR am setat zero
  • Pe piciorul CS am setat unitatea, dezactivăm cipul

Mai jos este implementarea comenzilor / datelor de trimitere către C.


Cu conexiunea, mergem acum la inițializare. Deschidem fișa tehnică și găsim străinul, care descrie ordinea de inițializare.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Pentru a inițializa controlerul SSD1289, este necesar să se scrie pentru a înregistra R07, valoarea 0021h. astfel punând GON = 1, DTE = 0, D [1: 0] = 01, că acești biți nu vor fi luați în considerare până când nu contează.


În pasul următor, porniți ceasul setând 0000h la registrul R00. Apropo, dacă după inițializare citiți datele din acest registru, în cazul inițializării cu succes, 8989h ar trebui să revină.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Apoi, reveniți la R07 și setați valoarea la 0023h.
Următorul pas este să ieșiți din modul de somn, setând R10 la 0000h.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Asteptam 30 de milisecunde. Setați registrul R07 la 0033h. Apoi, în registrul R11 setați valoarea de 6838h, să luăm în considerare ce înseamnă aceste cifre.
POR este valoarea implicită și este egală cu 6830h. Prin urmare, în mod prestabilit, afișajul poate afișa culori de 65K, pentru care primește prima cifră 6 în valoarea de 6830h, acest lucru ar trebui să fie amintit atât de mult atunci când formăm culoarea pe care o vom reveni la aceasta.


Apoi, determinăm ordinea punctelor de înregistrare, fapt pentru care pentru afișarea imaginii este suficient să setăm coordonatele numai primului punct. în plus, trebuie să trimiteți SSD1289 numai culoarea următorului punct și el îl va desena prin algoritmul pe care îl alegem acum. Și aici, doar pentru a spune de ce nu, cu aceste setări a pornit modul marcat cu un cerc verde, și trebuia să pornească marcate în roșu.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Valoarea din registrul R02 este lăsată în mod prestabilit, ceea ce duce la finalizarea inițializării.
Acum tot ceea ce am considerat va fi formalizat sub forma unui cod.

Dacă efectuați în mod consecvent toate acțiunile descrise, în cazul inițializării cu succes, ecranul este colorat haotic cu puncte colorate, ca în fotografia de mai jos.

Inițializarea afișării tft pentru exemplul ssd1289 pentru avr


Acum știm cum să inițializăm afișajul TFT pe care este instalat controlerul SSD1289, în următorul articol ne vom uita la modul de afișare a caracterelor individuale și a șirului de caractere. De asemenea, la sfârșitul următorului articol puteți descărca un exemplu pentru Atmel Studio 6.2.

P.S.S pentru cei care doresc să verifice rapid dacă ecranul lor funcționează, am lăsa aici firmware-ul pentru Atmega16 ssd1289_i8080.hex [5,75 Kb] (descărcări: 177)







Articole similare

Trimiteți-le prietenilor: