Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

Ankieta: Jaki system operacyjnym preferujesz
Nie posiadasz uprawnień, aby oddać głos w tej ankiecie.
Windows
60.78%
31 60.78%
Linux
31.37%
16 31.37%
MAC/OS
7.84%
4 7.84%
Inny
0%
0 0%
Razem 51 głosów 100%
*) odpowiedź wybrana przez Ciebie [Wyniki ankiety]

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
Witaj,

Ustawienia GAMMA do czego służą w ILI9341 ?
Przeźroczystość, nasycenie kolorów, czy coś innego ? Nie analizowałem tych ustawień tak dokładnie. W naszych przykładach, ustawienia defaultowe działają dobrze, więc nie było potrzeby zmieniać. Ale jeżeli ma być lepiej, to jak najbardziej taka wiedza się przyda.... , więc opisuj śmiało.

Jedyne co zmieniałem to częstotliwość odświeżania LCD i różnicę było widać gołym okiem. Ale to wszystko w przypadku, gdy ILI9341 pracował tylko po magistrali SPI. Przy pracy magistralą LTDC (RGB) liczba klatek jest zależna od częstotliwości sygnału PIXEL_CLK.

Natomiast jak LCD będzie pracował na magistrali LTDC RGB, to wówczas cały sprzętowy mechanizm w stm-ie zajmuje się obróbką danych, składaniem warstw ( są 2 warstwy obrazu dostępne oraz tło), przenikaniami obrazu między warstwami i wieloma ciekawymi bajerami...





73 Paweł
Odpowiedz
(19-08-2016, 16:28)SQ8MVY napisał(a): Witaj,

Ustawienia GAMMA do czego służą w ILI9341 ?

Wyobraźmy sobie piksele o stopniowo rosnącej jasności.
Na ekranie jednak stopniowanie jasności nie jest równomierne.
Na przykład najjaśniejsze pixele są nierozróżnialne (jednakowo jasne)
Korekcja gamma polega na takiej zmianie jasności pixeli aby ich jasność
rosła równomiernie.
Przy wyświetlaniu liczb i prostych grafik korekcja gamma niekoniecznie będzie potrzebna...


.zip   lcd_ltdc_a.zip (Rozmiar: 251.25 KB / Pobrań: 756) W oparciu o program ltdc_lcd napisałem prosty test ekranu lcd.
Przy świecącej diodzie ustawienia gamma są oryginalne,
przy zgaszonej - trochę "popsute" - zmieniam 2 parametry

