mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Kurze Spannungsunterbrechung erkennen


Autor: Dirk Schmidt (disc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich hätte da mal eine Frage und Bitte um Tipps zu folgendem Problem.

Ich habe eine Schaltung mit einem AVR 644, an der verschiedene Sensoren 
angeschlossen sind. Bei einem normalen Start werden diese zunächst 
genauer kalibriert und getestet, alles mit ein wenig Zeitaufwand 
verbunden.

Ich möchte nun kurze Spannungsunterbrechungen im Sekundenbereich (bis 
ca. 2-3 Sekunden) erkennen, um dann quasi einen Warmstart ohne 
Kalibrierungen durchführen zu können. Ausserdem sollen diese 
Unterbrechungen zur Information und Fehlerdiagnose angezeigt werden.

Die Brown-Out-Detection kann ja nun nicht unterscheiden, wie lang die 
Unterbrechung war (AVR nur normal ausgeschaltet oder kurz Spannung 
weg)?!

Ich hab mit daher die folgende einfache Schaltung überlegt:

    VCC
     |
     |
     -
    | |
    | |  R
    | |
     -
     |
     |----- AVR-Port
     |
   -----
   ----- C
     |
     |
    GND

Bei längeren Spannungsunterbrechungen wird der Kondensator über den 
Widerstand und die angeschlossenen Verbraucher entladen. Beim Starten 
des AVR (die Port-Pins sollten nach einem Reset auf Input, PullUp 
disabled stehen !?) wird zunächst der Pegel des (digitalen) Ports 
abgefragt. Wenn dieser noch einen High-Pegel hat, kann von einer kurzen 
Unterbrechung ausgegangen werden und ein Warmstart durchgeführt werden.
Als Werte für R und C hatte ich so an 4,7M und 1µF gedacht. Ich hoffe, 
dass C nicht zu klein ist ?!?

Kann das so funktionieren oder gibt es da evtl. eine andere Möglichkeit, 
die kurze Spannungsunterbrechung zu erkennen.

Gruß und vielen Dank!

Dirk

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wird so vermutlich nicht funktionieren, da nicht man i.d.R. nicht 
sagen kann, was der Port vom AVR macht, wenn der µC keinen Saft hat. Es 
ist durchaus möglich, dass der Kondensator beim Ausfall der 
Spannungsversorgung ruckzuck entladen wird. Wenn man zwischen den 
Portpin und den Kondensator noch einen ausreichend hochohmigen 
Widerstand einbaut, könnte es aber klappen.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn deine Stromversorgung aus einem Trafo mit Brückengleichrichter 
kommt, kannst du in Reihe eine Diode zum Siebelko schalten. An der 
Kathode der Diode hast du dann die gleichgerichtete, aber ungesiebte 
Spannung. Da kannst du über einen Widerstand an den Interruteingang des 
Controllers gehen.

MW

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Dirk Schmidt (disc)

>Die Brown-Out-Detection kann ja nun nicht unterscheiden, wie lang die
>Unterbrechung war (AVR nur normal ausgeschaltet oder kurz Spannung
>weg)?!

Doch. Im MCSR stehen verschiede Bits, die sagen, ob der Reset durch 
Broun-out oder Power On Reset ausgelöst wurde.

MfG
Falk

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ggf die Leitung zum AVR Port zusätzlich zu Johannes´s Widerstand noch 
über einen Schmitt-Trigger führen, dass du am AVR Port entweder High 
oder Low hast und nicht irgendeinen undefinierten Pegel.

Du könntest auch die Leitung zum AVR mittels eines FETs unterbrechen, 
wenn keine Versorgungssapnnung da ist (über Gate wird das Fehlen der 
Spannung erkannt und der FET schaltet hochohmig)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Schlumpf (Gast)

>ggf die Leitung zum AVR Port zusätzlich zu Johannes´s Widerstand noch
>über einen Schmitt-Trigger führen, dass du am AVR Port entweder High

Der AVR hat schon Schmitt-Trigger Eingänge.

MFG
Falk

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay, das wusste ich nicht, da ich mit dem AVR selber noch nix gemacht 
hab.

Autor: Dirk Schmidt (disc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
das ging ja fix mit den Antworten.

@Johannes
Im Datenblatt des AVR steht, dass die Port-Pins hochohmig sind, bei 
einer "Reset-Condition". Da würde ich den stromlosen Zustand eigentlich 
dazuzählen.
Zitat: "The port pins are tri-stated when reset condition becomes 
active,
even if no clocks are running."
Aber die Idee mit dem zusätzlichen Widerstand ist nicht schlecht.

@Michael
Einen Trafo mit Brückengleichrichter hab ich nicht. Die letzte Stufe der 
Spannungsversorgung wird mit einem Linearregler durchgeführt. Ich hab 
auch schon überlegt, an den da vorhandenen Siebelko zu gehen. Aber ich 
denke, der ist ja recht schnell vom Regler wieder aufgeladen, bevor der 
ARV überhaupt richtig in die Gänge kommt und ich da was messen kann.

@Falk
Das Brown Out Flag im MCSR sagt aber leider nicht aus, wie lang die 
Stromunterbrechung war, die zum Brown Out geführt hat. Es zeigt auch 
etwas an, wenn der Strom einfach ganz normal nach Benutzung 
unterbrochen/abgeschaltet wurde. Es ist beim Start (ich lese das Flag da 
ein und setzte es nach dem Lesen wieder zurück) eigentlich nur nicht 
gesetzt, wenn man manuell ein Reset (per Reset-Taster) bei vorhandener 
Spannung durchführt hat.

Gruß

Dirk

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk Schmidt wrote:
> Im Datenblatt des AVR steht, dass die Port-Pins hochohmig sind, bei
> einer "Reset-Condition". Da würde ich den stromlosen Zustand eigentlich
> dazuzählen.
> Zitat: "The port pins are tri-stated when reset condition becomes
> active,
> even if no clocks are running."
> Aber die Idee mit dem zusätzlichen Widerstand ist nicht schlecht.
Wenn der µC keinen Saft hat, hast Du aber keine Reset-Condition, sondern 
eine "Kein-Saft-da-Condition"! Reset-Condition setzt voraus, dass VCC im 
angegebenen Betriebsbereich liegt.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Dirk Schmidt (disc)

>Das Brown Out Flag im MCSR sagt aber leider nicht aus, wie lang die
>Stromunterbrechung war, die zum Brown Out geführt hat. Es zeigt auch

Naja, du willst die ja nicht messen. Ob das nun 1ms oder 3s waren ist 
doch egal. ABER!
Es gibt einen Unterschied zwischen Brown Out und Power ON Reset! Und DAS 
willst du doch!

>etwas an, wenn der Strom einfach ganz normal nach Benutzung
>unterbrochen/abgeschaltet wurde.

Nein, dann ist NUR der Power On Reset aktiv, signalisiert durch PORF im 
Register MCUCSR.

> Es ist beim Start (ich lese das Flag da
>ein und setzte es nach dem Lesen wieder zurück) eigentlich nur nicht
>gesetzt, wenn man manuell ein Reset (per Reset-Taster) bei vorhandener
>Spannung durchführt hat.

Das ist ein exteren Reset, signalisiert durch EXTRF. Lies das Kapitel 
"System Control and Reset" nochmal genau.

MfG
Falk

Autor: Dirk Schmidt (disc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
@Falk
Der Tip mit dem PORF ist gut! Da kann ich mir evtl. die ganze Schaltung 
oben sparen :-).
Wie Du schon bemerkt hast, hatte ich mir das Kapitel wohl schon 
durchgelesen, aber wohl nicht genau genug ;-). Ich werde die Sache 
gleich mal ausprobieren.

Vielen Dank.

Dirk

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.