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

[Atmega32A] [C] LCD SSD1289 - szum po inicjalizacji

mesho 31 Sty 2014 10:00 2127 4
REKLAMA
  • #1 13242839
    mesho
    Poziom 14  
    Witam!

    Próbuje rozpocząć pierwszą komunikację z wyświetlaczem LCD HY-320 opartego na sterowniku SSD1289. Na podstawie bibliotek ze strony Link przygotowałem sobie funkcje najniższego rzędu oraz inicjalizacyjną aby uzyskać jakikolwiek kontakt.

    Kontakt uzyskałem, po odpaleniu funkcji uruchamiającej wyświetlacz szumi tak jak na zdjęciu:
    [Atmega32A] [C] LCD SSD1289 - szum po inicjalizacji

    Ekran toleruje napięcie 3.3V, więc zasilam i mikrokontroler, i ekran napięciem 3.3V. Atmega32A według noty katalogowej jest w stanie pracować na tym napięciu w pełnej rozpiętości taktowania. Procek siedzi w zestawie uruchomieniowym ATB 1.04, jest poprawnie podłączony i filtrowany.
    Wnioskuję że komunikacja jest poprawna, gdy użyję funkcji wypełniającej cały ekran jednym kolorem Lcd_Fill(kolor); na 3/4 części pierwszej linii wyświetlacza pojawia się ten kolor podczas gdy reszta szumi dalej. Obstawiam że coś źle podaje w funkcji inicjalizującej LCD.

    Piny podłączam jak w definicjach w programie:
    DB0 do DB7 -> PA0 do PA7
    DB8 do DB15 -> PC0 do PC7
    CS, RD, WR, RS, RESET -> PD7 do PD3 (jak poniżej)

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


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


    W czym może być problem?
  • REKLAMA
  • #2 13243696
    NewbieMan
    Poziom 13  
    Myślę, że to wina inicjalizacji, u mnie dla LPC1768 inicjalizacja wygląda tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 13244020
    mesho
    Poziom 14  
    Przetestowałem Twoją ramkę inicjującą, ale problem jest wciąż ten sam.

    Czy w ostatnich dwóch linijkach:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Wysyłasz i komendę i dane, czy samą komendę?

    Wrzucam dodatkowo zdjęcie, widać na nim fragment który się zamalował bo użyciu funkcji wypełniającej cały ekran.
    [Atmega32A] [C] LCD SSD1289 - szum po inicjalizacji
  • REKLAMA
  • #4 13249737
    NewbieMan
    Poziom 13  
    mesho napisał:
    Przetestowałem Twoją ramkę inicjującą, ale problem jest wciąż ten sam.

    Czy w ostatnich dwóch linijkach:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Wysyłasz i komendę i dane, czy samą komendę?


    Wysyłam "komendę" i dane, moja funkcja LCD_WriteReg wygląda tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Z tego co pamiętam rejestry 4E i 4F decydują od którego "miejsca" ma się zacząć rysowanie.
  • #5 13251725
    mesho
    Poziom 14  
    Problem rozwiązany, nie siedział on w funkcji uruchamiającej LCD, a w funkcji ustawiającej adres. Dostosowałem sobie gotowca z innej strony Link i działa.
REKLAMA