logo_elektromys.eu

/ Grafický displej JLX12864G |

Obr.1 - Displej v provozu bez podsvícení

Modul JLX12864G

Pod názvem JLX12864G lze z Číny přibližně za stokorunu sehnat modul s grafickým displejem z tekutých krystalů (LCD) s rozlišením 128x64 bodů a zobrazovací plochou 23*37mm. Displej je řízen driverem UC1701 a existuje k němu kvalitní datasheet (což je mnohdy u čínských modulů problém). Samotné zapojení displeje ke driveru, které je potřeba znát ke správné konfiguraci driveru, přirozeně už zdokumentované není. To je ale naštěstí jen minimální komplikace.

Obr.2 Osazení DPS z výroby
Obr.3 Odpájen regulátor napětí (U2) a ROM (U1), přemostěno napájení (R1), a připojen pullup na RST pin.
Obr.4 Podsvícení proudem přibližně 15mA. Kontrast naladěn k nejvyšší hodnotě.

Driver UC1701

Na obrázku 3 je modul upraven do nejvhodnější konfigurace, takhle může pracovat s napájecím mezi 2.5V a 3.3V. Driver UC1701 má obrazovou paměť (Displej Data RAM) 132x65 pixelů. Displej má ale jen 128x64 pixelů (128x8 Byte). To znemožňuje přepsat celý její obsah jednou SPI sekvencí a nutí programátora aby přepis prováděl "po řádcích". Tedy aby po dosažení 128. sloupce, poslal příkaz s adresou prvního prvku nového řádku. To je škoda hlavně z toho důvodu, že to komplikuje využití DMA k přenosu obrazových dat. Na použití driveru je komplikovaná pouze inicializace. Částečně se lze inspirovat z "ukázkového" zdrojového kódu v dokumentaci k modulu, ale jako zaručenou informaci ho brát nemůžete. Konfiguraci některých parametrů jsem tedy odladil metodou pokus-omyl a věřím, že je správná.

Ovladač

Ovladač (SW) jsem pojal tak aby byla striktně oddělená vrstva komunikace s UC1701 od grafiky. Protože komunikační rozhraní neumožňuje čtení z UC1701 zvolil jsem variantu kdy je celý obrazový buffer skladován v paměti MCU. Pro displej těchto rozměrů je to asi vhodná volba. Celý obraz zabírá pouze 1kB. Díky tomu, že je v RAM MCU lze v něm snadno provádět grafické operace (výpis textu, vykreslování geometrických obrazců apod.). Ovladač pak může být velice jednoduchý a obsahovat pouze kód k inicializaci pinů a periferií, inicializaci displeje, posílání příkazů (například k vypínání) a jedinou funkci pro přepis celé obrazové RAM. Díky tomu je snadné ovladač portovat na jiné platformy.

Zdrojový kód ovladače k UC1701 v různých variantách je ke stažení zde. Postupně jak budu kód portovat ebo vylepšovat sem přidám další varianty:

Grafická knihovna

Grafická knihovna se postupně rozrůstá. Klíčovým prvkem je schopnost importu fontů pomocí TheDotFactory. Návod na import a její použití bude v dalších dílech tutoriálu.

Obr.5 Ukázka některých prvků grafické knihovny

| Odkazy /

Home
| V1.01 26.12.2019 /
| By Michal Dudka (m.dudka@seznam.cz) /