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

[atmega8] lcd się wykrzacza

30 Paź 2011 15:17 2453 16
  • Poziom 9  
    Witam,

    jestem początkujący jeśli chodzi o pracę z avr. Mam problem z lcd, którym steruje mega8, mianowicie po ok 20 godzinach pracy i kolejnym odświeżeniu ekranu na lcd nie pojawia się nic, a przy następnym odświeżeniu osiem czarnych kratek (lcd 16*1).

    Próbowałem już ustawień fuse bitów na atmedze, różnych częstotliwości kwarcu definiowanych w kodzie programu (kwarc taktujący megę to 8MHz), wstawiałem waity w instrukcje wyświetlania i nic.

    Brakło mi pomysłów. Może ktoś z Was mi pomoże, będę wdzięczny...

    Moderowany przez _Robak_:

    3.1.12. (10.1, 10.5) Zabronione jest publikowanie tych samych, lub bardzo podobnych informacji w wielu działach forum.

  • PCBway
  • PCBway
  • Poziom 9  
    Poniżej zamieszczam program który ma obsługiwać sterownik. A ma działać tak:
    - zegar odmierza czas
    - raz w każdej minucie jest kontrola temperatury
    - jeśli warunki temperatury i czasu są spełnione włącza prąd na pompie
    - co minutę następuje odświeżenie wyświetlacza

    [code]
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
  • Moderator Mikrokontrolery Projektowanie
    W BASCOM niestety Ci nie pomogę, bo mnie nie lubi :-)
    Ale pokaż schemat, bo objawy które opisujesz mogą być z nim związane.
    A na dodatek skoro pompami sterujesz, to tym bardziej przyczyna w schemacie może leżeć.
  • Poziom 25  
    Może być że przerwanie od Timera pojawia się podczas wpisywania czegoś na wyświetlacz w związku z czym do lcd wysyłane są błędne dane.
    Możesz spróbować dać przed każdym wywołanie "LCD ... " dać DISABLE INTERRUPTS a zaraz po "LCD..." ENABLE INTERRUPTS po to aby wyłączyć przerwania tuż przed wysłaniem danych do LCD.
  • Poziom 9  
    Poniżej zamieszczam schemat (mniej więcej tak to wygląda)

    [atmega8] lcd się wykrzacza

    mam nadzieję, że jest do rozczytania, bo do elektronika mi troszkę brakuje ;)

    snnaap - dzięki za podpowiedź, spróbuję i napiszę, czy zadziałało.
  • Moderator Mikrokontrolery Projektowanie
    piotrek_8891 napisał:
    mam nadzieję, że jest do rozczytania, bo do elektronika mi troszkę brakuje ;)

    Oj, każdy kiedyś zaczynał - ważne że chcesz i próbujesz :)

    1. Interesuje mnie na Twoim schemacie pin PC6, jest podłączony, ale do czego?
    W tym samym miejscu podłaczone są przyciski. To chyba pomyłka na rysunku bo do złącza programatora podłączasz PB6 zamiast PC6.
    Ale to oznacza, że nie masz rezystora na PC6(RESET), a to w środowisku z pompami, może być bardzo istotne.

    2. Masz nie podłączone AVCC i brak filtrowania zakłóceń na zasilaniu, a sterujesz pompami, które te zakłócenia generują.
    Przeczytaj bardzo dokładnie artykuły dot. podłączania i zakłóceń,
    bo tutaj leży rozwiązanie Twojego problemu: Dział zasilanie i zakłócenia

    Więc to nie wyświetlacz się "krzaczy", tylko mikrokontroler.

    No i warto już zacząć używać programu np. Eagle, do robienia schematów (linki do strony oraz kursów znajdziesz także w spisie treści).

    Trochę pracy przed Tobą, ale dasz radę :)

    EDIT.
    I wstaw schemat zgodnie z regulaminem. Używaj przycisku DODAJ OBRAZEK.
  • Poziom 9  
    Jeśli chodzi o zasilanie to za transformatorem jest podłączony prawdopodobnie jakiś prostownik półprzewodnikowy i do niego są podpięte:
    - kondensator (104M) [ale nie jestem pewny]
    - kondensator 470uF
    - stabilizator o którym piszesz w artykule
    dopiero za stabilizatorem jest wylot do zasilania elementów układu z napięiem 5V.

    ps
    nie pisałem jeszcze, ale cały ukłąd lutował mi znajomy a teraz nie mam z nim kontaktu i stąd moje problemy ;/
  • Moderator Mikrokontrolery Projektowanie
    OK, ale istotne są także inne elementy likwidujące zakłócenia , które muszą być jak najbliżej (kilka milimetrów) od pinów mikrokontrolera.
    To może pokaż zdjęcia dużej rozdzielczości tego projektu?
    I odpowiedz na pytanie dot. PC6, oraz poświęć czas na przeczytanie artykułów, a zaoszczędzisz go później na szukaniu rozwiązania problemów.
  • Poziom 9  
    Pod pin c6 podpięty jest między innymi masa od przycisków (przynajmniej tak to wygląda) i dalej jest wyprowadzona ścieżka, którą jak szedłem, to zginąłem...

    Poniżej wstawiam zdjęcia układu. Spód układu jest umiejscowiony tak, że jak się patrzy na zdjęcie, to wyświetlacz jest na dole (na stronie przedniej jest na górze).

    [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza

    Jak tylko będę miał możliwość wrzucenia lepszych zdjęć, to to zrobię.
  • Moderator Mikrokontrolery Projektowanie
    Niestety, za słaba jakość. Jak Ci się uda wstaw lepsze.

    PC6
    Piszesz, że śledząc ścieżkę się zgubiłeś. Na schemacie na pewno masz błąd z podłączeniem PC6 do masy (o której piszesz) i przycisków. PC6 na pewno musi iść do złącza programatora, ponieważ ten pin to także pin RESET (wykorzystywany przez programator. Natomiast na Twoim schemacie do programatora idzie PB6 (na pewno tak nie jest). Sprawdź to.

    Pin RESET (czyli PC6) powinien być podłączony przez rezystor (4,7 do 10k) do Vcc.
    Poszukaj czy taki rezystor masz na płytce, i jest tak podłączony jak napisałem.
    Jeżeli go nie ma to bezwzględnie go podłącz.

    Dodatkowo do pinu RESET podłącz kondensator 100nF do masy, dodatkowo zabezpieczy przed resetem spowodowanym zakłóceniami.


    Kondensatory filtrujące zakłócenia
    Dla każdego pinu VCC, AVCC, oraz AREF podłącz kondensator 100nF do masy.
    Opis: http://mikrokontrolery.blogspot.com/2011/04/zasilanie-mikrokontrolera.html


    Przekaźnik?
    Czy tam jest przekaźnik na płytce? Jeżeli tak to musisz sprawdzić, czy jest dioda na cewce przekaźnika: http://mikrokontrolery.blogspot.com/2011/03/przekaznik-i-zaklocenia.html
    A jeżeli to nie przekaźnik to co to za czarna kostka na płytce?


    Jeżeli to wszystko zrobisz to proponuję przeprowadzić testy.
    Oczywiście szukaj dobrego aparatu i zrób nowe zdjęcia.
  • Poziom 1  
    Witam pomagałem koledze w projektowaniu płytki i pomogę kolegom w temacie,
    do pinu c6 nic nie jest podpięte potrzebny jest tylko do programowania przez lpt , przekaźnik jest spięty z atmegą za pomocą transoptora, a na pinach przekaźnika jest podpięta dioda , a co na temat stabilizacji napięcia zastosowałem taki układ już w paru innych projektach i nic takiego się nie dzieje.
  • Moderator Mikrokontrolery Projektowanie
    wilk-wolf napisał:

    do pinu c6 nic nie jest podpięte potrzebny jest tylko do programowania przez lpt ,
    ...
    a co na temat stabilizacji napięcia zastosowałem taki układ już w paru innych projektach i nic takiego się nie dzieje.

    @piotrek_8891:
    Dobieraj projektantów lepiej.
    Zrób to co podałem w poście wyżej.

    @wilk-wolf
    Jakoś ten projekt nie działa, a Ty jesteś przyczyną problemów kolegi piotrek_8891.
    Więc zacznij od przeczytania i zrozumienia tematów z działu: Dział zasilanie i zakłócenia
    a do tego czytaj datasheety i noty producentów,
    i zastanów się czy warto oszczędzać parę groszy: Spokój za parę groszy
  • Poziom 9  
    Mam zdjęcia:
    tak wyświetlacz powinien wyglądać:
    [atmega8] lcd się wykrzacza
    a taką manianę odwala:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza
    Czerwona paląca się dioda świadczy o tym, że mega działa i program się wykonuje.
    Przód:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza
    I tył z naniesionymi ścieżkami:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza

    Zauważyłem kilka nowych dziwnych objawów:
    - maszyna popracowała trochę (2tyg) i jakimś cudem zniknął problem resetowania się (zaraz po podłączeniu wystarczyło potknąć pinu c6 albo ścieżki palcem i był reset)
    - dłużej pracuje bez krzaków (jak go 2 tyg temu podłączałem, to przy pierwszej zmianie trybu pracy pompy wyświetlacz się sypał, teraz wysypuje się po około 3 - 4 godzinach pracy i po kilku zmianach trybu).

    Potrafi to ktoś racjonalnie wytłumaczyć?

    Cały układ był przez te 2 tygodnie kilkanaście razy zresetowany. Czy to mogło mieć jakiś wpływ na zanik wyżej opisanych problemów?

    dondu: dzięki za linki do artykułów, zapoznałem się i na dzień dobry stwierdzam, że trzeba by chyba wstawić kondensator między megę a zasilacz (pytanie jaki duży) i dodatkowy opornik na ścieżkę resetującą. Czy to pomoże?

    A co do projektanta, to razem się dopiero uczymy i potykamy ;) Sam przecież mówiłeś, że każdy kiedyś zaczynał...
  • Moderator Mikrokontrolery Projektowanie
    piotrek_8891 napisał:
    ... A co do projektanta, to razem się dopiero uczymy i potykamy ;) Sam przecież mówiłeś, że każdy kiedyś zaczynał...

    Oczywiście, ja także, tylko niech kolega projektant nie pisze takich rzeczy:

    wilk-wolf napisał:
    ... a co na temat stabilizacji napięcia zastosowałem taki układ już w paru innych projektach i nic takiego się nie dzieje.

    bo to piekielna droga dla Was obu :)


    Zdjęcia niestety są nieostre więc nic z nich nie wydedukujemy :(

    Co do objawów, to przyczyną są najprawdopodobniej zakłócenia, które właśnie kondensatorami wyeliminujecie. W artykułach masz opisane jakie muszą być i gdzie podłączone. Może ich także brakować na samym wyświetlaczu.

    Także w przypadku RESET - wszystko dokładnie opisane jest.
  • Poziom 20  
    piotrek_8891 napisał:
    Mam zdjęcia:
    tak wyświetlacz powinien wyglądać:
    [atmega8] lcd się wykrzacza
    a taką manianę odwala:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza
    Czerwona paląca się dioda świadczy o tym, że mega działa i program się wykonuje.
    Przód:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza
    I tył z naniesionymi ścieżkami:
    [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza[atmega8] lcd się wykrzacza [atmega8] lcd się wykrzacza

    Zauważyłem kilka nowych dziwnych objawów:
    - maszyna popracowała trochę (2tyg) i jakimś cudem zniknął problem resetowania się (zaraz po podłączeniu wystarczyło potknąć pinu c6 albo ścieżki palcem i był reset)
    - dłużej pracuje bez krzaków (jak go 2 tyg temu podłączałem, to przy pierwszej zmianie trybu pracy pompy wyświetlacz się sypał, teraz wysypuje się po około 3 - 4 godzinach pracy i po kilku zmianach trybu).

    Potrafi to ktoś racjonalnie wytłumaczyć?

    Cały układ był przez te 2 tygodnie kilkanaście razy zresetowany. Czy to mogło mieć jakiś wpływ na zanik wyżej opisanych problemów?

    dondu: dzięki za linki do artykułów, zapoznałem się i na dzień dobry stwierdzam, że trzeba by chyba wstawić kondensator między megę a zasilacz (pytanie jaki duży) i dodatkowy opornik na ścieżkę resetującą. Czy to pomoże?

    A co do projektanta, to razem się dopiero uczymy i potykamy ;) Sam przecież mówiłeś, że każdy kiedyś zaczynał...


    Uważam że cała płytka powinna zostac jeszcze raz wytrawiona z naniesionymi poprawkami to co zauważyłem :

    - kanciate ścieżki (kanciate ścieżki robią z siebie anteny ściągające zakłócenia)
    - brak wylanej masy (zakłócenia od obwodów 230V)
    - złe przekroje ścieżek
    - brak obwodu LC przy styczniku/przekaźniku (
    - pomyśl o zewnętrznym transformatorze np elektronicznym ponieważ umiejscowienie tak starej konstrukcji sieje wysokie harmoniczne wokół siebie
    - zlikwidować wszelkie połączenia kabelkami
    - nie cynować ścieżek (wysoka impedancja masy)
    - brak otworów montażowych (ale to nie ma wpływu na działanie)
    - pomyśl o jakieś puszce od np halogenowa i zamknięcie całej elektroniki.

    Uważam też że jest to klasyczny przykład jak nie należy prowadzić ścieżek na laminacie i to wszystko w sąsiedztwie LCD który jest wrażliwy na wszystko.

    Pozdrawiam
  • Poziom 35  
    piotrek_8891 napisał:
    Mam zdjęcia:

    Podziel to wszystko na dwie płytki:
    Na jednej umieścisz część energetyczną - transformator, regulator napięcia i kondensatory filtrujące czyli zasilacz (przydałby sie tam też mały dławik), a także znajdż na niej miejsce na przekaźnik i diodę.

    Na drugiej płytce dasz całą elektronikę. Komunikacja z LCD powina być możliwie jak najkrótsza czyli 'compact'. Nie zapominaj że na układzie LCD jest też processor, a przewody łączące twój układ z nim są liniami wejściowymi do niego i nie powinny służyc jako anteny do 'wyłapania' wszystkiego co możliwe. Wystarczy jeden błędny (skorumpowany) bit i cały dysplay może być bez sensu albo całkowicie zaniknąć.

    Do połączenia płytek ze sobą wystarczy tylko 3 przewody: GND, zasilanie +5V i powrót do przekaźnika. Zasilacz powinien być magnetycznie i statycznie odizololwany od całości. W najgorszym wypadku może być metalowa przegroda pomiedzy płytkami podłączona do GND.

    Odnośnie kondensatorów; Dondu podał ci wystarczającą ilość informacji.

    e marcus