PIC i zwisy :(

Jun 02, 2004 9 Replies

Witam, ostatnio mam za³amanie nerwowe. Jest sobie prosty uklad zliczajacy impulsy i wynik po przeliczeniu na metry podawany przez rs485 na tablice led. Dzialalo to przez 2mies prawie 24h/dobe. I wkoncu zwis, niedziala tylko reset ratowal. Co moze byc przyczyna ? Czy to piski takie zawodne ? Uklad znajduje sie w duuuzej metalowej zamknietej skrzynce. Czy ATMELE sa przez to lepsze ? mniej niezawodne ?



Jak to z tym jest, czy wathdog powinien byc czy musi byc ?



Pozdrawiam Kamil.



Chodzilo 2 miesiace bez watchdoga ? No to calkiem stabilne sa te Pice musze przyznac ;) Watchdog powinien byc jezeli urzadzenie ma pracowac bez przerwy...

Tomek

Witam,

W sumie to sam sobie odpowiedziałeś na problem, nie włączyłeś watchdoga i się dziwisz. Jak huśtnie zasilaniem albo innym zakłóceniem to każdy procek może się wysypać i nieważne czy atmel czy pic (pozatym obstawiam że pice są odporniejsze).

Pozdrawiam, sword

U¿ytkownik "Kamil K." snipped-for-privacy@op.pl napisa³ w wiadomo¶ci news:c9jsvn$3fe$ snipped-for-privacy@news.onet.pl...

[ciach]

Z doswiadczenia wiem, ze budowa uk³adu z mikrokontrolerem bez watch-doga to proszenie siê o k³opoty. Zawsze mo¿e siê wykrzaczyæ. Jak chcesz spaæ spokojnie to tylko watch-dog i m±drze napisany program tzn. resetowania watch-doga nie powinno byæ:

  1. w obs³udze przerwania
  2. w pêtlach, z których wyj¶cie zale¿y tylko od sprzêtu np. oczekiwanie na koniec konwersji ADC lub na wyzerowanie timera, wys³anie znaku przez RS itp. (UWAGA!!! na wszelkiego rodzaju pêtle wprowadzaj±ce opó¼nienia i korzystaj±ce z przerwañ timera. Ja w takim przypadku stosujê dodatkowe sprawdzanie, czy przerwanie jest wykonywane)
  3. wszêdzie tam, gdzie mamy choæ cieñ podejrzenia, ¿e gdy program pójdzie "w maliny" to watch-dog bêdzie ci±gle resetowany. Nale¿y braæ pod uwagê przypadkowy skok do dowolnego miejsca programu i patrzeæ co wtedy siê bêdzie dzia³o. Jest to kupa roboty, ale oszczêdzamy sobie i innym nerwów:-)

A z Atmelami jest o tyle prosto, ¿e prawie ka¿dy ma sprzêtowego watch-doga.

Tymczasem Jarek

A propos atmeli to mam ukladzik na 89s8252 licznika predkosci i przebiegu do auta, wlasnie koncze obudowe, polutowalem tez juz i zabezpieczenia. Samochod bedzie dobrym polem testowym dla atmela pod katem rozniastych zaklocen i warunkow pracy. Zaimplementowane mam funkcje watchdoga oraz power down... slyszalem ze bywaja z tym problemy. W domu uklad dziala bez problemu z power down wybudza sie przerwaniem bez klopotu watchdog tez jakos sobie radzi. Pytanie co jesli jakims cudem zwiesi sie tak ze przerwanie nie obudzi go z power down, wtedy przeciez WD stoi...

Mariusz

U¿ytkownik "angel" snipped-for-privacy@szas.z.pl> napisa³ w wiadomo¶ci news:c9k9mh$4ol$ snipped-for-privacy@nemesis.news.tpi.pl...

Nie jest to znowu takie trudne:-) Wystarczy, ¿e pod wp³ywem zak³óceñ WD wykona reset, a potem zanim zostanie wykonane zezwolenie na zewnêtrzne przerwanie kolejne zak³ócenie spowoduje przeskok programu w okolice przed wej¶ciem w PowerDown. Równie dobrze mo¿e siê zdarzyæ, ¿e po resecie nie zd±¿ymy za³±czyæ WD, a program pójdzie w maliny. Tak to ju¿ jest z programowym w³±czaniem, ¿e mo¿e nie zadzia³aæ. Konstruktorzy Atmeli ju¿ dawno temu mogli wpa¶æ, ¿eby za³±czaæ WD przez fusebits, skoro wykorzystuj± ten mechanizm do w³±czania/wy³±czania kupy innych rzeczy.

Co mo¿na zrobiæ:

  1. Dobrze filtrowane zasilanie!!! Dodatkowo trzeba mieæ ¶wiadomo¶æ, ¿e z ka¿dego pinu procesora zak³ócenie mo¿e dostaæ siê na zasilanie poprzez diody zabezpieczaj±ce.
  2. W³±czaæ watchdoga w kilku miejscach, a nie tylko na samym pocz±tku programu
  3. Zezwolenie na przerwanie zewnêtrzne jak i globalne EI daæ zarówno na pocz±tku, jak i przed samym PowerDown.
  4. Bezpieczniej jest wychodziæ z PowerDown przez reset sprzêtowy, przynajmniej zawsze zadzia³a.

Tymczasem Jarek

U¿ytkownik "JarekC" snipped-for-privacy@alpha.net.pl> napisa³ w wiadomo¶ci news:c9kcnu$q57$1@213.241.113.72...

albo dac zewnetrznego, ktorego w zaden sposob nie mozna wylaczyc

JarekC napisa³: <big ciach>

wykorzystuj±

I wpadli i w wielu AVRkach tak w³a¶nie jest.

U¿ytkownik "Darek R." snipped-for-privacy@w.pl napisa³ w wiadomo¶ci news:c9lf8o$nqu$ snipped-for-privacy@nemesis.news.tpi.pl...

Tylko w tych najnowszych:-)

Tymczasem Jarek

U mnie jest taka sytuacja, ze sa dwa rozne urzadzenia (kazde ze swoim zasilaczem), a obok nich dwa przekazniki cykajace co kilkanasie sekund. Jedno urzadzenie jest na Atmelu i na raz na ~3h pracy sie wiesza wyswietlajac stosowny komunikat :/ Drugie urzadzenie, sterujace przekaznikami, dziala na PIC-u z wew. WD i tez sie wiesza, tyle ze kilka razy rzadziej.

Jezeli masz WD to stosowanie nic Twojemu programowi nie ujmie, a w nieprzewidywalnej sytuacji moze pomoc. Ja stosuje do prawie wszystkich. Musisz tylko czasami dokladnie sie wczytac w procedury, czy ktoras z nich nie kasuje automatycznie WD. Jako przyklad moge podac funkcje czekajaca na znaki po RS-ie bez WD, a WD byl wlaczony...

ps. PIC-e maja WD wlaczane przy programowaniu bitow sterujacych

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required