Forum: Mikrocontroller und Digitale Elektronik Stromausfall PIC


von Gaston (Gast)


Lesenswert?

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.

von Guest (Gast)


Lesenswert?

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.

von Gaston (Gast)


Lesenswert?

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.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

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?!

von Sven (Gast)


Lesenswert?

>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

von Peter D. (peda)


Lesenswert?

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

von Gaston (Gast)


Lesenswert?

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.

von GPS (Gast)


Lesenswert?

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.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

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.).

von Gaston (Gast)


Lesenswert?

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.

von Andreas K. (a-k)


Lesenswert?

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.

von Gaston (Gast)


Lesenswert?

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.

von Andreas K. (a-k)


Lesenswert?

> 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.

von Gaston (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.