Martwi mnie jednak nieprawidłowe działanie koloru czerwonego i niebieskiego
Wygląda na odcięte/uszkodzone linie R6=PB1 i B4=PG12.
Czy ten objaw jest tylko u mnie? (Proszę o informacje)
Jeżeli tak to niestety hardware :-(

Andrzej
Odpowiedz
Witaj,

U mnie niebieski jest dobry, ale czerwone paski są trochę dziwne. Raczej to jest chyba błąd w sofcie.

Piszę "chyba". bo nie zaglądałem do źródeł. Wgrałem tylko skompilowany plik lcd_ltdc.bin

Tak to u mnie wygląda. W realu, stopniowanie odcieni kolorów jest bardzo widoczne. Na zdjęciu aż tak tego nie widać.

   


Dodano:

Po dokładnym przyglądnięciu się kolorom, stwierdzam, że niebieski nie ma takiego ładnego stopniowania odcieni jak zielony. Obstawiam błąd w sofcie, a nie na problem z hardwarem.
73 Paweł
Odpowiedz
Mam pytanie, czy ten LCD mozemy ustawic pod LTDC aby pracowal jako panorama, zamienione osie X,Y ?
Przy sterowaniu przez SPI mozemy to ustawic rozkazem MAC ale to chyba nie ma znaczenia przy LTDC.

EmBitz niby wspiera procesor stm32f429 ale po wygenerowaniu nowego projektu do katalogu inc wrzuca plik stm32fxx.h w ktorym nie ma definicji pod 429. Datego kombinowalem z tymi includami. A moze cos nie tak robie ?
Odpowiedz
(21-08-2016, 13:28)SQ8MVY napisał(a): Po dokładnym przyglądnięciu się kolorom, stwierdzam, że niebieski nie ma takiego ładnego stopniowania odcieni jak zielony. Obstawiam błąd w sofcie, a nie na problem z hardwarem.

W programie lcd_ltdc rzeczywiście są źle ustawione porty.
Do kilku z nich (B0,B1,G10 i G12) trzeba zamapować funkcję AF9 a nie AF14 - plik LCD.c

Andrzej
Odpowiedz
Witaj,

Do G10 oraz G12 nie ma funkcji alternatywnej LTDC pod AF9 . Dla "górnych" pinów, pin8 do pin15 tylko AF14 ma LTDC. Dla pinów 0 do 7 LTDC jest pod AF9 oraz AF14.

Dodano po jakimś czasie....

Zagłębiając się w dokumentacje, jak i erratę lekko mówiąc "zbaraniałem".....

Tu dokumentacja jasno mówi gdzie, dla jakich pinów są/mogą być funkcje alternatywne dla naszego stm-a

   

A na poniższym widać, co i na jakich pinach można ustawić w ST32CubeMX

       

Wyraźnie widać, że dokumentacja mówi swoje, a program konfigurujący peryferia całkiem odwrotnie. I bądź tu mądry. Zostaje tylko dojście do prawidłowej konfiguracji metodą "sprawdź, może nic nie wybuchnie"...

73 Paweł
Odpowiedz
Poprawiłem mapowania LTDC na piny. Ekranik działa lepiej niż się spodziewałem.
Opierałem się na dokumentach DM00093903.pdf (discovery) i STM32F427_STM32F429 .pdf (procesor)
System dopiero poznaję, ale już widzę, że jego możliwości są niesamowite.
Na przykład LTDC: tło, na pierwszej warstwie waterfall, na drugiej teksty i wskaźniki.
Do wykorzystania na każdej warstwie blue-box, albo przenikanie (wsp.alfa).




Załączone pliki
.zip   lcd_ltdc_b.zip (Rozmiar: 222.85 KB / Pobrań: 844)
Andrzej
Odpowiedz
Witaj,

Właśnie do dokładnie takich samych ustawień portów pod LTDC doszedłem przed momentem.

Należy jeszcze wspomnieć Andrzeju, że Twój projekt pod EmBitza jest skonfigurowany pod zły procesor - STM32F401CB. Powinien być pod STM32F429ZI. W tym przykładzie nie ma to aż tak dużego znaczenia, ale gdyby kod znacznie by się powiększył, nie była by możliwa poprawna kompilacja. 128KB flash, 64KB RAM - STM32FG401CB, 2MB Flash, 256KB RAM - STM32F429ZI. Do tego dochodzą jeszcze różnice w częstotliwościach taktowania...

Należy o tym pamiętać, aby wybierać prawidłowy model STM-a, przy tworzeniu nowego projektu

(21-08-2016, 17:08)QRP73 napisał(a): ...EmBitz niby wspiera procesor stm32f429 ale po wygenerowaniu nowego projektu do katalogu inc wrzuca plik stm32fxx.h w ktorym nie ma definicji pod 429. Datego kombinowalem z tymi includami. A moze cos nie tak robie ?

Hmm, miałem nadzieję, że w miarę jasno opisałem ten "problem" w poście nr 158
73 Paweł
Odpowiedz
Witam

Jak napisałem przy udostępnionych plikach, ostatnio mam problem z mała ilością czasu temu nie ułożyłem z tego zgrabnej paczki ale wrzuciłem kod w takiej postaci jaką aktualnie miałem pod ręką. To nie było żadne demo gotowe do uruchomienia. Bardziej mi zależało pokazać po prostu sposób inicjalizacji LTDC. Miałem się zająć przygotowaniem dema później ale widzę że już sami sobie z tym poradziliście. Przy okazji znaleźliście kilka błędów w ustawieniach RAMu (co dziwne mi z takimi ustawieniami działa) oraz z ustawieniami pinów.

Co do EmBitza/EmBlock rozumiem że uzgodniliście że będziecie używać tego środowiska niestety z tego co widzę nie jest ono jednak pozbawione wad z różnych innych gotowych środowisk (np czegoś jeszcze nie obsługują) dlatego ja wole zostać przy "czystym eclipsie" jednak na przyszłość będę wstawiał tu cały wyeksportowany projekt z makefilem a nie kawałki plików, i raczej będziecie w stanie zaimportować to do EMBitza.

Teraz sam postaram się złożyć czysty projekt od "zera" i zobaczę co ominąłem oraz uwzględnię znalezione przez was błędy.
Odpowiedz
W paczce pod EmBitza działające funkcje do inicjowania SDRAM-u, FMC, kontrolera ILI9341 przez SPI oraz kontrolera LTDC. Proste demo dla palety RGB565 oraz funkcji rysowania znaków ASCII.
Wyświetlacz zainicjowany w układzie pionowym X (krótsza oś), Y (dłuższa oś), na osi X zrobione programowe lustro aby przenieść [0,0] układu do górnego, lewego rogu LCD.
--------------------------------------------------------------------------------------------------------------------------------
dodane 27.03.2016

Nie obyło się bez drobnych błędów, źle wyświetlał sie kolor zielony. Próbowałem różnych konfiguracji kontrolera ILI9341 i nic.
Przyczyna była prozaiczna, błąd w konfiguracji jednego pinu wykryty przez Pawła.

W załączniku poprawiona paczka z projektem.


Załączone pliki
.zip   ili9341_ltdc_sp5fcs_2.zip (Rozmiar: 207.59 KB / Pobrań: 719)
73 Adam
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości