logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak uruchomić wyświetlacz 800x480 na sterowniku SSD1963 z biblioteką R. Kwietnia?

mateusz19955 14 Mar 2019 22:16 1182 13
REKLAMA
  • #1 17842545
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    Witam, próbuję uruchomić wyświetlacz na sterowniku SSD1963 o rozdzielczości 800x480.
    Korzystam z biblioteki od Radosława Kwietnia http://en.radzio.dxp.pl/ssd1963/ .
    I mam mały problem ponieważ jak zainicjuje wyświetlacz to wyświetla się na nim coś takiego:
    Jak uruchomić wyświetlacz 800x480 na sterowniku SSD1963 z biblioteką R. Kwietnia?

    Niby zachowanie prawidłowe bo w pamięci sterownika znajdują się jakieś głupoty dlatego taki obraz, ale dlaczego nie wyświetla się na całym ekranie?
    Jak wywołuję funkcję SSD1963_ClearScreen(); to nic się nie dzieje.
    Podając jakąś wartość jako argument tej funkcji to zmienia się tylko kolor tego obrazu co na zdjęciu.
    Używanie funkcji do narysowania pixela nic nie daje.
    Przejrzałem dokumentację pdf do tego sterownika żeby upewnić się czy dobrze jest ustawiona rozdzielczość tego ekranu i wydaje mi się że jest dobrze, pozostałe funkcję raczej też.
    Program uruchamiam na STM32F103.
    Może ktoś wie jak dogadać się z tym sterownikiem?
    Dodam że nie zajmowałem się jeszcze takimi wyświetlaczami, do tej pory używałem zwykłego 16*2 lub SSD1306.
  • REKLAMA
  • #2 17842674
    oloam
    Poziom 22  
    Posty: 683
    Pomógł: 50
    Ocena: 197
    Skoro sterowniki jako sterowniki dzialaja, to znaczy blad moze byc w twoim kodzie lub polaczeniu (co mniej prawdopodobne bo ekran cos tam pokazuje)). Tego nie wiemy bo nic oprocz linka do sterownikow nie podales. BTW po inicjalizacji powinienes miec raczej szum na ekranie a nie to co pokazales na zdjeciu.
  • REKLAMA
  • #3 17842735
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 17843720
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    A w jaki sposób ustawić to PLL?
    Na jaką częstotliwość?

    A to vsync i hsync jak ustawić?
  • #5 17843921
    Konto nie istnieje
    Poziom 1  
  • #6 17843929
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    właśnie od paru minut bawię się z tą dokumentacją, bo wszystkie kody jakie znajduję nie chcą działać.
    A o to vsync i hsync pytam bo w rejestrach do tego czyli 0xB4 i 0xB6 jest 6-7 parametrów do ustawienia tylko nie zabardzo wiem o co tam chodzi.
    A PLL musi działać na 110MHz?

    Dodano po 1 [godziny] 12 [minuty]:

    Może mi ktoś podać jakie parametry trzeba po kolei ustawiać aby ten sterownik zainicjować?

    Dodano po 38 [minuty]:

    Dobra stworzyłem coś takiego:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Konfiguracja PLL jest wzięta z noty.
    Czy dobrze jest to ustawione?
    Co dalej należy ustawić?
  • #7 17844466
    sepako
    Poziom 15  
    Posty: 112
    Pomógł: 6
    Ocena: 28
    U mnie działa to z wyświetlaczem 800x480 poprzez FSMC
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #8 17844635
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    Dobra, powstało coś takiego:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nie wiem, czy dobrze jest to poustawiane np. rejestr 0xE6.
    Ale na ustawieniu rejestrów 0xB4 i 0xB6 już się zatrzymałem.
    W ogóle nie wiem co tam ustawić.
    Może ktoś spojrzeć na ten mój kod i pomóc mi?
  • #9 17844980
    sepako
    Poziom 15  
    Posty: 112
    Pomógł: 6
    Ocena: 28
    Tu odpowiem na pytanie z priv, co do stałych mają takie wartości, jak widać zależą od rozmiaru matrycy. Akurat ten wyświetlacz okazał się bardzo kapryśny https://www.buydisplay.com/default/lcd-5-ssd1...dule-touch-screen-display-800x480-mcu-arduino i wymaga sprzętowego resetu przy inicjalizacji a i zdarzają mu się czasem różne wykwity przy zbyt dużych prędkościach.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #11 17850871
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    Nadal nic nie działa.
    Znalazłem na stronie winstar note do lcd 7cali i była tam funkcja inicjalizująca.
    Wpisałem ją do programu ale na ekranie nic się nie wyświetla, czarne tło.
    Nie wiem już co robię źle.
    Oto kod który udało mi się napisać:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Może ktoś widzi jakiś błąd?
  • #12 17852782
    kris_audi
    Poziom 10  
    Posty: 40
    Pomógł: 1
    Oto moje pliki do obsługi SSD1963 na procesor STM32F407 które działają.
    Załączniki:
    • SSD1963.h (2.62 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • SSD1963.c (11.59 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #13 17853177
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    Kolego wielkie dzięki, wszystko działa jak należy.
    Teraz jak już wiem że lcd jest sprawny to szukam co robiłem źle że mi nie działało.
    Dzięki wszystkim za pomoc.
  • #14 17861054
    mateusz19955
    Poziom 13  
    Posty: 215
    Pomógł: 2
    Ocena: 2
    Witam,

    Mam jeszcze jeden problem.
    Potrzebuję zrobić odbicie lustrzane obraz, w dokumentacji od ssd1963 przeczytałem że ustawia się to w rejestrze 0x36.
    Tylko że sterownik nie reaguje na żadne wartości tam wpisywane.
    Potrzebuję zrobić odbicie w osi x czyli tej 800px.
    Może ktoś wie jak to zrobić?

Podsumowanie tematu

✨ Użytkownik próbuje uruchomić wyświetlacz TFT o rozdzielczości 800x480 z kontrolerem SSD1963, korzystając z biblioteki Radosława Kwietnia. Po inicjalizacji wyświetlacz nie działa poprawnie, co objawia się niepełnym wyświetlaniem obrazu. Użytkownicy sugerują sprawdzenie konfiguracji czasowej, ustawień PLL oraz poprawności kodu. Wskazówki dotyczące inicjalizacji obejmują ustawienie parametrów PLL, hsync i vsync, a także odpowiednie wartości rejestrów. Po kilku próbach i poprawkach, użytkownikowi udało się uruchomić wyświetlacz, jednak pojawił się nowy problem związany z odbiciem lustrzanym obrazu, które nie działa zgodnie z dokumentacją.
Wygenerowane przez model językowy.
REKLAMA