Jedną ze szczególnie irytujących odmian błędów w systemie kontrolowanym przez mikroprocesor jest nieoczekiwany reset mikroprocesora. Ważnym narzędziem do debugowania tego rodzaju problemów jest lista możliwych przyczyn. Co może spowodować nieoczekiwany reset mikrokontrolera?
microcontroller
microprocessor
reset
debugging
Stephen Collings
źródło
źródło
Odpowiedzi:
W układach PIC i dsPIC zaobserwowałem następujące przyczyny nieoczekiwanego resetu.
Sprzęt komputerowy:
Oprogramowanie:
W niektórych dsPIC rejestr RCON przechowuje bity wskazujące przyczynę resetu. Może to być bardzo pomocne podczas debugowania.
źródło
Pin RESET musi być odpowiednio napędzany przez obwód resetu monitorujący napięcie za wysokie / za niskie i wytwarzający wystarczająco długi sygnał resetowania. Mając to na uwadze, moje doświadczenia związane z niekontrolowanym resetowaniem sprzętu pochodzą z:
źródło
Jedną dodatkową możliwością, której nie widziałem na tej liście, jest urządzenie obsługujące ICSP. Jeśli niewystarczające podciągnięcia są stosowane na liniach, które wyzwalają w trybie programowania szeregowego obwodu, czasami można przypadkowo wejść w ten tryb. Prowadzi to do resetu po krótkim czasie, gdy żadna aktualizacja programu nie jest wysyłana do wyznaczonych linii odbiornika szeregowego. Podejrzewam, że wewnętrzny zegar nadzorujący wymusza resetowanie, jeśli ICSP zostanie uruchomiony i nie zostaną wysłane żadne dane programowe. To jest błąd, który popełniłem i spędziłem dużo czasu na szukaniu 16F876.
źródło
Upewnij się, że jeśli używasz układów logicznych CMOS lub TTL w swoim obwodzie, że mają one odpowiednie kondensatory odsprzęgające w poprzek Vdd i masy (zwykle 0,1 uF). Używałem CD4021 w projekcie, a kiedy był w użyciu, najwyraźniej powodował pewien skok, który powodował restart mikroprocesora. Następnie cykl się powtórzy. Dlatego też dobrym pomysłem jest umieszczenie na początku kodu oczywistej sekwencji testowej (np. Kilkukrotne miganie diody LED), abyś wiedział, że mikroprocesor działa i wykonuje kod.
źródło
To jedna z tych rzadkich rzeczy, które mogą się pojawić:
Miałem projekt z mikrokontrolerem, który sporadycznie się resetuje. Krótko mówiąc, okazuje się, że niektóre opcje musiały być włączone lub wyłączone, w przeciwnym razie mogą wystąpić resety. Dowiedziałem się o tym, czytając erratę po tym, jak zrezygnowałem ze wszystkiego innego.
Teraz mam w zwyczaju czytać erratę, zanim jeszcze zdecyduję się użyć chipa, aby dowiedzieć się, w co się pakuję i czy jest to coś, z czym mogę sobie poradzić. Niestety, po ukończeniu studiów tak naprawdę nie miałem nikogo, kto mógłby mnie pouczyć o powszechnych praktykach, więc w moim prawdziwym świecie nauka polegała na niepowodzeniach i frustracji.
źródło