Strona 1 z 1

stacja restartu

: 28 sie 2015, 15:49
autor: Grzesio RA
Ktoś chętny wybrać się na cietka i aresztować stację ? Potrzebna jest tylko gwiazdką i imbus

Re: stacja restartu

: 29 sie 2015, 21:12
autor: sp8ebc
A to koledzy nie wiedzą co to jest sprzętowy watchdog? Albo jakiś układ nadzorujący? ;) Tak żartem oczywiście..

Re: stacja restartu

: 30 sie 2015, 13:46
autor: eltomek
sp8ebc pisze:A to koledzy nie wiedzą co to jest sprzętowy watchdog? Albo jakiś układ nadzorujący? ;) Tak żartem oczywiście..

Wiedzą wiedzą :) Sprawa rozchodzi się o 2 problemy, które zaczęły wychodzić dopiero po sezonie, stacja wisiała na drzewie od września do kwietnia i działała bez problemów, po czym musiała nastąpić jakaś degradacja parametrów kondensatorów pewnie, bo czego innego, skoro prawie wszystko jest solid-state.

Modem GSM mocno obciąża impulsowo przetwornicę PWM, na której wisi też zasilanie mikrokontrolera (błąd designowy), przez co zdarza się, że mikrokontroler się resetuje (oscylacje).
Złośliwość losu doprowadziła do tego, błędy są dwa, a nie tylko jeden. W kodzie inicjalizującym zegary (w tym ACLK, na którym bazuje WDT) jest błąd, konkretnie konflikt DCO (którego powinienem zatrzymać, a nie zatrzymałem) oraz kryształu 32kHz. Na czas ustawiania zegarów WDT jest zatrzymywany, no bo czekamy na zegar, na którym będzie działał. WDT jest odpalany zaraz po ustabilizowaniu ALCK, ale podczas tej stabilizacji program wpada w nieskończoną pętlę.

Stacje są upgradowalne zdalnie, ale żeby było jeszcze bardziej złośliwie to zarówno bootloader jak i program stacji mają ten błąd (reuse kodu ;-) ), a bootloader jest zabezpieczony przed upgradem (no bo możnaby go przypadkowo uszkodzić). Czyli reset naszej stacji pomoże na to, że ta nie będzie się resetować, ale jak się zresetuje to może znów wystąpić problem nieskończonej pętli, więc musimy wymienić płytkę z mikrokontrolerem.

Stacja którą będziemy zaraz wieszać ma podniesione softwarowo napięcie na rdzeniu i usunięty błąd w inicjalizacji zegarów (w bootloaderze i programie), więc nawet w przypadku resetu mikrokontroler powinien podnieść się bez problemów.

Zacząłem kiedyś pracować nad zewnętrznym układem nadzorującym opartym na TC54 (http://www.microchip.com/wwwproducts/De ... oduct=TC54), ale odpuściłem bo uznałem, że po to są WDT, żeby ratowały skórę w takich sytuacjach - ale wtedy nie wiedziałem jeszcze o opisanych wyżej problemach :)

Trochę fotek nowej stacji w galerii: https://goo.gl/photos/tx3Dt3J3ter3jPmU6

Pozdrawiam,
Tomek

Re: stacja restartu

: 30 sie 2015, 14:01
autor: eltomek
Grzesio RA pisze:Ktoś chętny wybrać się na cietka i aresztować stację ? Potrzebna jest tylko gwiazdką i imbus
Jeślibyście się ktoś wybierał na Ciecień zresetować stację to warto, żebym wcześniej dał mu nową płytkę. Reset (zdalny upgrade już czeka jak tylko stacja wstanie) pomoże tylko na 50% problemów - stacja nie powinna się już resetować. Ale gdyby jednak z jakiegoś powodu się zresetowała to może ale nie musi skończyć się tak samo.

Re: stacja restartu

: 30 sie 2015, 14:08
autor: 3apik
Tomek! Jestem pod wrażeniem. Profeska. Wielki szacun!

Re: stacja restartu

: 01 wrz 2015, 15:22
autor: sp8ebc
Ta stacja wisi na drzewie?????? A jak załatwiacie takie sytuacje jak ta? Ktoś tam wychodzi ze sprzętem do prac wysokościowych? Na Chełmie koło Grybowa mamy problem z dostaniem się to szafki 3m nad ziemią, do czego potrzebna jest drabina, której nie ma u żadnego sąsiada a wy hasacie na szczyt drzewa. Serwis anemometru robimy ze zwyżki albo z rusztowania.. Montażu czegokolwiek na drzewach bym się nie podjął, choć słyszałem o co najmniej jednej stacji bazowej WiFi w takim miejscu :)

Ja zacząłem używać układu ADM696 od Analoga. Niestety TME ostatnio wycofało się z dystrybucji wersji DIP ale oczywiście jest jeszcze SMD. Jest on dość tani, pracuję w temperaturach przemysłowych i ma bardzo wiele bajerów. Zaczynając od przytrzymania resetu przez 50ms po włączeniu zasilania, idąc przez monitorowanie napięcia a kończąc na watchdogu. Dodatkowo możesz sobie dowolnie zmieniać czas oczekiwania watchdoga na zmianę jego pinu sterującego. Domyślnie jest około 1.6 sekundy ale podpinając zewnętrzną pojemność można to zwiększać w sumie w nieskończoność z tym, że wydłużeniu ulega również czas stanu aktywnego na linii RESET w przypadku zwieszenia procka.

Jedynym problemem była by u Ciebie aktualizacja softu, podczas której jak się domyślam procek ma wyłączone wszystkie przerwania oraz I/O i nie robi nic innego oprócz zapisywania pliku w pamięci flash. Można to obejść ustawiając odpowiednio długi czas oczekiwania albo ustawiać linię od strony procka w stan wysokiej impedancji. Wtedy watchdog jest w ogóle wyłączony i działa jedynie monitor zasilania.

Nie jest to zbyt eleganckie rozwiązanie ale za to bardzo inżynierskie :) Ja zacząłem w pewnym momencie miewać problemy z prockami, które losowo nie startowały poprawnie po włączeniu zasilania i to okazało się być bardzo skutecznym rozwiązaniem...

EDIT EDIT: Przeglądnąłem fotki i widzę, że sterownik robisz na zasadzie płytka główna + dautherboard. Ja poszedłem we własną płytkę PCB, co ma swoje duże zalety ale niestety odbija się tez czkawką. Zmontowanie jednego egzemplarza zajmuję jednak trochę czasu z racji, że mam tam procka w obudowie LQPF100 + PHY do Ethernetu z LPQF48 + większość pozostałych elementów też jest SMD. Narazie mam zbyt małą produkcję żeby myśleć o montażu maszynowym a jest ona już na tyle duża, żeby siedzieć całe weekendy...

A ten procek to co to jest? Wnioskując pod pinach IO coś na Intelu 80C51 ale co dokładnie?