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

[M32] ATmega32A i LCD 2x16 - brak wyświetlania, różnice w działaniu z ATmega8

arti1987rr 02 Cze 2012 14:02 1952 16
  • #1 10958964
    arti1987rr
    Poziom 9  
    Witam
    Wykonuje płytkę do sterowania wentylacja pomieszczeń o parta na ATmega32A (wersja smd). Problem mam z LCD 16x2 , nic sie nie wyświetla. Postanowiłem napisać prosty program aby to zweryfikować :

    Kod: text
    Zaloguj się, aby zobaczyć kod




    Program oczywiście NIE DZIAŁAŁ ,więc postanowiłem go PO ODPOWIEDNICH ZMIANACH wrzucić do zestawu uruchomieniowego z ATmega8 i WSZYSTKO DZIAŁAŁO.
    Uprzedzając niektóre podpowiedzi:
    *Dodam ze w AVR STUDIO wyłączyłem JTAG bo jak widać wyprowadzenia LCD są na porcie C.
    *na pewno wszystko było ustawione dobrze w kompilatorze bo działo na ATmega8
    *Nieużywane wyprowadzenia połączyłem z masą


    Pomierzyłem napięcia na LCD i wyglądały następująco:

    Dla ATmegi32
    D7 , D6 , D5 , D4 , EN , RS , Vcc
    0 , 0 , 5v, 0 , 5v ,5v, 5v
    Dla ATmegi8
    D7 , D6 , D5 , D4 , EN , RS , Vcc
    3v , 3v , 0 , 0 , 3v ,0v, 5v

    Kontrast został ustawiony prawidłowo. na ATmega8 wszystko działało a w sterowniku z ATmega32 niestety nie. Co może być powodem niedziałania LCD na ATmega32 ? Płytka była frezowana ale sprawdzałem połączenia , jest ciągłość przewodów, nie ma zwarć na linii LCD i raczej na całej płytce, Są jakieś różnice w sterowaniu LCD w ATmega32 a ATmega8 ?

    PROSZĘ O POMOC
  • #2 10958998
    mickpr
    Poziom 39  
    Różnica w zegarze. Wyłączyłeś JTAG, ok. Ale jaki zegar ustawiłeś?
    Podaj fusebity.
  • #3 10959106
    Bitstop
    Poziom 12  
    Wyrzuć Cls przed pętlę Do ..... Loop.
  • #4 10959172
    arti1987rr
    Poziom 9  
    w ATmega32 i ATmega8 korzystałem z wewnętrznego zegara 4MHz i wszędzie był taki ustawiony.
    FISEBITY z AVR STUDIO
    OCDEN - odstawiony
    JTAGEN -odstawiony
    SRIEN -ustawiony
    CKOPT-ustawiony
    EESAVE - odstawiony
    SUS_CKSEL- Int. RC Osc 4MHz


    "Cls" to nie powód , na ATmega8 działało :)
  • #6 10962252
    arti1987rr
    Poziom 9  
    Raczej powodem nie są błędy w kodzie programu bo ten działa na ATmega8, wiec nie widzę powodu, aby nie działał na ATmega32. Chodzi mi raczej o podpowiedz w kwestii konfiguracji kontrolera, bądź przyczyn sprzętowych w kwestii podłączenia kontrolera do LCD.
  • #8 10962543
    arti1987rr
    Poziom 9  
    Wyłączyłem Watchdog i tez nie działa. Dodam ze wszystko inne jak np. przyciski, set/reset port ,działają , tylko ten LCD odmawia posłuszeństwa .
  • #10 10963704
    M. S.
    Poziom 34  
    Cały czas pisałem w Bascomie na M8 i LCD zawsze działał. Swego czasu potrzebowałem M16 i tu LCD zachowywał się dziwnie. Pomogło na początku programu INITLCD.
  • #11 10965684
    arti1987rr
    Poziom 9  
    Wyświetlasz sprawny na 100% (działa na ATmega8). Próbowałem z poleceniem "locate x,y" i "initlcd" i również bez zmian. Jeszcze się nie spotkałem z takim czymś, głównie bawiłem się z ATmega8 i tam nie było żadnych problemów. Teraz przyszło mi bawić się z ATmega32 w wersii SMD i już na starcie są problemy.
  • #13 10966296
    arti1987rr
    Poziom 9  
    Mam 2 rodzaje w wyświetlaczy jeden 2x16 wymaga podłączenia WSZYSTKICH nieużywanych wyprowadzeń do masy ,sprawdzałem bo łączyłem go na zestawie uruchomieniowym ATmega8 (wszystko łaczone na przewodzikach) i nic nie wyświetlało gdy tego nie zrobiłem . Drugi to JHD 204A 4x20 o automatycznym kontraście który już nie wymaga podłączenia nieużywanych linii do GND. Oba testowane były we wszystkich konfiguracjach podłączenia oprócz tej z linia R/W podłączoną do uC.
  • Pomocny post
    #14 10966479
    LordBlick
    VIP Zasłużony dla elektroda
    arti1987rr napisał:
    Mam 2 rodzaje w wyświetlaczy jeden 2x16 wymaga podłączenia WSZYSTKICH nieużywanych wyprowadzeń do masy
    Na podstawie czego tak twierdzisz ? Jest to wyraźnie zaznaczone w dokumentacji producenta wyświetlacza ? Śmiem twierdzić, że jak nie używasz R/W, to tylko to wyprowadzenie do GND, a reszta nieużywanych luzem, bo zanim przełącza się go w tryb 4-bit, to w trybie 8-bit jest ryzyko uszkodzenia. Bascom robi to za ciebie, ale nie zmienia to faktu, że zaraz po włączeniu zasilania mamy 8-bit.
  • #15 10967450
    arktik1
    Poziom 27  
    Zmień piny lcd z PORTC na inny, najlepiej PORTB.
  • #17 10968422
    arti1987rr
    Poziom 9  
    Dziękuje wszystkim za pomoc. Problem został rozwiązany dzięki użytkownikowi "Jakub" (Dzięki za pomocny link). Problem tkwił w podłączeniu 4-ech młodszych bitów danych do masy. Należało jedyni "zmasować " nieużywany pin R/W.
    Jeszcze raz dziękuje.
REKLAMA