mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MIttels Brown Out Detektion Einen wert ins Eeprom schreiben


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich möchte bei einem Spannungsabbruch noch einen Wert im Code ins Eeprom 
schreiben, sozusagen als Backup.

Ich verwende einen ATXMEGA128A1 und habe nun den kurzen Beitrag über 
Brown Out Detektion hier im Forum gelesen. Nun frage ich mich, wie ich 
das ganze im C-Code umsetzen kann.

Gibt es eine ISR Routine, welche direkt mit dem BO Detektion verbunden 
ist, so das bei Spannungsausfall diese Routine aufgerufen wird?

Vielen Dank für eure Hilfe

Autor: Loonix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias schrieb:
> Gibt es eine ISR Routine, welche direkt mit dem BO Detektion verbunden
> ist, so das bei Spannungsausfall diese Routine aufgerufen wird?

Nein. Macht auch keinen Sinn, da im BOR-Fall die Spannung nicht mehr zur 
Versorgung des Controllers+Perpiherie ausreicht. Eventuell 
angeschlossene Schaltungsteile sind ebenfalls Verbraucher, die den Rest 
an Energie vernichten. Du brauchst eine aktive Überwachung der 
Versorgungsspannung und einen geeigneten Energiespeicher (z.B.Elko) der 
die Zeit für das Schreiben des EEPROM überbrücken kann.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt keine isr, aber nimm nimm nen interrupt pin und konfiguriert 
denn auf low-level, hänge den an deine Versorgung und spendiert deinem 
mega nen Kondition, dass der noch nachläuft...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

jo das habe ich hier nun auch so gelesen.

http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

Kennt jemand eventuell einen sehr zuverlässigen IC zur externen BO 
Detektion?
Ich kenen zwar die vorgeschlagenen Dioden , Elko schaltungen würde 
jedoch lieber auf etwas fertiges zurückgreifen.

Vielen Dank

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst mit dem ADC Deine VCC messen und bei Unterschreitung den 
EEPROM beschreiben.
Der Schwellwert muß aber noch genügend oberhalb des Brownout sein.


Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es möglich des VCC Pin auf einen positiven ADC Pin zu geben und dann 
mittels internem Komparator diesen mit VCC zu vergleichen mit einer z.B. 
10 % Hystherese.

Wenn nun der Komparator schaltet, dann soll eine ISR aufgerufen werden, 
in welcher ich die EEPROM Schreibmethode aufrufe.

Vielen Dank für eure Hilfe

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Controller über einen Komparator verfügt, dann kannst du von 
diesem einen Interrupt auslösen lassen. Ist einfacher als den ADC zu 
verwenden.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hört sich doch gut an.

Ich nehme den positiven Pin des internen Komparators des XMEGA und 
schließe ihn an VCC an. Den negativen Pin kann ich mittels 6 Bit VCC 
Scaler des XMEGA mit z.B. VCC*58/64 belegen. MIt einer kleinen Hyterese 
sollte dann bei ca. 3 V die ISR augerufen werden. Der XMEGA hat da 
wirkich viele Funktionen laut DB intern bereits vorhanden.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem könnte sein, wenn die Spannung dann zusammenfällt.
Die Spannung auf dem positiven Pin ist vom VCC Pin abgegriffen. Nun 
sinkt diese Versorgungsspannung. Daraufhin sinkt jedoch auch die intern 
generierte negative Spannung. Somit unterschreitet der Wert des 
positiven Pins niemals den Wert des negativen.

Also geht das wohl so nicht.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... Also geht das wohl so nicht ...

Sehe ich auch so. Da muss eine stabile Referenzspannung ran. Hat der 
Controller eine interne Referenz die lange genug "durchhält", wenn die 
Spannung fällt? Bei einer 3,3 V Versorgung, würde ich schon bei 3,15 V 
"zuschlagen". Vielleicht kannst du das Fallen der Spannung auch an einem 
anderen Punkt deiner Schaltung feststellen (z. B. vor dem Stabi-IC oder 
so).

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich müsste eigentlich nur die VCC in einem zweiten Pfad mit einer 
starken Elko-Schaltung Puffern und als Last für den Zweig nur den 
negativen Pin des uC nehmen. Der sollte dann viel länger durchhalten und 
so die Referenz bilden können.

Kennt jemand von euch nen fertigen Bausatz zum Zwischenpuffern von 3,3 
V.

Vielen Dank

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht nun doch so:
Ich nehmen die 5 V Versorgungsspannung Vin direkt vom Stecker mit einem 
Spannungsteiler auf 3,3 V auf einen freien INT0 Pin beim Port A des 
XMEGA.
Die VIn geht auf einen Spannunsgwandler von 5 -> 3,3 V der mit ca. 110 
uF vorgepuffert wird und einer zusätzlichen Diode.

wie hier: 
http://www.mikrocontroller.net/articles/Speicher#E...

Ich triggere wie beschrieben den INTO auf die negative Flanke und habe 
dann noch ein paar milisekunden Zeit um zu schreiben.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit nem Goldcape und der Diode bekomme ich ne Bufferzeit von 320 ms hin.
Das dürfte locker ausreichen um ins EEPROM zu schreiben.

Autor: Paulchen Panther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Wenn du nen Spannungsregler vor Vdd für den µC hat, kannst du die 
Spannung dort messen. Bevor der Elko vor dem Spannungsregler leer ist, 
hast du mehr Zeit.

Gruß
PP

Autor: thisamplifierisloud (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für´n Aufwand ...
Beim zilog z8encore ist BO-Detection on-chip.

Wieder ein guter Grund, nicht auf die atmel-Schiene umzusteigen ! :-)

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
thisamplifierisloud schrieb:
> Was für´n Aufwand ...
> Beim zilog z8encore ist BO-Detection on-chip.
>
> Wieder ein guter Grund, nicht auf die atmel-Schiene umzusteigen ! :-)

Wenn Du den thread gelesen hättest, wüsstest Du, daß auch bei den Atmels 
die BO Detection on-chip ist.
Ziel ist es, etwas (EEPROM schreiben) zu tun, kurz bevor die BO 
zuschlägt...

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.