Elektroda.pl
Elektroda.pl
X
Servizza
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

SSD1963 jak obsługiwać sterownik

mateusz19955 14 Mar 2019 22:16 348 12
  • #1 14 Mar 2019 22:16
    mateusz19955
    Poziom 13  

    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:
    SSD1963 jak obsługiwać sterownik

    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.

    0 12
  • Servizza
  • #2 14 Mar 2019 23:05
    oloam
    Poziom 21  

    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.

    0
  • Servizza
  • #3 14 Mar 2019 23:39
    Marek_Skalski
    Moderator Projektowanie

    Masz jakiś poważny błąd w konfiguracji zależności czasowych. Być może zamienione parametry czasowe i wymiary dla kierunków: horizontal zamiast vertical i vice versa.
    Akurat SSD1963 nie jest trudny w użytkowaniu. Łatwo się go konfiguruje, ale trzeba zachować kolejność i przede wszystkim prawidłowo ustawić PLL. Na Forum jest kilka lepszych propozycji do obsługi tego kontrolera. Wyszukiwarka powinna zwrócić kilka wyników.
    Sprawdź też prędkość zapisywania danych przez interfejs równoległy. SSD1963 może nie nadążać.

    0
  • #4 15 Mar 2019 14:23
    mateusz19955
    Poziom 13  

    A w jaki sposób ustawić to PLL?
    Na jaką częstotliwość?

    A to vsync i hsync jak ustawić?

    0
  • #5 15 Mar 2019 16:34
    Marek_Skalski
    Moderator Projektowanie

    0. Można kopiować czyjeś programy. Może zadziałać.
    1. Można użyć forumowej wyszukiwarki i przeczytać dlaczego innym nie zadziałało. Może trafić się podobny przypadek.
    2. Można zapoznać się z dokumentacją, zrozumieć i wtedy na pewno zadziała.

    Polecam tę ostatnią metodę. Wymaga wysiłku, ale jest skuteczna.
    Po dokumentację zawsze idziemy do producenta, w tym przypadku Solomon: SSD1963.

    0
  • #6 15 Mar 2019 18:29
    mateusz19955
    Poziom 13  

    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
    Zaloguj się, aby zobaczyć kod


    Konfiguracja PLL jest wzięta z noty.
    Czy dobrze jest to ustawione?
    Co dalej należy ustawić?

    0
  • #7 15 Mar 2019 20:55
    sepako
    Poziom 14  

    U mnie działa to z wyświetlaczem 800x480 poprzez FSMC

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #8 15 Mar 2019 21:54
    mateusz19955
    Poziom 13  

    Dobra, powstało coś takiego:

    Kod: 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?

    0
  • #9 16 Mar 2019 06:19
    sepako
    Poziom 14  

    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
    Zaloguj się, aby zobaczyć kod

    0
  • #10 16 Mar 2019 18:51
    mateusz19955
    Poziom 13  

    Dzięki za fragment kodu.
    Spróbuję to jeszcze dzisiaj uruchomić, może zadziała.

    0
  • #11 18 Mar 2019 15:24
    mateusz19955
    Poziom 13  

    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
    Zaloguj się, aby zobaczyć kod


    Może ktoś widzi jakiś błąd?

    0
  • #13 19 Mar 2019 14:50
    mateusz19955
    Poziom 13  

    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.

    0