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
natürlich funktioniert das. Aber warum sollte man einen Portpin verschwenden, wenn man den PIC auch per Software "selbstresetten" kann???
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.
Doch, das geht, ist auch von Microchip vorgesehen, wie auch die optionale Taktsyncronisierung zwischen mehreren prozessoren.
> 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.
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
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
> 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
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.