HomeMade

Pełna wersja: Programowanie ARM, nauka, środowiska programistyczne IDE
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
(19-08-2016 17: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...

[attachment=11361]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 :-(
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ć.

[attachment=11364]


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.
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 ?
(21-08-2016 14: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
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

[attachment=11370]

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

[attachment=11368] [attachment=11369]

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"...
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).
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 18: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
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.
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.
Witam,

Pragnę poinformować, że kilka dni temu została wydana nowa wersja środowiska programistycznego od Seggera - SEGGER EMBEDDED STUDIO.

Jeżeli ktoś używa, a nie zaktualizował jeszcze to w tym miejscu można pobrać.

IDE dostępne jest pod systemy: Windows, Linuks, MacOS
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Przekierowanie