Arduino a ILI9341

Tomáš Hamouz hamouz na divesoft.cz
Pondělí Listopad 23 11:04:08 CET 2015


No jo, máte pravdu, to jsem ale .... :-(

Když jsem to rozebíhal s hodinama dle DS tak mi to nechodilo (chyba
jinde), pak jsem hodiny rapidně snížil, a když jsem to rozeběhl, tak
jsem pak v rámci celkového urychlování zkoušel zvyšovat hodiny kam až
to půjde, a zapomněl původní omezení.

Skutečně mi to běží na 24MHz. To je dost, budu muset slevit.

Tomáš

> 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

> _______________________________________________
> 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