mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC Selbstreset


Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte mal fragen, ob ein PIC sich auch selbst resetten kann?
MCLR an Pull-Up und an einen Port. Sobald man den Port auf Low
schaltet wird der PIC resettet. Da nach einem Reset alle Ports
als Eingänge definiert sind, wird das Resetsignal aufgehoben und
es wird wieder gearbeitet. Stimmen meine Vermutungen?

Viele Grüße
Sebihepp

Autor: Zwirbeljupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
natürlich funktioniert das.
Aber warum sollte man einen Portpin verschwenden, wenn man den PIC auch 
per Software "selbstresetten" kann???

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil sich viele PICs (16F...) halt nicht per SW resetten lassen?!

Autor: ·._.·´¯`·. !!! Pirat !!!·._.·´¯`·._.·´¯`·._.· (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

so "natürlich" ist das nicht!

Wenn der Portpin auf Low geht,
wird der Reset "angerissen"
mit minimaler Verzögerung
ist der Port-Pin dann aber
undefiniert und der Resetpuls wird
eventuell nicht vollständig
erkannt (Stichwort: Minimale Resetpulsdauer)

Ich bin nicht sicher ob das immer klappen muss,
Oszillationen, Dauerreset, unsichere Funktion...

P.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, das geht, ist auch von Microchip vorgesehen, wie auch die 
optionale
Taktsyncronisierung zwischen mehreren prozessoren.

Autor: Karlie.W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Weil sich viele PICs (16F...) halt nicht per SW resetten lassen?!

Dann nimm doch einfach einen pinkompatiblen PIC18F...

Der softwaremäßige Selbstreset funktioniert damit einwandfrei.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven Stefan schrieb:
> Weil sich viele PICs (16F...) halt nicht per SW resetten lassen?!

Welcher PIC hat denn keinen Watchdog?
Einfach Watchdog an, Endlosschleife, fertig ist der Reset.

Es zeugt allerdings von schlechter Programmplanung, wenn überhaupt ein 
Reset notwendig ist.
Nimm z.B. eine Statemaschine, die bei Bedarf die Initroutine neu 
aufruft.

In der Regel sollen aber nur bestimmte Sachen neu initialisiert werden.
Es wirkt nämlich unprofessionell, wenn LEDs und Displays flackern, 
Relais klappern usw. (tristate nach einem echten Reset).


Peter

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Per Watchdog ist natürlich eine Möglichkeit. Da muss man dann halt dafür 
sorgen, dass dieser auch regelmäßig zurückgestzt wird.

Ich gebe dir natürlich recht. Ich würde auch nicht so programmieren. Der 
Reset ist halt dafür da, wenn sich der µC komplett aufgehangen hat. 
Dieser Zusatnd sollte aber bei einem ordentlichen Programm nicht 
eintreten.

Sven

Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich gebe dir natürlich recht. Ich würde auch nicht so programmieren. Der
> Reset ist halt dafür da, wenn sich der µC komplett aufgehangen hat.

Wenn sich der PIC aufgehängt hat, kann ich auch nicht mehr in
Software resetten. XD (Ausnahme: Watchdog)

Es geht dabei um mein Projekt, eine kleine Konsole zu bauen.
Die Konsole selber (GameBoy Format) stellt lediglich die Peripherie
zur Verfügung. TFT-Display, Piezo-Speaker und einen Port sowie
natürlich die Stromversorgung. Über eine Buchsenleiste lassen sich
dann die Spielemodule einstecken. Auf der Konsole sitzt aber noch ein
PIC, welcher die Initialisation übernimmt, ein kleines Logo
einblendet und dann das Modul aktiviert (Sofern da eines ist).

Entweder ich aktiviere das Modul indem ich die Stromversorgung mit
Transistoren (oder besser MOSFETs) schalte, oder ich sende mit einem
PIC eben ein Resetsignal. Deswegen wollte ich wissen, ob das möglich
wäre.

Viele Grüße
Sebihepp

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da würde ich aber eher das Modul einschalten, als einen Reset 
auszulösen. Am besten wäre doch, wenn das Modul zwei Pins auf dem 
Stecker miteinander verbindet. Damit weis der PIC im Grundgerät, das ein 
Modul gesteckt wurde und schaltet ein paar 10tel Sekunden später die 
Spannungsversorgung des Moduls ein. Das Modul meldet dann über einen 
Bus, das es bereit ist und schon kann es losgehen. Wäre jedenfalls meine 
Vorgehensweise.

Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm, das schöne ist ja: Ich brauche keine Bestätigung, dass da
ein Modul ist. Ich schalte die Versorgung einfach ein und
entweder es passiert etwas, oder eben nicht. ^^

Da nur Prozessoren und evtl. EEPROMs und diskrete Logik auf dem
Modul sein werden, hält sich der Stromverbrauch auch in Grenzen.
mA, wenn nicht sogar uA.

Als Schalter könnte ich dann Transistoren mit einer möglichst
kleinen Kollektor-Emitter-Schwellspannung benutzen. Zur Not schalte
ich mehrere Parallel. =)
Oder fällt da jemandem etwas besseres ein?


Zurück zum PIC: Macht es dem PIC etwas, wenn er noch keine Versorgung
bekommt (VDD und VSS) aber bereits Logikpegel an den Ports anliegen?
Controller und Modul sind über den selben Bus mit der Peripherie
verbunden. Das Modul ist zu begin noch aus. Der Controller stellt
sicher, dass seine Ports als Eingänge definiert sind, bevor das
Modul aktiviert wird.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.