Arduino a ILI9341
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Listopad 23 08:59:44 CET 2015
I bez 9b SPI to jde dobre s DMA, jen se musi sikovne vyuzivat ta okna -
3x cmd pro nastaveni okna a start dat, pak uz se jen sypou pixely pro
cele okno
Pouzivat metodu pixel by pixel je u tohoto rozhrani obecne spatny napad,
to je nezbytne jen pro kruznice a sikme cary.
S ou frekvenci 24MHz jste si jisty? Koukal jsem teda jen do jednoho DS a
tam se pise max 10MHz a to jeste pro zapis, cteni vyzaduje min (ale to
je asi zbytecne pouzivat)
To SPI neni proste na nejake akcni prekreslovani.
Dne 23.11.2015 v 8:51 Tomáš Hamouz napsal(a):
> 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