Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
STM32 uputstva za iskusne početnike
#38
Moja topla preporuka je LVGL, koji je napisala i razvija sa čestim nadogradnjama jedna veoma mala ekipa, ali koja je problemu pristupila veoma profesionalno. Iako je projekat na početku bio "one-man-show", ubrzo je pobrao odlične utiske i dosta velikih proizvođača ga je podržala svojim finansijama (između ostalog i ST). Za razliku od glomaznog i zahtevnog TouchGFX (imali su i oni skorašnje pokušaje optimizacije). Meni lično je LVGL zaista "legao". Veoma jednostavan i jasno dokumentovan sa dosta ljudi koji mogu da pomognu u implementaciji. Pogledaj na sajtu imaš uvodni i kratak tutorijal kako krenuti. Potrebno je da sam ubaciš drajver za tvoj kontroler na LCD-u, i kroz dva poziva za iscravanje jednog piksela povežeš ga sa LVGL engine-om. Recimo da ti je dovoljno par sati za taj deo. Rekao bih lakši deo. Javi ako je potrebna pomoć da ti pronađem taj deo dokumentacije, ali mislim da ćeš se brzo snaći.

Moj neki minimalni sistem koga sam testirao sa LVGL, a da to lepo radi do 480x320pix (ILI9841) je sa mikrokontrolerom STM32F407VG. Ispod toga ne treba pokušavati. Nije problem samo memorijski resurs veći komunikacioni, SPI je spor. Konkretno u ovaj sistem sa STM32F407VG je stao bitmap splash screen i dosta dugmića, sa par skrinova i malih bitmap ikonica. Takođe u isti MCU sam "ugurao" i kompletan LAN (lwip stekom) sa HTTP podrškom. Uspeo sam uz dosta truda i pokušaja da nateram ovaj TFT LCD da fluidno radi sa SPI, ali usko grlo je SPI magistrala koja za ovu rezoluciju, ipak, vapi za paralelnim interfejsom. Inače bez DMA, to ne radi nikako, ali baš nikako. U jednom trenutku sam mislio da odustanem i pređem na neki paralelni. Uz dosta truda i tvikovanja uspeo sam, ali ne bih ponovo išao tim putem.

Pametan potez kod LVGL je optimizacija algoritama za low-memory footprint, mislim da ja ne koristim više od 8kBy RAMa u mom projektu, jer render radi samo u okruženju samog objekta koga menjaš dok ostatak piksela ne dira, pa je i samim tim memory footprint manje zahtevan iako 460.8 kBy za celu površinu displeja zastrašujuće zvuči (480pix x 320pix x 3By color).

Ono što ostaje i dalje kao veliki problem, je dosta pešačenja i igranje sa iscrtavanjem koječega po displeju i sam raspored objekata. To znam da je ekipa iz LVGL skoro publikovala u obliku nekog editora, ali nisam koristio. Pre dve godine kada sam radio na projektu toga nije bilo, već onako kodiranje na nivou mapiranja piksela ručno... Hiljade pokušaja i razmrdavanja objekata da sve uklopim. Možda sam i zbog toga napravio ovoliku pauzu, smučilo mi se Smile Smile Smile

Kao što Miki reče, ako hoćeš eleganciju i jednostavno iscrtavanje objekata, ipak ići na neku moćniju "mašinu". Pre par meseci sam imao prilike da vidim STM32H seriju kako radi sa TFT displejima pod TouchGFX i to razvaljuje, kao od šale radi render 3D objekata, fluidno, odziv momentalan. Ali imati u vidu da se pritom isključivo koristi neki specijalni LCD/TFT interfejs sa raznoraznim akceleracijama koji postoje u STM32F4 i jačim.

Za tvoj STM32L071RBT6 bojim se da ćeš morati da radiš sa još nižim nivoom pristupa, direktno rutine za prikaz bitmape i jednostavniji objekti koje ćeš ručno da crtaš. Previše je slab taj mikrokontroler za ove stekove kao što su LVGL ili TouchGFX. Testirano na STM32L082KZ, gde je iscrtavanje pixela bilo vidljivo golim okom Sad

Što se tiče drajvera za tvoj kontroler ILI9488, uz neke minimalne prepravke oko inicijalizacije displeja, možeš koristiti rutine od ILI9341. Ovde ti može biti polazna tačka, jednostavan a funkcionalan drajver za ILI9341:
https://github.com/martnak/STM32-ILI9341
Reply


Messages In This Thread
STM32 uputstva za iskusne početnike - by npejcic - 05-16-2015, 08:21 PM
RE: STM32 uputstva za iskusne početnike - by npejcic - 10-18-2021, 06:16 PM

Forum Jump:


Users browsing this thread: 7 Guest(s)