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

Dzikie sygnały przerwań. Jak zniwelować niedoróbki?

LichyiChydy 03 Mar 2007 01:09 1481 8
  • #1 03 Mar 2007 01:09
    LichyiChydy
    Poziom 12  

    Witam. Na początku chcę powiadomić, że jestem początkując.
    Zakupiłem sobie płytkę, z amtegą 8 z wyświetlaczem i trzema przekaźnikami. Na jej podstawie postanowiłem zbudować sterownik urządzenia, który załącza 2 silniki 3 fazowe po 2kW po przez stycznik. Sterownik w domu działa Ok, ale jak podłączam po zamierzone urządzenie to włanczanie silników przez jego styczniki doprowadza mi do samoistnych wyzwoleń przerwań. Również zdarza mi się, że na wyświetlaczu pojawiają się krzaki a sam procesor głupiej traci eeprom. Czy to możliwe, że zakucenia od 2 styczników i silników siały na odległość 2 metrów. Dodam, że dołączyłem na przewodach klawiaturę matrycową Jak na razie to taka pajęczynka. Jak odepnę przewód, którym doprowadzany jest sygnał przerwania to już nie występują już niechciane wyzwolenia przerwań? Przy zasilaniu z baterii również zdarzają się resety.
    Jak zniwelować te nie doróbki

    0 8
  • #2 03 Mar 2007 02:27
    pubus
    Poziom 30  

    Postaraj się galwanicznie odseparować wyjścia i wejścia od uC porzez optoizolatory...
    Metalowa obudowa stanowi dodatkowo dobry ekran...
    Jeżeli wyśiwetlacz jest blisko uC to zamknij go razem z nim w metalowej obudowie...
    Jeżeli nie to ekranowane przewody...

    0
  • #3 03 Mar 2007 08:16
    mirekk36
    Poziom 42  

    a ja dodam do tego co napisał kolega powyżej pytania - jak masz rozwiązaną niby prostą ale ważną w takch sytuacjach sprawę zasilania i filtrowania napięcia??? może pokaż schemat tego co masz. Po drugie - co się dzieje u ciebie z nie podłączonymi pinami portów - jak masz je ustawione - jako wejścia czy wyjścia - to jest b.istotne. Kolejna sprawa czy chociażby reset masz podciągnięty do VCC przez jakiś rezystor. Czy masz odpowiednio przylutowane blisko nóżek zasilania kondensatory 100n oraz jakieś elektrolityczne np 47-100uF? - czy masz ustawiony watch-dog oraz BOD? te wszystkie sprawy o których mówił kolega wyżej, optoizolację oraz to co ja napisałem trzeba wziąć pod uwagę jeśli ma się zamiar sterować takie urządzonka o jakich piszesz - więc podaj więcej informacji. Na pewno nie jest to zjawisko, które się u ciebie dzieje winą procka lub jego wad konstukcyjnych - co przeważnie na początku każdemu przychodzi do głowy .... trzeba poprostu zadbać o wszystko na zewnątrz układu i jego inicjalizację

    pozdrówka

    0
  • #4 03 Mar 2007 10:29
    michalko12
    Specjalista - Mikrokontrolery

    pubus napisał:
    Metalowa obudowa stanowi dodatkowo dobry ekran...


    Nie zawsze, jak jest źle zgrana z układem i ze złego materiału może służyć za antenę.

    Spróbuj uziemić masę układu.

    0
  • #5 03 Mar 2007 14:08
    LichyiChydy
    Poziom 12  

    Schemat jest następujący
    Dzikie sygnały przerwań. Jak zniwelować niedoróbki?
    Zasilane jest to zasilaczem id switcha. 7,5 Volta
    Prawie większość wejść jest skonfigurowane jako wiejścia gdyż prawie wszystkie są mi w tych celach potrzebne
    Reset nie jest podciągnięty. Jeżeli chodzi o watch-dog jest on uruchomiony, ale próbowałem też bez. Ale w moim projekcie do poprawnej pracy sterownik nie powinno być resetów gdyż musiałbym wciąż zapisywać w eepromie stan pracy w razie resetu go przybierać na starcie. Również mogłoby to wyłączać styczniki i zjawisko ich klepania. BOD niestety nie wiem, co to jest.
    A czy ekrany przewodów to powinny być podpięte do masy układu czy do uziemienia.

    0
  • #6 03 Mar 2007 14:13
    pubus
    Poziom 30  

    Kolega michalko12 ma trochę racji...
    Żeby metalowe pudło spełniało swoją rolę musi byćna potencjale masy zasilania, grubym drutem...
    Jeżeli wyświetlacz jest daleko to powinien mieć własną obudowę i do niej podpięty ekran...
    Niestety może to wymusić pewne opóźnienia w transmisji...

    0
  • #7 03 Mar 2007 15:37
    mirekk36
    Poziom 42  

    Witam,

    jeśli ten schemat odzwierciedla stan faktyczny jeśli chodzi o elementy, szczególnie dyskretne to nie dziw się, że masz takie efekty. Jeśli chcesz aby przynajmniej odrazu w diametralny sposób zmienił się stan to zrób przynajmniej kilka podstawowych kroków:

    1. przed stabilizatorem 7805 koniecznie wepnij 2 kondensatory - jeden elektrolityczny o wartości np 470uF oraz drugi ceramiczny 100n

    2. za stabilizatorem (blisko jego nóżek) daj kondensator elektrolityczny powiedzmy 100uF oraz ceramiczny 100n

    3. Jak nabliżej nóżek samego procesora - to b.ważne! - daj jeden kondensator ceramiczny 100n oraz elektrolityczny ok 47uF-100uF (mógłby być tantalowy)

    4. Zrobiłeś poważny błąd - na wejście AVCC trzeba podać +5V - ale zrób to w taki sposób:
    - podepnij blisko nóżki AVCC kondensator ceramiczny 100n do masy, następnie jakiś dławik, cewkę ok 100uH (to wygląda jak mały rezystorek) a na drugi koniec cewki podaj +5V (czyli zasilanie do AVCC będzie leciało właśnie przez tę cewkę-dławik)
    - za dławikiem blisko umieść kondensatorek elektrolityczny 47uF

    5. Wejście AVREF - podłącz pomiędzy tym wejściem a masą - jeden tylko kondensator ceramiczny 100n (a nie elektrolityczny jak na schemacie)

    6. widzę wyjście na złączkę do magistrali I2C - jest ona używana? - jaki długi kabel idzie do kolejnego urządzenia? - tak czy inaczej BRAK rezystorów podciągających linie SDA i SCL do VCC. Czyli koniecznie ale to koniecznie podepnij te dwie linie rezystorami ok 4,7K do VCC (+5V) i idpowiedz jeszcze jak długie są przewody do kolejnej płytki czy może narazie nie używane

    7. Mam nadzieję, że na schemacie pomyłkowo oznaczyłeś kondensatory przy kwarcu jako elektrolityczne!!! - powinny być oczywiście ceramiczne o pojemności ok 33pF (jak daleko od procka masz kwarc???? - ważne aby ścieżki pomiędzy nóżkami procka a kwarcem nie przekraczały np 3cm) Jeśli dałeś jednak naprawdę jakieś elektrolity w to miejsce o dowolnej pojemności to bardzo się dziwię, że ten procek w ogóle jakoś tam działa.

    8. na wejście programatora czyli swoje złącze PRG puściłeś sygnały przez jakieś rezystory??? BŁĄD - rezystory podłącz pomiędzy te linie a VCC - np niech mają po 4,7K - na na złącze PRG niech wchodzą bezpośrednio linie. Mam nadzieję, że to gniazdo jest blisko procka

    9. tak samo KONIECZNIE ale to KONIECZNIE daj rezystor 4,7K podciągający do VCC na linii RESET

    10. Wyjaśnij co to są za styczniki S1 S2 i S3 - czy to tylko jakieś jumperki? - ale jakie one mają zadanie - chyba, że to jakaś klawiaturka - ale w takim razie tym bardziej linie te muszą być podciągnięte do VCC patrz pkt.8

    11. podobnie podciągnij rezystorem 4,7K linię 1Wire do VCC

    12. Nie wiem zabardzo co robią linie PC0 do PC3 - to są wejścia czy wyjścia w całym układzie - jeśli wejścia - to znowu - podciągnij rezystorami do VCC

    13. Nie wiem jakiej mocy są przekaźniki PK ale przydałoby się zrobić optoizolatory zamiast ULN2803 a za optoizolatorami użyć np tranzystory przełączające ale zasilanie do nich brać z miejsca przed stabilizatorem 7805 tylko masa wspólna - albo oddzielić i masę natomiast zasilić tranzystory sterujące przekaźnikami z innego zasilacza - wtedy nawet nie koniecznie stabilizowanego. Miałbyś w takiej sytuacji w 100% odizolowany swój układ od dziwnych szpilek przy przełączaniu

    14. przy podświetleniu (czyli przy nóżkach) LCD też daj 2 kondensatorki jeden ceramiczny 100n i elektrolityczny 47uF


    to tak narazie bardzo ogólnie - są to podstawy dla zapewnienia poprawnej pracy układu nie tylko w przypadku procków ATMELa ale każdych innych.

    rozumiem, że nie użyłeś watchdoga jeśli to nie jest krytyczne ale jednak pomyśl nad tym - bo to nie powinien być problem aby zapisywać i odczytywać z EEPROM dane.

    BOD to fusebity określające przy jakim spadku napięcia ma się ew zresetować procek

    myślę, że gdybyś zastosował się do tych wskazówek to układ będzie działał conajmniej o 98% lepiej.

    Tak w ogóle - przy zastosowaniu pełnej izolacji galwanicznej o jakiej wspomniałem - mógłbyś oddzalić od procka przekaźniki

    ekranowanie całości itp zostaw sobie na koniec - najpierw zajmij się podstawowymi zabezpieczeniami, które opisałem

    pozdrawiam i powodzenia - pamiętaj - nigdy nie oszczędzaj przy projektowaniu na kondensatorkach 100n i kilkadziesiąt uF , które umieścisz blisko nóżek zasilania każdego scalaka a zobaczysz że pozbędziesz się wielu problemów na przyszłość

    0
  • #8 04 Mar 2007 13:15
    LichyiChydy
    Poziom 12  

    Dziękuje za zainteresowanie i tak dogłębną analizę pozwolę sobie dołączyć fot. tej płytki.
    Dzikie sygnały przerwań. Jak zniwelować niedoróbki?
    Rzeczywiście brak oznaczeń w tym schemacie jest z mojej strony nie dopatrzeniem.
    Pod port 1-wire jest podłączony ds. 1820 na przewodzie ok. 1,5m.
    S1,s2,s3 to mini klawiatura, ale nie używane gdyż podpiąłem pod szpilki przewodami około 10 cm klawiaturę matrycową. Jest ona podpięta pod złącze programujące Clk misio, mosi. Następne 2 przewody idą pod złącze i2c a kolejne dwa pod int4 i in3
    6:
    Złącze jako i2c jest nie używane, ale piny zostały skonfigurowane jak wejścia i zostały tam podpięty przewody od klawiatury matrycowej na przewodach 10 cm
    7:
    daje fotka to chyba ceramiczne tak jak piszesz.
    8:
    Programuje przez LPT przy użyciu kabla. Czy to znaczy, że nie powinno to iść przez te rezystory tylko bezpośrednio na nóżki procesora? Jeszcze jedno. Często mi się zdąża, że programowanie mi nie wychodzi jak może to być przyczyna. Czy te rezystory?
    Czy jak bym zakupił programator to każde zaprogramowanie jest pozytywne bo teraz ma średnio co 4
    Do załącz programujących są dołączone kolejne 3 przewody od klawiaturki.
    10:
    to jest mini klawiaturka, ale nie używana gdyż podpiąłem własną.
    12:
    Złącza do pc0 do pc3. 2 z nich wykorzystuje jako wejścia do klawiaturki i one programów raz pracują jako wejścia drugi jako wyjścia. Pod kolejne jest podłączony przycisk na przewodzie około 0,5 metra jedno wolne.
    Z tego, co mi napisałeś to ilość zmian, jakie powinnem wprowadzi dyskwalifikuję tą płytkę do moich zastosowań. Powinnem stworzyć własną pod dany projekt. Taka uniwersalna przy tych zakłóceniach nie ma racji bytu.

    0
  • #9 04 Mar 2007 13:35
    mirekk36
    Poziom 42  

    Taka uniwersalna przy tych zakłóceniach nie ma racji bytu

    masz rację - a co do tych rezystorów na liniach ISP to czasem gdy używa się takiego bezpośredniego podłączenia do LPT - stosuje się je. Jednak nie polecam - zrób albo kup sobie prosty programatorek STK200 (koszt 15zł) i wywal te rezystory. Ja gdy programuję różne procki za pomocą STK200 mam oczywiście czasem problem ale hmmm raz na kilkadziesiąt albo raczej kilkaset razy!!

    ... rozumiem, że płytkę jak piszesz wziąłeś jakąś testową ale jak widać nie zda to egzaminu szczególnie przy pracy w takim środowisku o jakim piszesz.

    co do kondensatorów przy kwarcu to tak jak myślałem poprostu pomyłka na schemacie - bo są ceramiczne

    poza tym sam widzisz - piszesz że np I2C nie używasz, jakichś tam innych sygnałów też nie używasz - a porty są ustawione jako wejścia i nie podciągnięte zapewne nawet programowo pullup'em do VCC. A przydałoby się dać zawsze w to miejsce żywe rezystorki. Ja często używam zamiast tylu rezystorów podciągających poprostu grzebień rezystorków (8szt) i wtedy łatwo na płytce to umieścić

    zobacz sobie na zdjęcia płytek, które robię i projektuję jak to wygląda i ile dzięki temu miejsca tam jest, poniżej podaję link do mojego zegarka - poszukaj tam są 2 fotki gdzie wyraźnie widać te grzebienie - na płytce głównej jest zółty a na płytce klawiaturki - czerwony

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=678948&highlight=

    prawie wszędzie daję kondensatorki 100n - to podstawa - oczywiście nie na płytkach testowych czy prototypowych. Jednak gdy się już robi docelową to nie można o tych podstawach zapominać aby później nie mieć takich niespodzianek

    aha piszesz, że masz DS1820 na kablu o dł 1,5m - hmmm ale przecież nie ma rezystora (a to jest wręcz wymagane) podciągającego linię 1wire do VCC więc nie dziw się, że ten kabelek działa jak antena - i nawet jeśli zrobisz sobie ekranowanie jak radzili inni koledzy to bez tego rezystora i innych podciągających mało to da

    masz rację, teraz już wiesz jak - więc zrób własną płytkę, wprowadź odpowiednie poprawki i będzie na pewno dobrze

    powodzenia ;)

    0