Arduino a ILI9341
Pavel Kutina
hw na prelude.cz
Pondělí Listopad 23 11:10:22 CET 2015
Diky za tip, uvidim, jak budou pracovat ty "vestavene" knihovny, pokud bych
to mel prepisovat (a ze se mi do toho fakt moc nechce), tak by ten 9 bit
prenos byla asi nejlepsi varianta. Ty Vase rychlosti jsou velmi prijemne...
Pavel Kutina
----- Original Message -----
From: "Tomáš Hamouz" <hamouz na divesoft.cz>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Monday, November 23, 2015 8:51 AM
Subject: Re: Arduino a ILI9341
Používám ten kontrolér v práci, a dalo dost práce to rozběhat trochu
svižněji. Nikoli však na Arduinu, běží to na AT91SAM7S.
Největší zdržování je režie při přepínání command/data. Pokud máte
displej zapojený tak, že se používá samostatný signál C/D-, bude to
pomalé pořád. Musíte pokaždé počkat, až se odešle cmd, přepnout vývod
na data, pokračovat v odesílání.
Pokud Vám to nepřepisuje pozadí, tak do dělá dojem že ta knihovna vypisuje
jen foreground, tzn. musí pro každý bod posílat souřadnice = další
zdržení (kontrolér neumí barvu "transparent"). Používám fonty definované
jako bitovou mapu foreground/background, takže se vždy přepíše celá
plocha zabraná znakem.
Aby šlo na odesílání používat DMA, tak mám displej připojený přes
čisté SPI a používám 9bitový přenos (1. bit je C/D- + 8 bitů data).
SPI běží na 24MHz.
Dosažená rychlost, měřená jako 1000 opakování operace a měřená 1ms
timerem:
CLS 64,6 ms (vždy řádka 320px najednou)
znak 43*54px 11,4 ms (po řádkách, 43px)
úhlopříčka 5,0 ms (pro každý bod se posílají souřadnice)
Tomáš
> Zkusil jsem nejake jine knihovny a da se to zrychlit - on ten puvodni
> odhad tri vterin na prekresleni byl nepresny, realne je to pod dve, SPI
> bezi na 8MHz, vykonnostne to odpovida tomu, co je k videni treba na
> youtube.
> Puvodni idea byla vyzkouset a pripadne analyzatorem ocmuchat, jak ma ta
> komunikace vypadat, abych se mel ceho chytit, az mi to na tom Stellarisu
> nebude chodit - a to se vlastne celkem podarilo, prestoze to chodi
> pomalu (ano, pracuju s celou plochou displeje a ne s oknem).
> Dal to resit nebudu, zacne to byt vesele az na tom ARMu.
> Navic jsem (ja mrcha lina) zjistil, ze v MikroE Pascalu pro ARM existuji
> knihovny i pro ILI9341 (i kdyz pro paralelni rezim, ale nejspis se daji
> se pro to SPI "priohnout"), takze snad budu resit predevsim CO to ma
> zobrazovat, ne JAK to zobrazit. Tedy alespon v to doufam - abych za
> chvili nepsal krome me oblibene vety "zlaty Pascal" jeste navic i "zlaty
> HD44780" :)
> Pavel Kutina
> Dne 22.11.2015 v 22:47 Jaroslav Buchta napsal(a):
>> Mate to dost pomale, pri SPI 10MHz dosahnu prepsani celeho displeje za
>> nejake stovky ms, nemeril jsem ale tak 3x-6x/sec to bude. Nakonec
>> 320x240x16b je cca 1.2 Mb, takze teoreticky tak 8x/sec by to melo jit
>> prepsat. Displej kupodivu fungoval i na 20MHz, ale v DS je max 10MHz.
>> Fonty jsou problem, vytvoril jsem si vlastni generator a vykreslovani,
>> vizualne idealni je prekreslovat to v jednom prubehu, jak pozadi, tak
>> motiv fontu, jinak to pusobi rusive.
>> Ale problem bude asi v pomale implementaci prenosu, jinak to neni az tak
>> hrozne.
>>
>>
>> Dne 22.11.2015 v 22:19 Pavel Kutina napsal(a):
>>> Zdravim,
>>>
>>> trochu z donuceni jsem preskocil od STM32 (mimochodem blika, diky za
>>> strucny, ale dostacujici navod) k jinemu projektu, kde potrebuju
>>> pouzit 2.4" TFT displej - cinska klasika, ILI9341, SPI, mel by to byt
>>> nejaky testovaci pripravek.
>>>
>>> Sice to nejspis bude bydlet na Stellarisu, ale chtel jsem nejdriv
>>> vyzkouset, jak to maluje a pripadne "ukrast" knihovny pro zobrazovani
>>> a trochu jsem narazil.
>>>
>>> Po HW strance to funguje, pouzil jsem knihovny pro Adafruit, viz
>>> http://www.instructables.com/id/Cheap-TFT-22-inch-Display-on-Arduino-ILI9340C-or-I/
>>>
>>>
>>> Hacek je, ze bych potreboval zobrazovat nejakou namerenou uroven
>>> pomerne velkym fontem (cca 40px), dejme tomu zelene na cernem pozadi.
>>> Ale jak na to?
>>>
>>> Zvolim velikost fontu a barvu textu, napozicuju kurzor, napisu hodnotu
>>> na displej.
>>>
>>> Hodnota se zmeni. A ted mam nekolik moznosti, zadna neni spravna:
>>>
>>> a) Napozicuju kurzor, napisu hodnotu na displej - akorat ze nic
>>> nesmaze ten puvodni text, takce cisla se napisou pres sebe. Hmm.
>>>
>>> b) Napozicuju kurzor, namaluju cerny box, cimz ziskam prazdnou plochu,
>>> do ni napisu novy text. Funkcni, ale pomale - je videt to vymalovani
>>> cerneho boxu.
>>>
>>> c) Napozicuju kurzor, zmenim barvu textu na cernou, napisu starou
>>> hodnotu cerne, zmenim barvu textu na zelenou, napisu novou hodnotu. O
>>> neco rychlejsi nez v bode b), ale porad vidim to mazani.
>>>
>>> To je opravdu ten displej tak zoufale pomalej, nebo delam neco blbe?
>>> SPI by melo bezet na 8Mhz (teda aspon doufam, je tam nastaveny div/2
>>> od sysclk, Arduino bezi na 16Mhz).
>>>
>>> Uz jen smazani obrazovky (knihovna to nijak nemaze, ale vyplni cely
>>> displej po pixelech pozadovanou barvou) trva asi tri vteriny.
>>>
>>> Varianta z) je cele to prepsat, vykaslat se na knihovny a napsat si to
>>> po pixelech sam, ale nezda se mi, ze by neexistovalo funkcni reseni,
>>> mozna ho jen neznam...
>>>
>>> Mate nekdo tip?
>>>
>>> Diky.
>>>
>>> Pavel Kutina
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list