|
|
|
|
|
|
Was ist ein Reset-
Reset bedeutet in der Elektrotechnik das
elektrische Zurücksetzen einer Baugruppe oder Schaltung auf
einen eindeutig definierten Anfangszustand. Bei Prozessoren und
hier bei den Einchipcomputern geschieht das Zurücksetzen
durch ein Signal an einem der Pinanschlüsse.
-
-
Beim MC80515 ist das der Pin 10. Liegt an
ihm ein logisches 0-Signal hört die CPU auf zu arbeiten.
Dieser Zustand wird beim Start des Mikrocontrollers genutzt um
sicherzustellen, dass die CPU erst zu arbeiten beginnt, wenn die
Versorgungsspannung eingeschwungen ist und der Takt stabil
anliegt. Auch später kann dieses Signal dazu genutzt
werden, um die CPU anzuhalten.
-
Das Signal muss, wenn alle
Umgebungsparameter stimmen noch für mindestens 2 Taktzyklen
anliegen. Dies wird durch die Flankenerkennung auf dem Chip
erzwungen. Wird das Signal nun von 0 auf 1 gelegt, startet der
Mikrocontroller seine Arbeit im Programmspeicher, bei Adresse
CODE 0000h. Zuvor hat er eine Reihe von Setzungen im
SFR-Speicher vorgenommen, die in der nachfolgenden Tabelle
aufgelistet sind.
-
Der Reset kann auch durch interne Vorgänge
im MC80515 eingeleitet werden. Wurde der Watchdog-Timer, der die
Systemsicherheit erhöhen soll, einmal gestartet und läuft
er über, weil sich das System im Programm aufgehängt
hat, dann startet auch er einen Reset. Dies bedingt eine Reihe
von Überlegungen bei der Programmierung von
Reset-Einstiegs-Programmteilen, denn die vom Mikrocontroller
gesteuerte Hardware besitzt im Fall des Reset durch den
Watchdogtimer sicher einen anderen Zustand, als beim Neustart
des Systems. Das gilt natürlich auch für einen
eventuell vorhandenen Reset-Knopf.
|
|
|
|
-
|
|
|
|
Liste der Zustände nach einem Reset
|
|
|
|
|
|
|
|
- interner
RAM
|
- Der
interne RAM wird durch den Reset nicht beeinflusst. Nach dem
Anlegen der Versorgungsspannung sind die Speicher undefiniert.
Nach einem Warm-Reset, bei dem die Betriebsspannung definiert
erhalten blieb, besitzen der untere und der obere RAM ihre
ursprünglichen Werte.
|
|
|
|
SFR-Register
|
Die Tore P0-P5
führen ein logisches 1-Signal das durch einen ca. 50kOhm
großen Pull-Up Widerstand erzeugt wird.
|
|
|
|
|
Der
Stackpointer SP enthält die Adresse 07h
|
|
|
|
|
Die aktuelle
Registerbank ist Bank 0, denn im Flaggenregister wurden die
Flaggen gelöscht.
|
|
|
|
|
Die
Interruptbehandlung wurde abgeschaltet und die
Interruptpriorität auf den Standard zurückgesetzt.
|
|
|
|
|
Da sich das
Handbuch nicht umfassend mit den Resetbedingungen
auseinandersetzt, sondern nur behauptet, dass der interne
Speicher nicht beeinflusst wird, kann nur vermutet werden, dass
auch die Funktionen der Timer des AD-Wandlers usw. abgeschaltet,
respektive deren SFR-Register auf 0 gesetzt werden.
Wer sichergehen
will, dass er nach einem Reset oder Neustart des Controllers
wirklich das bekommt was er haben will, der setzt in seinem
Reset-Programm die benötigten Register so, wie sie sein
sollen ... ohne sich auf Vermutungen zu verlassen.
|
|