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

Atmega8 i LCD HD44780 - brak wyświetlania mimo poprawnego podłączenia

nanab 11 Lis 2013 21:05 2382 14
REKLAMA
  • #1 12941612
    nanab
    Poziom 27  
    Mam problem z uruchomieniem lcd w układzie opartym na atmega8. Po wgraniu docelowego programu nic nie chce wyświetlić. Żeby wykluczyć jakieś kolidacje w kodzie wyrzuciłem z programu wszystko poza obsługą lcd i zostało coś takiego:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Na tym programie efekt ten sam.
    Zasilanie jest ok, uc programuje się, podświetlenie działa, regulacja kontrastu też.

    Zbudowałem przystawkę do wpięcia zamiast LCD z dwiema led na każdy pin, jedna świeci przy H, druga L, żadna przy Z. zarzuciłem prosty program zmieniający po kolei stany na pinach zadeklarowanych w poprzednim programie jako te do których jest podłączony lcd.
    Dzięki temu zlokalizowałem zimny lut między uc a DB4, po naprawie tego dalej nic nie wyświetla.
    Wyświetlacz podmieniłem-to samo.

    Skończyły mi się pomysły co może być nie tak.
  • REKLAMA
  • #3 12941870
    Mateusz@
    Poziom 18  
    Nie potrzeba żadnej dodatkowej konfiguracji portów. Wystarczy coś takiego aby sprawdzić wyświetlacz:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pokaż schemat.
  • REKLAMA
  • #4 12941876
    2rs232
    Poziom 18  
    nanab napisał:
    ' DB0-DB3 zwarte do masy

    Ten opis dotyczy pinów wyświetlacza?
  • #6 12942761
    yokoon
    Poziom 29  
    Witam.

    Przy sterowaniu LCD w systemie cztero bitowym pin R/W powinien być podłączony do masy, powoduje to właśnie zapis do rejestrów LCD.

    Chyba, że masę podaje mikrokontroler.

    LCD oparty na sterowniku HD44780.
  • #7 12943207
    nanab
    Poziom 27  
    Mam to w programie
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #9 12944915
    yokoon
    Poziom 29  
    nanab napisał:
    Mam to w programie
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Odłącz pin R/W od mikrokontrolera i podłącz bezpośrednio do masy.
  • #10 12945927
    nanab
    Poziom 27  
    Wszystko jest na 100% zgodnie ze schematem i deklaracjami w programie. Sprawdzałem to kilka razy wzrokowo, miernikiem i świecidełkami z odpowiednim programem podpiętymi zamiast Lcd. Zaraz przepnę R/W do masy i odepnę db0-db3. Jak to nie pomoże, to spróbuję obsłużyć lcd "na piechotę" z pominięciem biblioteki.


    EDIT:
    Lcd ruszył. Podpiąłem go z wiszącymi w powietrzu db3-db0 i R/W zwartym na stałe do masy.
    Taka sytuacja zdarzyła mi się pierwszy raz chociaż zawsze podłączałem lcd w taki sposób.
  • #11 12946673
    dziechu
    Poziom 27  
    Ale pin R/W nie służy do zwierania do masy. To pin do sterowania kierunkiem przepływu informacji. Wykorzystuje się go np. do sprawdzania zajętości kontrolera LCD. W prostych programach steruje się tymi LCD w jednym kierunku dając stałe opóźnienia po wykonanych operacjach, ale takie sterowanie nie jest optymalne. Podłącz R/W do Portc.5 i sprawdź czy powodem niedziałania był ten pin czy też podłączenie db0-3 do masy. jeżeli ten pin, to sprawdź dlaczego na Portc.5 nie ma 0.
  • #12 12946680
    piotrva
    VIP Zasłużony dla elektroda
    Na PC5 nie ma masy, bo BASCOM nie obsługuje w tej konfiguracji sterowania pinem RW z automatu, a sterowanie ręczne (czyli PC5->Output+LOW) nie ma sensu.
  • #13 12946719
    yokoon
    Poziom 29  
    dziechu napisał:
    Ale pin R/W nie służy do zwierania do masy. To pin do sterowania kierunkiem przepływu informacji. Wykorzystuje się go np. do sprawdzania zajętości kontrolera LCD. W prostych programach steruje się tymi LCD w jednym kierunku dając stałe opóźnienia po wykonanych operacjach, ale takie sterowanie nie jest optymalne. Podłącz R/W do Portc.5 i sprawdź czy powodem niedziałania był ten pin czy też podłączenie db0-3 do masy. jeżeli ten pin, to sprawdź dlaczego na Portc.5 nie ma 0.


    Witam Kolegę.

    Otóż właśnie pin R/W służy do zwierania do masy, jeżeli chcę mieć transmisję w jednym kierunku.

    Zapis danych do rejestrów LCD (wyświetlanie), i to jest pewna transmisja. DB0 - DB3 NC.

    Tak łączę i nie miałem nigdy problemów - przy prawidłowym podłączeniu.
  • #14 12947018
    nanab
    Poziom 27  
    piotrva napisał:
    Na PC5 nie ma masy, bo BASCOM nie obsługuje w tej konfiguracji sterowania pinem RW z automatu, a sterowanie ręczne (czyli PC5->Output+LOW) nie ma sensu.

    Na PC5 jest programowo ustawiona masa i występuje tam fizycznie. R/W podpiąłem do układu z rozpędu, a potem nie zmieniałem tego żeby zostawić sobie otwartą furtkę na wypadek gdybym zrezygnował z bascomowej biblioteki.

    Po podłączeniu R/W z powrotem i db3-db0 NC wyświetlacz działa ale niepoprawnie. Wyświetla tylko w jednej linii i nie te znaki które powinien. Zastanawia mnie co za różnica czy masa jest podana przewodem czy przez port uc?
  • #15 12947050
    dziechu
    Poziom 27  
    Nie powinno być różnicy - sprawdź voltomierzem.
    yokoon napisał:
    Otóż właśnie pin R/W służy do zwierania do masy, jeżeli chcę mieć transmisję w jednym kierunku.

    Zapis danych do rejestrów LCD (wyświetlanie), i to jest pewna transmisja. DB0 - DB3 NC.

    Tak łączę i nie miałem nigdy problemów - przy prawidłowym podłączeniu.

    Przy prawidłowym podłączeniu nigdy nie ma problemu. Nie znam BASCOMa i jego procedur, napisałem tylko że stałe podłączenie R/W do masy nie jest optymalnym rozwiązaniem - nie osiąga się pełnej prędkości transmisji, ale w prostych rozwiązaniach dopuszczalne.
REKLAMA