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

Atmega128 i LCD 3.2 SSD1298 - problemy z inicjalizacją i wyświetlaniem w Bascomie

Dawid 88 23 Paź 2014 19:39 1398 4
  • #1 14067152
    Dawid 88
    Poziom 14  
    Witajcie
    Niedawno wyszperałem sobie z moich zasobów LCD 3.2" na sterowniku SSD1298. Z czystej ciekawości, może trochę z nudów i chęci nauki postanowiłem go ożywić :). Zrobiłem sobie płytkę o identycznych wymiarach jak LCD z atmega128. No i zaczeło się. Nadmienię iż program piszę w bascomie i pewnie wielu z was powie że nie nadaje się on do tego i zapewne macie racje. Lecz ja nie piszę tutaj żeby się od was dowiedzieć jaki język jest do tego najlepszy tylko szukam porad i wskazówek co robię źle, czego nie robię a powinienem itp (chodzi mi o sam program). Do tej pory udało mi się zrobić inicjalizacje aczkolwiek nie jestem pewny czy jest poprawna. Wyświetlacz wyświetla kolorowe pixele przypadkowe tzw śmieci z ram'u ale od razu widać że jedna połówka jest troszkę jaśniejsza od drugiej i wyświetlacz troszkę mruga. próbowałem zwiększyć odświeżanie grzebiąc w rejestrze lcd ale bez najmniejszych zmian :( . Kolejnym moim krokiem było "pomalowanie" wyświetlacza na jeden jakikolwiek kolor no i lipa.... żadnej reakcji. Program piszę przeglądając inne programy napisane w "C'" no i notę katalogową wyświetlacza. Czy jest ktoś w stanie zerknąć na mój kod i pokierować mnie czego zapomniałem, co jest źle lub jakie poprawki powinienem nanieść w kodzie. Nie chodzi mi o to żeby ktoś mi napisał gotowy kod lecz powiedział jakie komendy i dane użył, bo tylko tak zrozumiem komunikacje z tym lcd - na czym mi zależy.

    Mój kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Dokładam notę z której korzystam.
  • #2 14068216
    Dawid 88
    Poziom 14  
    Heh troszkę ruszyłem do przodu. Okazało się że cały portc był odwrócony tzn MSB z LSB zamienione. Naprawiłem to programowo :) ekrany pięknie się kolorują :D Jutro postaram się ładnie uporządkować program i wrzucę dla potomnych bo ciężko mi było znaleźć w necie obsługę tego LCD w bascomie :)


    EDIT:
    Tak jak wspominałem wrzucam dla innych ;)

    Kod: text
    Zaloguj się, aby zobaczyć kod


    PORTA 0-7 --> DB 0-7
    PORTC 0-7 --> DB 15-8 niestety jest zamienione, mój błąd przy projektowaniu PCB
    Portd.7 --> CS
    Portd.6 --> RS
    Portd.5 --> WR
    Portd.4 --> RD
  • #3 14546019
    Dawid 88
    Poziom 14  
    Pozwalam sobie odkopać temat ponieważ znowu mam problem z takim LCD. Wyświetlacz nie jest identyczny pod względem wizualnym ale ma te same parametry tzn 320x240 rozdzielczości no i jak mnie sprzedawca zapewnia na sterowniku SSD1289 z resztą na tasiemce pomiędzy płytką a samym lcd jest napisane "T32 1289 V21" co chyba sugeruje że to ten sterownik. Tym razem steruje nim Atxmega128a3u no i program w C. Sam problem jest w zasadzie na samym początku czyli inicjalizacji a właściwie braku inicjalizacji (powinny pojawić się przypadkowe wartości z ram'u a nic sie nie dzieje). Próbowałem już różnych rejestrów w różnych kolejnościach sugerując się gotowymi projektami a nawet tym moim (post wyżej) który w 100% działał i dalej nic. Testowałem układ linijka po linijce i sprawdzałem fizycznie miernikiem wyprowadzenia nóżek wyświetlacza czy się wszystko zgadza, czy jakiś bitów nie gubię i jest tak jak w programie. Już nie wiem gdzie szukać problemu, LCD nowy.

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


    Odrazu uprzedzam odnośnie niepoprawnych adresów i danych wysyłanych do lcd, są one poprawne a zapisane są w ten sposób bo bity lcd B0 - B7 odpowiadają portowi xmegi B7-B0 a bity lcd B8-B15 portowi A7-A0 . Krótko mówića MSB z LSB jest zamienione na portach xmegi. Mam już przygotowany wycinek programu który to koryguje lecz ze względu na moje problemy wpisałem wartości ręcznie przepisując je skrupulatnie na kartce z długopisem w ręku :P
  • Pomocny post
    #4 14546513
    pimpuk
    Poziom 23  
    Po resecie WR daj 15ms zamiast 5ms. Chinole tak mają.
  • #5 14546786
    Dawid 88
    Poziom 14  
    HA HA HA HA no ja pie....... niemoge xd działa. Przepraszam za słowo ale jestem taki happy :D juz 5 dni codziennie z nim walcze a tu taka niespodziewanka :)
REKLAMA