Zakłucenia a ATmega16

Dec 08, 2005 16 Replies

Witam, skonstruowałem sobie pewne urządzenie na ATmega16, z jakiegoś powodu procesor jest strasznie wrażliwy na zakłócenia, czy spotkał się już ktoś z takim problemem?



Przykłady: Masę urządzenia łącze z masą innego - procesor lubi się zawiesić. Do przetwornika A/C przez dzielnik rezystorowy podłączam napięcie zasilania - czasem procesor się restartuje. Nie łączy wtyczka zasilacza w gniazdku - w RAM-ie pojawiają się śmieci. Często dotknięcie jakiejś ścieżki (szczególnie idącej do komparatora) wywołuje zawieszenie, błędne działanie bądź restart programu.



"Schemat" zasilania:



230V--transformator--prostownik--15V--1000uF--LM7805--100nF--1uF


Pozdrawiam Maksymilian Dutka


Ps. Procesor sygnał zegarowy (8MHz) czerpie z "wewnętrznego generatora".


Użytkownik "Maksymilian Dutka" snipped-for-privacy@usunpoczta.onet.pl> napisał w wiadomości news:dn95j0$e17$ snipped-for-privacy@atlantis.news.tpi.pl...

Nie wiem jak w mega 16 ale w M8535 przy niestabilnej pracy pomoglo ustawienie bitu CKOPT zeby genrator chodzil "od bandy do bandy"

viki napisał(a):

Co rozumiesz przez porty? (jeżeli np. "złącza" RS232 itp. to takich nie mam) (jeżeli wyprowadzenia/piny procesora to niektóre mogą być w stanie Z)

Pozdrawiam MD

przy pomocy portów mikrokontroler komunikuje się ze światem. moze nie są one własciwie ustawione.

Robgold napisał(a):

(...)

Z opisu producenta wynika że w przypadku używania wew. generatora ten bit ma być rozprogramowany czyli równy 1, u mnie jest tak ustawiony (nie zmieniałem defaultowej wartości).

Pozdrawiam MD

Ps. Ale Atmel zrobił zamieszanie z tymi fusami :)

viki napisał(a):

Czyli "wyprowadzenia" zgrupowane po 8 ;)

Jeżeli jakiś pin wykorzystuje to jest ustawiony poprawnie, jeżeli nie to standardowo pracuje jako niepodciągnięte wejście. Czy to może być przyczyną problemów?

Pozdrawiam MD

Ps. Port ma troszkę za dużo znaczeń ;)

w informatyce:

  • port - gniazdo w komputerze służące do podłączania urządzeń peryferyjnych i przesyłania danych między nimi a komputerem, * port - wersja programu dla innej platformy, zazwyczaj procesora lub systemu operacyjnego * port protokołu lub port sieciowy - interfejs służący komunikacji w sieci komputerowej,

nie koniecznie, czasem np. po 7;)

skoro rozmawiamy o ATmedze to skojarzenie może być tylko jedno.

Ja kiedyś miałem pływający cały port i podobne problemy, ale skoro go ustawiłeś to szukać należy gdzie indziej. Kiedyś też miałem zwisy z powodu zbyt małej pojemności kondensatora w zasilaczu.

Pozdrawiam.

Niepodciągnięte wejście? No pewnie. Każde pierdnięcie w okolicy może powodować że napięcie na takiej nodze będzie latać jak gówno w przeręblu. Daj pullup albo ustaw jako wyjście i jedna z możliwości wyeliminowana.

A tak się zapytam na marginesie - ile masz kondensatorów 100n na płytce?

TP.

(...)

Ja i tak nie czytam z tych wejść więc czy tam jest 0 czy 1 niema znaczenia, jedynie to wzroście trochę pobór prądu. Chyba że jeżeli napięcie wzrośnie/spadnie powyżej/poniżej napięcia zasilania, ale chyba są jakieś zabezpieczenia?.

Sprawdzę to.

2 albo 3 ;) Ale płytka nie jest zbyt duża, jakieś 10x10cm

Pozdrawiam Maksymilian Dutka

Ps. zapomniałem dodać że ATmega jest w obudowie DIP.

Użytkownik "Maksymilian Dutka" snipped-for-privacy@usunpoczta.onet.pl> napisał w wiadomości news:dn9eqn$oqq$ snipped-for-privacy@atlantis.news.tpi.pl...

Ja na płytce 8x12 mam 22. P.G.

generalnie jest zasada, która mówi że do zasilania każdego scalaczka w którym pracują brameczki należy podczepić te 100nF tak dla świetego spokoju.

Piotr Gałka napisał(a):

Ile masz scalaków? U mnie na tej PCB jest tylko uC + 1wzm.oper+ 3tr. +

2pk + kilkanaście rezystorów.

Pozdrawiam Maksymilian Dutka

Użytkownik "Maksymilian Dutka" snipped-for-privacy@usunpoczta.onet.pl> napisał w wiadomości news:dn9hec$mjq$ snipped-for-privacy@nemesis.news.tpi.pl...

11

Poczytaj ze strony:

formatting link
ł: Design Techniques for EMC

P.G.

Piotr Gałka napisał(a):

Poczytam...

Na razie dolutowałem 9 kondensatorów, niestety nie pomogło, ale już mam trop - chyba jest coś nie tak z programem (wyłączenie przerwania SIG_INPUT_CAPTURE1 rozwiązało problem).

Pozdrawiam MD

Zagadka została rozwiązana: problem tkwił w obsłudze przerwania dosyć wyczulonego komparatora :) (zapychał się stos)

Dziękuje wszystkim za wskazówki.

Pozdrawiam MD

Piotr Gałka napisał(a):

Może jeszcze tutaj, ze wskazówkami jak powinien program wyglądać ;-)

formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required