Hallo, gibt es einen Weg mit einem PIC einen Stromausfall zu erkennen, z.B. das der PIC noch schnell eine Nachricht absetzt oder was in den EEPROM schreibt oder auch das er nach einem Neustart erkennt, das er einen Stromausfall hatte? Danke schon mal für die Aufmerksamkeit.
Versorgungsspannung an einem der I/Os überwachen und bei fehlen dieser das jeweilige Ereignis auslösen. Natürlich muss der Pic mit einem Kondensator noch so lange gepuffert werden, dass ihm genug Zeit bleibt, das jeweilige Ereignis durchzuführen. Die Leitung worüber er die Versorgungsspannung überwacht darf natürlich nich gepuffert werden.
Bevor ich es vergesse es geht um den 18F6627 und ich bastele mehr oder weniger mit C18 daran herum. Bauliche Änderungen können auch nicht mehr vorgenommen werden und ich glaube da wurde kein Kondensator mitspendiert.
Dann ist es natürlich vom Prinzip her schon unmöglich... Wie soll der PIC denn noch etwas machen, wenn er schon keine Versorgungsspannung mehr hat?!
>Bauliche Änderungen können auch nicht mehr vorgenommen werden und ich >glaube da wurde kein Kondensator mitspendiert. Wie soll das gehen ? Der PIC muss einen Moment länger arbeiten, auch wenn die Haupt! Versorgungsspannung schon eingebrochen ist. Wie soll sonst der PIC auf etwas reagieren und Werte im EEPROM ablegen ? Gruß Sven
Gaston wrote: > Bevor ich es vergesse es geht um den 18F6627 und ich bastele mehr oder > weniger mit C18 daran herum. Was sagt denn das Datenblatt dazu ? Beim AVR ist es möglich, die eigene VCC zu messen. Da könnte man bei 4,5V eine Routine aufrufen und bis 2,7V hat er dann Zeit, Daten zu sichern. Peter
Danke schon einmal für die Bemühungen. Der PIC ist ja schon auf etwas größeren Platinen verbaut und da ich von der reinen Elektronik nicht so viel Ahnung habe, kann es schon sein das da auch Kondensatoren mit verbaut wurden aber sicher sein kann ich mir da so nicht. Ich hatte auch schon mal überlegt den Brown-Out-Reset zu aktivieren aber ich weiß nicht genau ob sich damit unterscheiden läßt ob der Strom abgeschalten wurde oder ausgefallen ist; wobei das sicherlich im Nachhinein betrachtet auch gleich ist. Wenn man denn nur den Brown-Out-Reset verwenden kann, fehlt mir noch so der zündende Funken wie man den richtig auswertet bzw. verwendet.
Den Brownout reset kann man dazu nicht verwenden. Wenn der kommt isses zu spaet. Der Brownout reset schicht den Prozessor in einen Reset wenn eine gewisse spannung unterschritten wurde. Was man nehmen sollte : Einen externen Reset baustein, und denn dann an einen Interrupt haengen. Dh einen Interrupt bei 4V ausloesen, und mit Kondensatoren schauen, dass dann noch genuegend Zeit bleibt bis der Prozessor nicht mehr arbeitet.
Wie Peter schon schrieb: Hat denn der PIC wirklich gar keine Low-Voltage-Detection, die vor dem Brown-Out einen Interrupt auslösen könnte? Ich habe so etwas auch schon beim ST7Flite gemacht, dass er einen Interrupt auslöst, schnell noch was ins EEPROM packt und dann eine gewisse Zeitspanne darauf wartet, dass der Brown-Out greift (Falls dies nach x ms nicht zutraf, hat er dann wieder normal seine Arbeit aufgenommen.).
Schade wenn das so ist. Nach dem Reset sollte eigentlich ja das BOR-Register irgendwie gesetzt sein und wenn man das dann auswertet könnte man im Nachhinein eine Fehlermeldung generieren oder das in den Speicher schreiben und das dann per Befehl auslesen z.B. um zu sehen ob die Anlage ausgefallen ist oder sowas in der Art. Wenn man bewusst die Anlage ein- und ausschaltet, muss man halt die Meldung wieder löschen, da man ja weiß das die Anlage aus war. Könnte das so klappen oder liege ich da völlig falsch.
Kurzer Blick ins Datasheet vom PIC zeigt einen High/Low-Voltage Detector. Also einen Interrupt wenn's mit der Spannung abwärts geht. Wieviel Zeit man dann hat hängt allerdings von der Hardware ab (dem schon erwähnten Kondensator). Aber wenn's nur darum geht, nach einem Restart die Ursache festzustellen: Brownout-Reset aktivieren und beim Start in RCON feststellen warum er neu gestartet wurde (power-on, brownout, MCLR, ...). War der Strom ganz weg: power-on, war Unterspannung: brownout.
Also im Endeffekt sollen die Geräte mal Fehlermeldungen generieren und diese sollten sich theoretisch melden wenn sie auftreten. Das ist beim Stromausfall natürlich problematisch bzw. hängt im Betrieb nicht immer ein dran und lauscht. Die anderen Fehler treten dann hoffentlich nur auf, wenn das Gerät noch Strom hat und könnens dann sofort senden oder auf Anfrage (Speicher auslesen der von Testroutinen beschrieben wurde). Mit dem ICD2 einen Stromaus zu testen ist auch so eine Sache bzw. weiß ich nicht recht wie ich das RCON richtig auswerten kann.
> Also im Endeffekt sollen die Geräte mal Fehlermeldungen generieren und > diese sollten sich theoretisch melden wenn sie auftreten. Sowas muss eigentlich ins Gesamtkonzept rein. Vorher. Wenn die Hardware unverrückbar feststeht, dann musst du erst einmal heausfinden, wieviel Zeit dem Controller und seiner Peripherie im Eventualfall bleibt, überhaupt noch irgendwas zu tun. Bis dahin kann man zwar spekulieren bis der Arzt kommt, es ist aber sinnlos. Und wo sollen die Messages hin, was genau soll in den Fällen passieren? Eine Anzeige, die keinen Strom hat, zeigt nichts an. > Mit dem ICD2 einen Stromaus zu testen ist auch so eine Sache bzw. weiß > ich nicht recht wie ich das RCON richtig auswerten kann. Wenn du nicht weisst, wie man ein Register ausliest und die Bits testet, dann wird es wirklich schwierig.
Naja, das Projekt wurde mir auch alles so halbfertig zugeschanzt. Die Geräte sollen über RS-232 angesprochen werden. Es stöpselt sich also jemand mit einem PC ein und kann dann lustige Befehle abschicken. Die Fehlermeldungen sollen nur sagen "Achtung, ich hier hab den und den Fehler". Es reicht also per U(S)ART noch 3 Byte rauszuschießen. Natürlich klappt das nur wenn auch jemand angeschlossen ist der mitliest, darum muss man es dann wohl für den Fall in den EEPROM schreiben und später dann mal auslesen. Register auslesen werde ich schon hinkriegen aber soweit ich das mitgekriegt hab muss man ja dann auch im Reset die Bits selber setzen oder so in der Art.
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.