Reset / MCLR

in Arbeit


zurück zu PIC-Prozessoren , Elektronik , Homepage

Reset
Power-On-Reset

MCLR-Pin
Reset durch WDT
Brown-Out-Reset



Reset

Wenn der PIC mit der Abarbeitung seines Programms anfängt, so soll er das von einem bekannten festgelegte Startzustand aus tun. So steht dann z.B. der programme counter (PC) auf Null, (so dass das Programm vom Anfang an ausgeführt wird) und die diversen Hardware-Teile des PIC befinden sich ein einem "sicheren" Zustand (z.B. sind alle Port-Pins auf Input geschaltet).

Erreicht wird das durch ein Reset des Chips. Es gibt mehrere Möglichkeiten ein Reset auszulösen.


nach oben

Power-On-Reset

Beim Einschalten der Betriebsspannung (Vdd) führt ein PIC automatisch ein Reset aus. Dadurch ist er ohne weitere Maßnahmen in einem definierten Ausgangszustand.
Das Einschalten der Betriebsspannung erkennt der PIC im Übrigen am schnellen Anstieg des Vdd-Pegels. Dieser muss mindestens 50mV/ms betragen (also von 0V auf 5V in maximal 100 ms), damit ein Reset sicher ausgelöst wird. Das sollte normalerweise kein Problem darstellen.


nach oben

MCLR-Pin (master clear)

Jeder PIC hat ein MCLR-Pin. Wird es auf low gezogen (Vss), dann stoppt der PIC seine Arbeit und führt ein Reset durch. Wird dann das Pin wider auf High gezogen (Vdd), dann beginnt der PIC  seine Arbeit vom Beginn an. Damit der PIC normal arbeiten kann, muss dieses Pin also auf High liegen. Nur ganz wenige PICs haben an diesem Input-Pin einen internen pull-up-Widerstand (PIC16F88x). Bei diesen PICs kann das Pin einfach unbelegt gelassen werden. Bei allen andern PICs miss das Pin mit Vdd verbunden werden. Dabei ist anstelle einer direkten Verbindung ein Hochziehwiderstand (10..20 kOhm) zu verwenden.

Über einen Reset-Taster verbindet das MCLR-Pin mit Vss. Drückt man den Taster kurz, dann startet der PIC neu. Eigentlich ist das MCLR-Pin nur deshalb vorhanden, damit man einen externen Reset-Taster anschließen kann. Braucht man keinen Reset-Taster, dann ist auch das MCLR-Pin überflüssig. Moderne PICs erlauben es deshalb, in der Konfiguration das MCLR-Pin zu einem normalen IO-Port-Pin zu machen. Dadurch steht dann ein zusätzliches IO-Pin zur Verfügung.

Der Reset-Puls an MCLR muss wenigstens ein paar Mikrosekunden lang sein (>2..5 us), damit er vom PIC akzeptiert wird.

nach oben

Reset durch WDT

Der Watchdog-Timer (WDT) eines PIC ist sozusagen sein Tot-Mann-Knopf.

Der Watchdog ist ein kleiner Timer im PIC, der einen eigenen internen RC-Taktgeber besitzt, und somit von der Funktion des PIC unabhängig ist. Dieser Watchdogtimer (WDT) löst, wenn er eingeschaltet ist, alle 18 ms (Toleranzbereich: 7 ms ... 33 ms) ein Reset des PIC aus. Der Reset kann nur verhindert werden, wenn das im PIC laufende Programm den WDT immer wieder zurücksetzt, bevor er einen Reset auslösen kann. Dieses Rücksetzen erfolgt mit dem Befehl clrwdt (oder sleep).

Das ordnungsgemäß laufende Programm muss also so programmiert werden, dass in kurzen Abständen (z.B. alle 5 ms) der Befehl clrwdt ausgeführt wird, dann kommt der WDT nicht dazu ein Reset auszulösen. Stürzt das Programm aber ab, wird der WDT nicht mehr gelöscht und startet den PIC neu.

Da 18 ms eine recht kurze Zeit ist, kann man sie durch einen dem WDT vorgeschalteten Vorteiler verlängern. Das ist aber der Vorteiler des Timer0. Wenn man disen Vorteiler für den WDT einsetzt, steht er dem Timer0 nicht mehr zur Verfügung.

Neuere PICs (z.B. PIC16F88x) haben WDTs deren Timeout-Periode sich durch einen zusätzlichen 16-Bit-Vorteiler im Bereich von 1 ms bis zu 256 Sekunden einstellen lässt.

nach oben

Brown-Out-Reset

Ein kurzer Aussetzer in der Betriebsspannung des PIC kann zum Absturz oder zum Weiterarbeiten mit verfälschten Werten führen. Die "Brown out Reset-Option" überwacht die Betriebsspannung. Falls die Betriebsspannung für 0,1 ms oder länger unter 4 V fällt, wird sofort ein Reset ausgelöst. Ist die Betriebsspannung wieder im sicheren Bereich wartet der PIC noch ca. 70 ms und startet dann neu.

Die hier beispielhaft angegebene Schaltschwelle von 4 V gilt für alle älteren Typen. Modernere PICs haben eine einstellbare Schaltschwelle, wodurch BOR auch eingesetzt werden kann, wenn der PIC mit einer geringen Betriebsspannung betrieben wird.

nach oben

zurück zu PIC-Prozessoren , Elektronik , Homepage

Autor: sprut
erstellt am: 06.09.2011
letzte Änderung: 15.08.2012