Инициализация на TFT дисплей на примера на ILI9341 за AVR
Както се оказа, дисплеят, който му беше изпратен от Али, се управлява от драйвераILI9341, надписът върху него помогна да се познае. Горният дисплей с драйвера SSD1289, долният сILI9341.
Ето защо, веднага щом този дисплей дойде при мен, веднага започнах да изучавам листа с данни заILI9341.
За разлика от SSD1289,ILI9341няма регистри, за комуникация с него се използват команди. Първо изпращате команда, а след това набор от параметри, тоест след като сме изпратили командата, дисплеят вече чака да му бъдат предадени параметрите. Трябва също да кажа, че комуникацията с дисплея се осъществява по един от двата протокола: Intel i8080 и Motorola M6800, как се различават, е описано тук, не промениха традициите и избраха i8080. Този протокол има две реализации, за повече информация можете да прочетете листа с данни.
Първата стъпка е да внедрим функции на ниско ниво и тук е важно да разберем, че разбираме правилно листа с данни. Най-лесният начин да проверите дали листът с данни е разбран правилно е да прочетете информация от дисплея, например неговия ID.
Тогава функцията за изпращане на командата ще изглежда така.
И функцията, която чете данните по този начин.
От екранните снимки става ясно, че описаните по-горе функции са работили, остава да се реализира изпращане на данни в 8 и 16 бита. Факт е, че основно само долните 8 бита на шината се използват при изпращане на данни, но например при запис на данни в паметта на дисплея се използват всички 16 бита.
Това е всичко, внедрихме всички необходими функции на ниско ниво, сега можете да продължите директно към инициализацията. Преди да преминете къминициализация, трябва да се каже, чезахранващото напрежение на LCD клетката постоянно променя своята полярност, това се прави, за да се избегнат явленията на хидролиза и дисоциация на сложни органични съединения, които изграждат течнокристалния материал.
Функцията за инициализация съдържа функцията TFT_SetOrientation(2), която определя реда на чертане, MAX_X и MAX_Y се декларират глобално и се инициализират на нула.
А ето как изглежда дисплеят след инициализация.
Така може да се направи една платка за отстраняване на грешки и за двата дисплея, а също така е важно захранващото напрежение на МК и дисплея да е 3,3 волта, когато се захранва от 5 волта, дисплеят няма да стартира. Подсветката на дисплея също се захранва от 3,3 волта през резистор 47 ома.
И това е всичко, в следващата статия ще разгледаме как да показваме знаци на дисплея и също така ще има проект заAtmega16в AtmelStudio6.2.
За тези, които искат бързо да проверят дали дисплеят им работи, оставям тук фърмуера заAtmega16, който изпълва дисплея с различни цветове ili9341_i8080.hex [3,54 Kb] (изтегляния: 336).