Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega8][atmega168] dziwne zakłócenia.

thral666 06 Lis 2011 19:15 3151 31
  • #1 06 Lis 2011 19:15
    thral666
    Poziom 10  

    Witam.

    Mam duży problem z układem na dwóch atmegach 8 i 168. Jedna płytka pełni rolę panelu operatora, druga płytki wykonawczej. Obie płytki zasilane zasilaczem sieciowym, stabilizowanym 12V, każda mega zasilana z układu LM7805. Obie połączone za pomocą portu RS-232. Układy podpięte według wskazówek znalezionych na elektrodzie. Kondensatory na VCC, AVCC, AREF, pin reset do opornika 10k i do VCC, programowo nieużywane porty skonfigurowane na wyjściowe i ustawione na nich stany wyjściowe. Między płytkami idą jeszcze 2 przewody dzięki którym mogę generować przerwania między nimi.

    Problem polega na tym, że włączenie światła w pomieszczeniu w którym znajduje się jedna z płytek powoduje zawieszenie procesora i jego reset przez układ watchdog.

    Najgorsze jest to, że nawet na próbę zasiliłem oba układy z baterii 12V, czyli całkowicie były odseparowane od sieci a i tak przy włączeniu światła jeden z procesorów się zawiesza i resetuje.

    Dodam, że płytki połączone są ze sobą zwykłą skrętką komputerową o długości około 5m.

    Może ktoś coś wymyśli :P bo już nie wiem co robić.

    0 29
  • #2 06 Lis 2011 19:22
    tmf
    Moderator Mikrokontrolery Projektowanie

    Na 5m ma się co indukować. Odseparuj te linie transoptorami, lub doraźnie daj szeregowy rezystor i kondensator, np. 330R i 10nF.

    0
  • #3 06 Lis 2011 19:45
    mirekk36
    Poziom 42  

    Zrób to co poradził kolega wyżej ale dobrze byłoby też pokazać jednak tutaj dokładnie schemat a może nawet same płytki - jak wygląda PCB. Bo już nie raz widziałem niestety :( jak ktoś na schemacie pododawał kondensatory jak pisał - a na płytce PCB była hmmm masakra z ich umiejscowieniem chociażby. Poza tym napisałeś że wszędzie dałeś kondensatory zgodnie z zaleceniami - ale nie napisałeś jakie? ... tak by można było jeszcze długo się dopytywać a tymczasem jeden prosty schemat wszystko by wyjaśnił w 5 sekund każdemu - no i powód tego co się u ciebie dzieje łatwiej i szybciej byłoby znaleźć.

    0
  • #4 06 Lis 2011 19:52
    thral666
    Poziom 10  

    Doraźnie czyli?? Nie ukrywam, że elektroniką zacząłem się interesować kilka lat temu bo znudziło mi się pisanie programów tylko na kompa :) dużo umiem ale wiem, że uczyć się nowych rzeczy będę całe życie :D:D

    A czy np. zastosowanie przewodów z ekranem coś by pomogło?? Zastanawiałem się czy mój problem właśnie nie tkwi w sposobie połączenie tych procesorów. Spróbuję jeszcze je rozpiąć i zobaczyć czy występują jakieś zakłócenia w momencie kiedy pracują osobno.

    Schemat dodam tylko nie mam obecnie dostępu do kompa. Kondensatory przy Aref, Avcc i Vcc dodałem ceramiczne wszystkie po 100nF, kondensatory przy kwarcy po 33pF i wszystkie dolutowane do samego procesora czyli bliżej się nie dało. (gdzieś znalazłem info, że mają być jak najbliżej)

    A jeszcze co do długości przewodów. Wcześniej miałem jeden sterownik, który mierzył temperaturę poprzez LM35 na takiej samej długości przewodów (3 przewody od LM teraz wykorzystałem te same) i nic się nie zawieszało ani nie resetowało jak tylko zamiast samego LM35 dodałem 2 płytkę wykonawczą to pojawił się problem zawieszania.

    0
  • #5 06 Lis 2011 20:15
    janbernat
    Poziom 38  

    Jak to trzy przewody?
    Skrętka ma cztery pary przewodów i i to które przewody są parami wykorzystane ma znaczenie.
    Oczywiście użycie skrętki w ekranie może zmniejszyć odbierane zakłócenia.

    0
  • Pomocny post
    #6 06 Lis 2011 20:48
    tmf
    Moderator Mikrokontrolery Projektowanie

    Z LM35 sytuacja jest trochę inna, bo impedancja wyjścia tego układu jest niewielka i może on zbijać zakłócenia. W każdym razie ten układ przejmie większą część energii zakłócenia. Wejścia procesora z kolei mają impedancję ogromną, rzędu GOmów, więc niewielka energia zakłócenia może wyindukować spore napięcie. W każdym razie, niezależnie od sytuacji, podłączanie wielometrowych przewodów do wejść procesora jest pomysłem złym. Ekran pewnie pomoże, na ile to zależy od innych czynników. Daj szeregowo rezystor np. 10kOm i równolegle do macy mały kondensatorek i sprawdź czy pomogło.

    0
  • #7 06 Lis 2011 21:12
    janbernat
    Poziom 38  

    Zakłócenia nie są dziwne- po prostu są.
    Trzeba zrobić pętlę prądową- albo coś w rodzaju pętli.
    Chodzi o zmiejszenie impedancji odbiornika- nadajnik zwykle ma małą.
    Wtedy zakłócenia powodują mniejsze napięcia.
    Jeśli transmisja jest jednokierunkowa to wystarczy po stronie odbiornika- tam gdzie ma wystąpić sygnał przerwania dać opornik między wejście a masę.
    Jaki- jeśli z nadajnika można pobrać np. 10mA bez znaczącego spadku napięcia to przy odbiorniku można dać 5V/10mA== 510ohm .
    Wtedy nawet kondensator może być niepotrzebny.

    0
  • #8 06 Lis 2011 21:33
    Fredy
    Poziom 27  

    thral666 napisał:
    Między płytkami idą jeszcze 2 przewody dzięki którym mogę generować przerwania między nimi.


    myślę że to właśnie jest twoim problemem. Skoro łączysz oba układy RSem to po co ci jeszcze jakieś przewody do wywoływania przerwań? Sam RS może przecież wytworzyc przerwanie , a wtedy w procedurze obsługi możesz zdekodować jaki znak nadszedł i robić sobie co chcesz.

    Odłącz na próbę te kabelki od przerwań i zobacz czy problemy ustały.

    Spróbuj jeszcze :
    1) obniżyć prędkość transmisji
    2) wprowadz sumę kontrolną
    3) włącz watchdoga.

    0
  • #9 06 Lis 2011 23:04
    thral666
    Poziom 10  

    Więc tak.

    Cytat:
    Skoro łączysz oba układy RSem to po co ci jeszcze jakieś przewody do wywoływania przerwań?


    Pewnie dlatego, że na tyle ile umiem obsługiwać RS tak sobie radzę :P ogólnie miałem taką wizje, żeby oba układy pracowały normalnie w spoczynku bez siebie. Na panelu np mam godzine, a na tym drugim układzie temperature odczytaną z LM35. A przerwania miały służyć do tego, żeby wtedy kiedy jeden albo drugi układ potrzebował informacji od drugiego wyzwolił w nim przerwanie za pomocą którego wykonuje wysłanie info, a dokładnie ciągu 5 znaków 1 lub 0.

    Możliwe że nie do końca też dobrze mam obsłużone przerwanie. Na portach INT0 utrzymuje stan wysoki i przerwanie wyzwalam stanem niskim. może tu jest coś źle. Porty te nie są podciągnięte rezystorami do Vcc tylko programowo mają stan wysoki.

    Ogólnie komunikacja przebiega prawidłowo, czasami jakiś błąd się wtargnie ale maksymalnie trzeba 2 razy to samo wysłać, żeby prawidłowo odebrać dane. Ale czy przez to wieszał by mi się jeden z okładów. Watchdoga mam bo właśnie dlatego wiem, że się zawiesza jeden układ. Na wyświetlaczu coś się tam dziej, zapalam światło i nagle widzę, że układ stoi 2000ms później układ startuje od nowa (na 2000 mam ustawiony licznik watchdoga)

    Chyba, że skorzystać z magistrali SPI ??

    Cytat:
    Jeśli transmisja jest jednokierunkowa to wystarczy po stronie odbiornika- tam gdzie ma wystąpić sygnał przerwania dać opornik między wejście a masę.
    Jaki- jeśli z nadajnika można pobrać np. 10mA bez znaczącego spadku napięcia to przy odbiorniku można dać 5V/10mA== 510ohm .


    Właśnie jest dwukierunkowa w taki sposób jak napisałem wyżej. Ale jak wywołuje przerwanie stanem niskim to jak dam rezystor do masy to nie pomiesza mi się coś za bardzo??

    Cytat:
    Daj szeregowo rezystor np. 10kOm i równolegle do macy mały kondensatorek i sprawdź czy pomogło.


    Czyli rozumiem, zamiast przewodu bezpośrednio do wejścia INT0 mam dać między nim a portem ten rezystorek??

    Cytat:
    Jak to trzy przewody?
    Skrętka ma cztery pary przewodów i i to które przewody są parami wykorzystane ma znaczenie.
    Oczywiście użycie skrętki w ekranie może zmniejszyć odbierane zakłócenia.


    No skrętka jest położona cała ale wcześniej kożystałem tylko z 3 przewodów.

    Zasilacz do obu układów jest w miejscu tego co mierzy temperature. i z tego zasilacza jedną parą np. brązowy i bialo brązowy mam pociągnięte zasilanie 12v do drugiego układu. Potem para niebieska to połączenie RxD i TxD obu układów a para zielona to przewody do generowania przerwań.

    A może nie powinienem zasilania drugiego układu po tych kablach ciągnąć w skrętce tylko np dać drugi osobny zasilacz blisko tego układu.

    Jutro zamieszczę szczegółowy schemat płytek i połączeń między nimi może sie okaże że jednak jest coś źle :) I napiszę czy pomogły te proste wskazówki bo zastosowanie transoptorów wiąże się z troszkę większą przeróbką (jak bedzie trzeba to też to biorę pod uwagę)

    0
  • #10 06 Lis 2011 23:23
    mirekk36
    Poziom 42  

    Tak jak radził ci kolega Fredy - daj sobie spokój w ogóle z tymi przerwaniami to od razu odpadnie ci połowa tych problemów.

    Pomyśl sobie po co jeden układ ma do drugiego wystawiać przerwanie, że chce wysłać mu coś przez RS232 - toż to nieporozumienie prawie ;)

    Ot układ od razu wysyła do tego drugiego dane po RS232 - a tamten to zauważa sam i obsługuje - jaki w tym problem ???

    Dodano po 2 [minuty]:

    i podobnie w drugą stronę, jeśli jeden układ potrzebuje informacji od drugiego - to wysyła mu zapytanie po RS232 i dostaje odpowiedź .... gdzie tu miejsca na dodatkowe przerwania ?? ;)

    0
  • #11 07 Lis 2011 00:03
    thral666
    Poziom 10  

    No właśnie tylko zacząłem zabawę z atmegą w bascomie bawiąc się z coraz to większymi układami no i tak doszedłem do tego projektu co teraz. Ponieważ miał to być sterownik ogrzewacza który znajduje się w innym pomieszczeniu napisałem sobie aplikacje do układu który miał być panelem sterującym i do układu wykonawczego. Taki projekt przy którym też pewnych rzeczy chciałem się nauczyć.

    Nie wiem jak się używa RS-a w bascomie tak żeby dało się nim przerwanie wyzwolić dlatego wymyśliłem co wymyśliłem :D Wszystko działało do momentu jak było zasilane z komputera na którym te układy były programowane a połączone były kabelkiem o długości 20cm :)

    Cytat:
    Ot układ od razu wysyła do tego drugiego dane po RS232 - a tamten to zauważa sam i obsługuje - jaki w tym problem ???


    Właśnie nie wiem jak to zrobić, wcześniej było tak, że jeden układ coś wysyłał drugi czekał na info (od razu się przyznam, najprostszy sposób czyli Print i Input w bascomie) problem polegał na tym, że jak jeden nic nie wysyłał to drugi stał w miejscu Input i nie mógł wykonać innego zadania dlatego narodziła mi się w głowie pewna myśl co do przerwań :D:D i ogólnie wszystko działa oprócz tego, że mam zakłócenia z domowej sieci. Światło, wentylator w łazience, co nie włączę to układy świrują.

    Z helpa do bascoma wywnioskowałem, że używanie magistrali SPI daje taki właśnie efekt, że nie muszę tych nieszczęsnych przerwań używać myślę czy by tego nie wypróbować jeszcze.

    Byle do rana, bo aż mnie skręca, żeby wypróbować wskazówki od was :D:D

    0
  • #12 07 Lis 2011 00:34
    piotrva
    Moderator Mikrokontrolery

    Da się w bascomie zrobić to wszystko co Ci radzimy o rsie. Poczytaj o Config Serialin = Buffered i Bytematch All. Powinno się nieco rozjaśnić.

    Dodano po 5 [minuty]:
    Dodano po 45 [sekundy]:

    A głównym problemem i tak pozostają zakłócenia, niezależnie czy zmienisz te przerwania czy nie.
    Więc tak, czy ta skretka idzie w pobliżu 230vac?
    Czy na każdej płytce masz elektrolity na zasilaniu?
    Czy same płytki nie są blisko urządzeń/ linii 230vac?
    Czy na płytkach resety procesorów masz podciagane przez rezystor powiedzmy ok 1-2k do vcc?

    0
  • #13 07 Lis 2011 06:41
    thral666
    Poziom 10  

    Cytat:
    Da się w bascomie zrobić to wszystko co Ci radzimy o rsie. Poczytaj o Config Serialin = Buffered i Bytematch All. Powinno się nieco rozjaśnić.

    Dodano po 5 [minuty]:
    Dodano po 45 [sekundy]:

    A głównym problemem i tak pozostają zakłócenia, niezależnie czy zmienisz te przerwania czy nie.
    Więc tak, czy ta skretka idzie w pobliżu 230vac?
    Czy na każdej płytce masz elektrolity na zasilaniu?
    Czy same płytki nie są blisko urządzeń/ linii 230vac?
    Czy na płytkach resety procesorów masz podciagane przez rezystor powiedzmy ok 1-2k do vcc?


    Właśnie gdzieś mi się już obiło o uszy, że trzeba dane z RS-a odbierać buforowo a nie tak jak ja to robię :P poczytam jeszcze helpa może coś znajdę.

    Skrętka przechodzi przez ścianę w pobliży właśnie puszki od światła przez które jak zauważyłem jest najwięcej zakłóceń.
    Na zasilaniu czyli rozumiem przed 7805 mam elektrolity 100uF 25V. (jak się dzisiaj po południu dostanę wreszcie do kompa ze schematami to od razu go zamieszczę)
    Jedna płytka z tego co zauważyłem zawiesza się prawie zawsze albo może i za każdym razem jest w plastikowej rozdzielce natynkowej razem z zasilaczem 230 -> 12V więc jak by na to nie patrzeć jest blisko 230V.
    Rezystory podciągnięte przez 10k do Vcc.

    Dodaję schematy obu moich układów z tym, że układ wykonawczy wykonałem sam na podstawie jakiś przykładów z internetu a panel sterowania jest na gotowej płytce kupionej gdzieś w internecie :)

    [atmega8][atmega168] dziwne zakłócenia. [atmega8][atmega168] dziwne zakłócenia.

    Pewnie w tworzeniu schematów też mam pełno błędów ale cały czas się uczę i słucham dobrych rad :)

    tmf mam pytanie czy ten rezystor 10k i kondensator miał by być tak podpięty czy inaczej??

    [atmega8][atmega168] dziwne zakłócenia.

    0
  • #14 07 Lis 2011 21:13
    mirekk36
    Poziom 42  

    Niestety - jak widać sprawa filtracji zasilania - raczej jest nieszczęśliwie rozwiązana. Nie masz nawet jednego kondensatora elektrolitycznego. Tymczasem podstawowa zasada polega na tym, żeby dać przy każdej parze nóg zasilania każdego scalaka - nie jeden kondensator 100nF ale parę kondensatorów. W tej parze jeden to oczywiście 100nF ale drugi to 10 do 47uF. Przy czym pamiętać musisz że twój stabilizator napięcia to też scalak i ma wejście i wyjście zasilania czyli już masz dwie pary takich kondków przy nim.

    Tymczasem na jednym schemacie dałeś na wejściu stabilizatora TYLKO elektrolit a na wyjściu tylko 100nF - błąd :(

    A na drugim schemacie jeszcze większa niefrasobliwość w tym zakresie - więc musisz to poprawić szybko.

    No i pokaż swoją płytkę PCB bo jak pisałem wcześniej, już raz ktoś napisał że dał kondensatory najbliżej jak mógł - a po zobaczeniu widoku PCB okazało się że niestety - zrobił kolejną (ten ktoś) masakrę.

    Dodano po 4 [minuty]:

    No i gdybyś poszedł drogą rezygnacji z tych dodatkowych linii przerwań (niepotrzebnych) a pozostał przy samym RS232 na skrętce to już byłoby lepiej. Chociaż może warto byłoby pomyśleć o prawidłowym jeszcze zbuforowaniu linii RS232 za pomocą scalaczków MAX232 ? Bo w takiej konfiguracji, gdy RS232 śmiga na napięciach +12V/-12V to po kablu skrętkowym można i na odległość 20-30m spokojnie puścić bez mrugnięcia oka. A w TTL'u może być gorzej.

    0
  • #15 07 Lis 2011 21:40
    thral666
    Poziom 10  

    Cytat:
    Niestety - jak widać sprawa filtracji zasilania - raczej jest nieszczęśliwie rozwiązana. Nie masz nawet jednego kondensatora elektrolitycznego. Tymczasem podstawowa zasada polega na tym, żeby dać przy każdej parze nóg zasilania każdego scalaka - nie jeden kondensator 100nF ale parę kondensatorów. W tej parze jeden to oczywiście 100nF ale drugi to 10 do 47uF. Przy czym pamiętać musisz że twój stabilizator napięcia to też scalak i ma wejście i wyjście zasilania czyli już masz dwie pary takich kondków przy nim.


    Czyli rozumiem przy Vcc atmegi i przy Avcc ma być taka para kondensatorów. I na wejściu i wyjściu stabilizatora też, dobra to poprawie to na płytkach i zobaczymy czy będzie lepiej.

    A tu zdjęcie na którym widać, że kondensatorki 100nF (o których zapomniałem na początku) przylutowałem blisko wejścia Vcc oraz wyjścia stabilizatora.

    [atmega8][atmega168] dziwne zakłócenia.

    Aha zrobiłem (przynajmniej tak mi się wydaje, że dobrze) tak jak poradził tmf z tym, że tak jak na poniższym schemacie

    [atmega8][atmega168] dziwne zakłócenia.

    i zakłócenia powodowane zapalaniem światła ustały, mogę pstrykać klapakiem od światła do woli i jak tylko chcę i nic się nie dzieje, układy pracują stabilnie. I wszystko by było super gdyby nie to :D że mam w łazience nieszczęsny wentylator wyciągowy i jak go włączę albo wyłączę to układy jeszcze świrują z tym, że nie zawiesza się żaden z procków tylko dziwne rzeczy się na wyświetlaczu pojawiają nawet jakieś chińskie znaki i panel sterowania zachowuje sie tak jak by wywołano w nim przerwanie czyli pewnie przez moje nieszczęsne 2 kabelki się coś jeszcze indukuje.

    A może wartości rezystora 10k i kondensatorka 33pF mam złe?? akurat takie miałem ale może kondensator ma być większy albo mniejszy?? Lub rezystor??

    0
  • #17 07 Lis 2011 23:03
    thral666
    Poziom 10  

    piotrva napisał:
    Zmień kabel na ekranowany, dodaj stabilizację zasilania odpowiednimi c., wreszcie rozważ użycie rs232 w standardzie +-12v


    Zmienię ten kabel, dodam te kondensatory o których mówicie i zobaczę jutro jaki to da efekt. Jak na razie poprzednie wskazówki pomagają :) zostały tylko zakłócenia z wentylatora :)

    0
  • #19 08 Lis 2011 22:25
    thral666
    Poziom 10  

    Cytat:
    Niestety - jak widać sprawa filtracji zasilania - raczej jest nieszczęśliwie rozwiązana. Nie masz nawet jednego kondensatora elektrolitycznego. Tymczasem podstawowa zasada polega na tym, żeby dać przy każdej parze nóg zasilania każdego scalaka - nie jeden kondensator 100nF ale parę kondensatorów.


    A więc tak jak doradził mirekk36 dodałem sobie kondensatorki 47uF do Vcc procka i do 7805 na wyjściu bo na wejściu miałem elektrolity 100uF (może za duża wartość nie wiem :P)

    dałem też tak jak doradził tmf szeregowo do linii od przerwań rezystorek 10k i kondensatorek ceramiczny 33pF (tak jak na schemacie który załączyłem) nie wiem czy dobrze ale najważniejsze jest to, że zakłócenia zniknęły. Nawet jak włączę wentylator w łazience albo wyłączę to zakłóceń nie ma. Zdążają się sporadycznie ale tylko jak szybko włączę i wyłączę wentylator tak np 20 razy jeden za drugim. A przy normalnym użytkowaniu tak się nie robi. Można by jeszcze dopracować to tak żeby w ogóle nie było żadnego zakłocenia ale nie znam się tak na elektronice, żeby się zagłębiać się w ten temat (chyba, że ktoś ma jeszcze jakąś sugestie) albo może jeszcze ten kabel ekranowany dam.

    Zastanawiam się tylko czemu nieraz na wyświetlaczu LCD pojawiają się jakieś dziwne chińskie znaki?? Wcześniej się tak nie działo dopiero jak dodałem te kondensatory 47uF. Może na zasilaniu LCD też powinienem je dać?? Razem z 100nF. Dzieje się tak na wyświetlaczu płytki wykonawczej (tej co zamieściłem zdjęcie)

    0
  • Pomocny post
    #20 08 Lis 2011 22:35
    mirekk36
    Poziom 42  

    Sam widzisz, że filtracja zasilania prawidłowa to nie jakiś tam wymysł a podstawa. Zatem jak zrobisz sobie nową płytkę PCB, zaprojektujesz wszystko tak jak się należy ale co ważne prawidłowo poprowadzisz ścieżki zasilania bo tu niezbyt dobrze to widać ( a coś czuję pismo nosem że też jest coś nieteges ), zrezygnujesz z tych linii przerwań w końcu, puścisz sobie RS232 na +12V/-12V - to wtedy pozbędziesz się do końca problemów. No i pamiętaj, że na końcu trzeba jeszcze sprawdzić program - bo tam też może być parę jak nie więcej baboli niestety.

    0
  • #21 08 Lis 2011 23:53
    thral666
    Poziom 10  

    Właśnie ciężko zdobyć informacje na temat tego jak dobrze ścieżki prowadzić, przynajmniej ja nie znalazłem czegoś ciekawego a może za słabo szukam :) Myślę, że teraz zabiorę się właśnie za te linie przerwania i za prawidłowy RS. Niestety na razie zaliczam się do początkujących więc robię błędy na każdym kroku :P Program pewnie też nie należy do najlepszych ale myślę o książce i przesiadce na C.

    Dzięki za wszystkie rady bo się sprawdziły a i przez to nie zniechęcę się tak szybko :P

    0
  • #22 09 Lis 2011 00:13
    oskar777

    Poziom 24  

    Tu masz opis na temat wylewania masy, filtracji i innych ważnych zagadnień.
    Jest to do atmegi32 ale idea pozostaje ta sama.
    Pozdrawiam
    http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

    0
  • #23 09 Lis 2011 08:33
    tmf
    Moderator Mikrokontrolery Projektowanie

    Z tych linii przerwań oczywiście zrezygnuj, nie są potrzebne. Co do RS, to zamiast robić RS232, zrób RS485. W przypadku dwóch układów nie jest to bardziej skomplikowane, w dodatku transceiver RS485 wymaga mniej elementów dodatkowych. Ta magistrala jest projektowana z myślą o zakłóceniach, więc powinna świetnie się sprawdzić.
    Co do zakłóceń na LCD - pamiętaj, że to też scalak, potrzebuje swoje filtrowanie. Masz LCD na płytce więc nie powinno być problemów z zakłóceniami.

    0
  • #24 09 Lis 2011 09:22
    WOBI
    Poziom 19  

    Niestety to znany problem, sam widzisz że tak jak pisali koledzy powyżej, kondensatory i filtrowanie jest najważniejsze i prawidłowy projekt płytki PCB.
    Spotykałem się z takim samym problemem przy projektowanych urządzeniach i rozwiązaniem okazało się prawidłowe projektowanie PCB z dużymi, jak największymi powierzchniami masy i do tego wszędzie kondensatory parami 100nF i 10uF tam gdzie tylko się da i gdzie tylko sztuka projektowa nakazuje.

    To przykładowa płytka sterownika ATmega128, wogle nie reaguje na "pstrykanie sieci", zobacz jak dużo powierzchni masy jest. Teraz zawsze w moich płytkach wylewam dużo masy i jest spokój a urządzenia pracują stabilnie.

    warstwa 1

    [atmega8][atmega168] dziwne zakłócenia.

    warstwa 2

    [atmega8][atmega168] dziwne zakłócenia.

    0
  • #25 09 Lis 2011 15:50
    thral666
    Poziom 10  

    oskar777 napisał:
    Tu masz opis na temat wylewania masy, filtracji i innych ważnych zagadnień.
    Jest to do atmegi32 ale idea pozostaje ta sama.
    Pozdrawiam
    http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf


    Dziwne właśnie jest to że podane jest, że do każdej pary Vcc i GND ma być kondensator 100nF a nigdzie mowy o elektrolicie :)

    tmf napisał:
    Z tych linii przerwań oczywiście zrezygnuj, nie są potrzebne. Co do RS, to zamiast robić RS232, zrób RS485. W przypadku dwóch układów nie jest to bardziej skomplikowane, w dodatku transceiver RS485 wymaga mniej elementów dodatkowych. Ta magistrala jest projektowana z myślą o zakłóceniach, więc powinna świetnie się sprawdzić.
    Co do zakłóceń na LCD - pamiętaj, że to też scalak, potrzebuje swoje filtrowanie. Masz LCD na płytce więc nie powinno być problemów z zakłóceniami.


    LCD na płytce a jednak coś czasami się na nim dziwnego wyświetla, może do jego zasilania też dołożę kondensatory.

    Nie pojmuję do końca zasady działania RS232 a co dopiero jakiś inny :D No ale poczytam coś to może mi się umysł rozjaśni :P

    WOBI napisał:
    Spotykałem się z takim samym problemem przy projektowanych urządzeniach i rozwiązaniem okazało się prawidłowe projektowanie PCB z dużymi, jak największymi powierzchniami masy i do tego wszędzie kondensatory parami 100nF i 10uF tam gdzie tylko się da i gdzie tylko sztuka projektowa nakazuje.


    Dzięki za sugestię na pewno wezmę to pod uwagę przy projektowaniu kolejnej PCB. A i nawet wytrawianie będzie szybsze :P

    (wiecznie się na błędach uczę...)

    0
  • #26 09 Lis 2011 16:17
    tmf
    Moderator Mikrokontrolery Projektowanie

    Do LCD koniecznie kondensatory, tak jak pisałem LCD to też scalak, a prosta zasada mówi, że na każdy scalak ma być co najmniej jeden kondensator. Elektrolity jakieś warto dodać, ale bez przesady.
    Co do RS232 i RS485 - w twoim przypadku programowo nic to nie zmienia, kwestia tylko zastąpienia transceivera 232 na transceiver 485. RS485 wygląda nieco inacej dopiero przy więcej niż dwóch układach. Oczywiście na max232 też pewnie ci to dobrze zadziała.

    0
  • #27 09 Lis 2011 16:35
    thral666
    Poziom 10  

    tmf napisał:
    Do LCD koniecznie kondensatory, tak jak pisałem LCD to też scalak, a prosta zasada mówi, że na każdy scalak ma być co najmniej jeden kondensator. Elektrolity jakieś warto dodać, ale bez przesady.
    Co do RS232 i RS485 - w twoim przypadku programowo nic to nie zmienia, kwestia tylko zastąpienia transceivera 232 na transceiver 485. RS485 wygląda nieco inacej dopiero przy więcej niż dwóch układach. Oczywiście na max232 też pewnie ci to dobrze zadziała.


    No więc dodam jeszcze do LCD kondensatorki.

    Co do elektrolitów to dałem do każdego ceramicznego na zasilaniach i się uspokoiło ale nie wiem co dokładnie znaczy "bez przesady" :)

    "zastąpienia transceivera 232 na transceiver 485" czyli w moim przypadku musiał bym coś dodać do moich układów bo obecnie to są połączone bezpośrednio przewodami :) o ile dobrze rozumuję o co chodzi :P bo przeglądałem właśnie trochę info o RS485 :)

    0
  • #28 09 Lis 2011 17:03
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak, zobacz np. scalak 75176 - to jest transceiver RS485. Ty sterowanie buforów możesz pominąć (sygnąły RE/DE) i je na stąłe otworzyć. Układ wtedy pracuje jako przeźroczysty konwerter pomiędzy procesorami. Wszystko wysyłasz normalnie przez UART. W procesorze odbierającym dane ustawiasz sobie przerwanie RXC i masz odpowiednik tych twoich linii przerwań.

    0
  • #29 09 Lis 2011 17:48
    mirekk36
    Poziom 42  

    thral666 napisał:

    Co do elektrolitów to dałem do każdego ceramicznego na zasilaniach i się uspokoiło ale nie wiem co dokładnie znaczy "bez przesady" :)


    A to "bez przesady" oznacza właśnie to, że jeśli np masz procek w obudowie TQFP i ma on więcej wyprowadzeń zasilania VCC, to przy każdym dobrze dać powiedzmy ten kondensator 100nF ale już bez przesady ;) czyli wystarczy na te 4 nogi tylko jeden elektrolit. O to chodzi.

    Chociaż to wszystko zależy od aplikacji całości a szczególnie od tego czy obciążasz większymi prądami wyjścia portów.

    0
  • #30 09 Lis 2011 18:06
    thral666
    Poziom 10  

    tmf napisał:
    Tak, zobacz np. scalak 75176 - to jest transceiver RS485. Ty sterowanie buforów możesz pominąć (sygnąły RE/DE) i je na stąłe otworzyć. Układ wtedy pracuje jako przeźroczysty konwerter pomiędzy procesorami. Wszystko wysyłasz normalnie przez UART. W procesorze odbierającym dane ustawiasz sobie przerwanie RXC i masz odpowiednik tych twoich linii przerwań.


    Aha czyli przy jednym jak i przy drugim układzie musi się taki scalak znaleźć. Jak to mówią jak nie spróbujesz to się nie przekonasz :) z datasheetu widzę, że można tak połączyć aż do 32 układów (ciekawe przy późniejszej rozbudowie systemu) ale pewnie to już nie takie proste :)

    mirekk36 napisał:
    A to "bez przesady" oznacza właśnie to, że jeśli np masz procek w obudowie TQFP i ma on więcej wyprowadzeń zasilania VCC, to przy każdym dobrze dać powiedzmy ten kondensator 100nF ale już bez przesady czyli wystarczy na te 4 nogi tylko jeden elektrolit. O to chodzi.


    No teraz mam już rozjaśnione w swojej głowie :D (w miarę) zasilanie scalaków :)

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo