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

Atmega32 [C] zawieszanie sie programu

13 Cze 2009 11:41 6187 49
  • Poziom 10  
    Witam serdecznie.
    Mam następujący problem. Zbudowałem sterownik podlewania na Atmega32 program napisany w języku C. Sterownik przez klucze tranzystorowe załącza przekaźniki, jeden od pompy i dwa od elektrozaworów. Wystepuje natomiest problem zawieszanie sie mikrokontrolera w czasie włącznia przekaźników. Zawiesza sie on tylko czasmi raz na jakiś czas czasem wogóle. Co moze byc tego przyczyną? Zasilanie przez stabilizator 5V przy nożkaz Vcc i GND kondensator 100nF. transformator daje ok 10V, dodatkowo bateria 9V połączone to funkcja logiczna lub na diodach prostowniczych.
    Zaobserwowałem jeszcze taki przypadek, że gdy przekaźnik załączy elektrozawór a ja ten elektrozawór odłączam i podłączam tak co chwile to rownież nastepuje zawieszenie programu lub zresetowanie (kszaczki na wyświetlaczu), elektrozawór jest zasilany z innego transformatora, maja wspólny tylko przewód zasilający tzn uzwojenia pierwotne sa podłączone razem. prosze o pomoc
  • Relpol przekaźniki
  • Poziom 38  
    A jak jest podłączony reset procesora?
  • Poziom 10  
    Rezystor podciągajacy 10k do Vcc, switch rownolegle z kondensatornem 100n do GND
  • Relpol przekaźniki
  • Poziom 15  
    Dałeś diode równolegle z przekażnikiem?
  • Poziom 10  
    nie nie dalem. a czy układ gasikowy tez cos poprawi?
  • Poziom 38  
    Może jeszcze tak być że wyświetlacz się wiesza a nie procesor.
  • Poziom 10  
    procesor wiesza sie rownież
  • Poziom 38  
    Jaka jest odległość przycisku reset od procesora?
    Daj diodę schottkiego od resetu (anoda) do +zasilania (katoda)-może to jest latch-up.
  • Poziom 10  
    odległość to 3-4cm. dałem diody na cewkach przekaźników zaporowo i to nic nie dalo. Przy odłączniu i załączaniu elektrozawora mikrokontroler sie resetuje. Przekaźniki są zasilane z tego samego transformatora, przez ten sam układ prostujący, oraz stabilizujący i filtrujący co mikroprocesor
  • Poziom 38  
    Przekaźniki daj przed stabilizatorem-po co im stabilizowane i filtrowane napięcie.
    Pewnie jak się włączają to napięcie na zasilaniu spada, na resecie zostaje napięcie z kondensatora 100nF i procesor się zatrzaskuje.
    Dlatego daj na reset diodę schottkiego-może coś da.

    Dodano po 7 [minuty]:

    Jeszcze niedawno poleciłbym układ nadzoru resetu ds1813-ale po temacie założonym przez nouki-mam wątpliwości czy jest to dobre rozwiązanie
  • Poziom 10  
    to chyba nie jest wina resetu nie mam diody schotkiego i nie moge tego sprawdzic:/, ale gdy podłącze na stałe elektrozawór do przekaznika wszysko jest dobrze, natomiast gdy go podłączam i odłaczam dotykajac przewody wtedynastepuje zawieszenie lub zresetowanie calości. Dzieje sie tak samo gdy mam podłączone zasilanie z baterii i szybko odłączam i podłączam(wyjmowanie i wkładanie do gniazdka) zasilanie sieciowe tzn nastepuje resey lub zawieszenie, natomiast gdy odłączona jest bateria i odłącze zasilanie sieciowe to kondensator trzyma ok 5sekund caly układ co widać po wyświetlaczu.
  • Poziom 38  
    To jednak musisz narysować schemat i go pokazać.
  • Poziom 10  
    oto schemat sterownika
    Atmega32 [C] zawieszanie sie programu
  • Poziom 20  
    a ja postawił bym na przekażniki lub tranzystory

    podłącz osobne zasilanie VCC do przekaźników - jakiś zasilacz uniwersalny

    jeżeli masz za słaby transformatorek a na dodatek chiński to gedą takie oznaki - chwilowy ale spory spadek napiecia i zawieszka i te krzaczki to tego przyczyna

    temat sprawdzony w czym innym ale osobne zasilanie naprawiło problem

    jesli pomogłem wiesz co kliknąć :)

    pozdro
  • Poziom 38  
    To co napisałem-dioda schottkiego do resetu i zasilanie przekaźników przed stabilizatorem.
    Potem zobaczymy.
  • Poziom 10  
    zbudowałem inny układ zasilania przekaźników (inny transformator, mostek oraz kondensator filtrujący) niestety nie pomogło. musze sprawdzic z diodą Schottky'ego ale nie posiadam jej, czy moze byc jaka inna dioda?
    PS.
    Czy diode dodać dodatkowo czy jakoś szeregowo lub równolegle?
  • Poziom 38  
    Równolegle do opornika R1
    Powinna być szybka -schottkiego jest szybka i ma 0.2V spadku napięcia przewodzenia.
    Kup 100szt. po 10-20gr-przydadzą się.
    BAT42 lub coś podobnego.
  • Poziom 10  
    założyłem diode BA159 jednak to nic nie pomogło. Czytałem że wpływ maja prowadzone scieżki od zasilania, jak one musza być poprowadzone? u mnie krzyżują sie przed samym mikrokontrolerem, tzn na Vcc jest zworka i przechodzi nad masa
  • Poziom 38  
    To już tylko przyzwoity oscyloskop.
  • Poziom 10  
    a czy mogą mieć na to wpływ uszkodzone tranzystory kluczujace?

    PS
    A czy pomoże jakis prosty filtr dolnoprzepustowy np typu pi kondensatory po 10nF i dławik 10uH? czy zamontować go przy samym mikrokontrolerze?
  • Poziom 38  
    Mogą-zwierają zasilanie.
    Ale raczej stale.
    Filtr może pomóc-ale raczej trzeba oddzielnie zasilać przekaźniki.
  • Poziom 36  
    pawel8704 napisał:
    oto schemat sterownika



    Oto fragment Datasheet:

    "AVCC is the supply voltage pin for Port A and the A/D Converter. It should be externally connected to VCC, even if the ADC is not used."

    albo inny:
    "If some pins are unused, it is recommended to ensure that these pins have a defined level."

    Byc moze ten ostatni masz uwzgledniony w programie.

    Byc moze potrzebujesz tez TVS (varistor) na zasilaniu.


    e marcus
  • Poziom 10  
    Nie wiem czy dobrze zrozumiełem ale chodzi o to aby podpiąć wszystkie piny portu A do zasilania tzn przez rezystor podciągający? Port A mam skonfigurowany jako wyjście caly.
  • Poziom 33  
    Chodzi o to zebys polaczyl pin AVCC z VCC, mimo ze nie korzystasz z przetwornika A/C.
  • Poziom 10  
    połaczenie AVCC z VCC nic nie zmienia:/
  • Specjalista urządzeń chłodniczych
    Próbowałeś odciąć całkowicie reset przy samym procesorze?
    Ja w swoich sterownikach nie daję żadnego podciągania i żadnego kondensatora do resetu i żadnych problemów. Jedynie krótka ścieżka do złącza ISP (jak najbliżej procesora)

    Druga sprawa - czy w momencie testów gdy się resetuje masz podłączony programator do procesora??

  • Poziom 14  
    Mnie na schemacie brakuje układu gasikowego na stykach przekaźnika załączającego elektrozawór (szeregowo rezystor z kondensatorem). Nie podałeś jakie napięcie zasilające cewkę elektrozaworu.
    Od strony programowej dopisz ciągłe odświeżanie rejestrów portów które ustalają kierunek dla linii - jak zakłócenie spowoduje przekłamanie to nawet prawidłowo działający program nic nie zdziała i będzie wyglądać jakby sie zawiesił. Na dodatek ATmega32 nie posiada sprzętowego watchdoga co jest bardzo dużą wadą - ja ich z tego powodu nie stosuje. Inne atmele posiadają, przynajmniej większość.
  • Poziom 16  
    Witam, aż sprawdziłem w dokumentacji - co to ja włączam w atmedze32.
    DOC2503.PDF
    Cytat:
    Programmable Watchdog Timer with Separate On-chip Oscillator

    Atmega32 posiada sprzętowego watchdog-a.
  • Poziom 10  
    Sterownik jest odłączony od programatora, gdy sie resetuje. Elektrozawory sa zasilane 24V AC pobieraja ok 0,3A przy starcie i 0,2A w pracy normalnej. Pompa 230V 0,9kW.