Forum: Analoge Elektronik und Schaltungstechnik Schaltung um eine Spannung zu messen ohne AD wandler


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jumper M. (jumper1416)


Lesenswert?

Hallo,
ich wollte versuchen die Versorgungsspannung an meinem Atmega zu messen, 
dies aber nicht über den AD Port, sondern über einen Digital Port. Also 
die Schaltung soll so sein, dass bei einem Spannungseinbruch, am 
Digitalport nur eine 0 ist. Hat jemand eine Idee oder Beispielschaltung 
wie das klappen könnte? Es soll ein Kondensator geben, um den Atmega 
noch kurz mit Strom zu versorgen, sodass ich den Spannungsabfall 
detektieren kann.
Vielen Dank schonmal im vorraus!

von Gustl B. (gustl_b)


Lesenswert?

Komparator heißt das Bauteil.

von Carsten B. (cbr)


Lesenswert?

Das Stichwort hierfür ist Komparator mit Hysterese.

von Jumper M. (jumper1416)


Lesenswert?

Achso okay kannte ich nicht.
Vielen Dank!

von Der Zahn der Zeit (Gast)


Lesenswert?

Ich kenne die Atmegas nicht, aber haben die nicht, wie bei vielen 
anderen µCs üblich, eingebaute Komparatoren und 
Referenzspannungsquellen?

von pittiplatsch (Gast)


Angehängte Dateien:

Lesenswert?

Schade.

Ordentliche Controller haben eine Low-Voltage-Detection.
Die muss man nur einschalten und evtl. konfigurieren.

Dein Controller gehört wohl nicht dazu.

von Elias K. (elik)


Lesenswert?

pittiplatsch schrieb:
> Dein Controller gehört wohl nicht dazu.

Die Atmegas, die ich kenne, haben sowas. Heißt hier 
"Brown-Out"-Detection BOD. Typischerweise zusammen mit dem POR 
"Power-On-Reset". Oft auch mit einstellbarer Schaltschwelle.

von Elias K. (elik)


Lesenswert?

Ansonsten lässt sich mit einem digitalen GPIO und einem RC-Glied eine 
Spannung einlesen. Dazu wird die Schaltschwelle des GPIO und das 
RC-Delay genutzt. Dazu braucht es noch einen Timer und ein wenig Mathe.

Siehe z.B. hier: 
https://www.raspberrypi-spy.co.uk/2012/08/reading-analogue-sensors-with-one-gpio-pin/

von Der Zahn der Zeit (Gast)


Lesenswert?

Elias K. schrieb:
> Schaltschwelle des GPIO
= Komparator. Leider mit sehr weit variierender Spannung spezifiziert. 
Und außerdem abhängig von der Betriebsspannung (sinkt proportional zur 
sinkenden Betriebsspannung).

Elias K. schrieb:
> digitalen GPIO und einem RC-Glied eine Spannung einlesen
Er braucht nicht Spannung einlesen, sondern nur nur vergleichen. Und 
selbst Einlesen zu diesem Zweck ginge nicht: Auch dieser "ADC" ist 
abhängig von der Betriebsspannung und würde beim Messen derselben immer 
nur fast den selben Wert liefern. Wie beim Vorschlag vorher.

von Toby P. (Gast)


Lesenswert?

Jumper M. schrieb:
> Also
> die Schaltung soll so sein, dass bei einem Spannungseinbruch, am
> Digitalport nur eine 0 ist.

Mein Kandidat:
Ein Spannungsteiler der die Versorgungsspannung aufteilt. Die 
Luxusverison hat noch ne Zenerdiode als Schutz.

von Harald W. (wilhelms)


Lesenswert?

Gustl B. schrieb:

> Komparator heißt das Bauteil.

Das ist aber auch nichts anderes wie ein 1Bit-AD-Wandler.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

>Ordentliche Controller
Unordentliche Controller haben einen fest auf 4,7V (oder so ähnlich) 
eingestellten Brown-out-Detektor, können aber auch mit 3,3V versorgt 
werden. PIC16LF873 ist so einer.

Der Komparator in den AVR ist festen Pins zugeordnet. Er vergleicht die 
Spannung zwischen zwei Eingängen oder einen Eingang mit der eingebauten 
Spannungsreferenz. Der ATmega328 hat ihn z.B. zwischen AIN1=PortD7 und 
wahlweise AIN0=PortD6 oder der Referenz.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Elias K. schrieb:
> pittiplatsch schrieb:
>> Dein Controller gehört wohl nicht dazu.
>
> Die Atmegas, die ich kenne, haben sowas. Heißt hier
> "Brown-Out"-Detection BOD. Typischerweise zusammen mit dem POR
> "Power-On-Reset". Oft auch mit einstellbarer Schaltschwelle.

So ist es. Und man sollte noch ergänzen, daß das dem TE nicht hilft. 
Denn er will die Information ja nicht erst dann, wenn die 
Betriebsspannung am µC unter die kritische Schwelle gefallen ist, 
sondern er will die Spannung am µC puffern (mit einem Kondensator) und 
den µC erkennen lassen, ob die Spannung vor der Pufferung auf einen 
kritischen Wert gefallen ist. Damit er noch "house keeping" machen kann, 
bevor dem µC die Spannung zu knapp wird (und ihm der BOR das Licht 
ausknipst).

von Elias K. (elik)


Lesenswert?

Der Zahn der Zeit schrieb:
> Elias K. schrieb:
>> Schaltschwelle des GPIO
> ... abhängig von der Betriebsspannung ...
Recht hast du. Keine gute Idee.

Axel S. schrieb:
> Elias K. schrieb:
>> Die Atmegas haben sowas. Heißt hier "Brown-Out"-Detection BOD.
> So ist es. Und man sollte noch ergänzen, daß das dem TE nicht hilft.
Gut aufgepasst. Das habe ich überlesen.

Plus eins für Christophs Vorschlag:
Christoph db1uq K. schrieb:
> Der Komparator in den AVR ist festen Pins zugeordnet. Er vergleicht die
> Spannung zwischen zwei Eingängen oder einen Eingang mit der eingebauten
> Spannungsreferenz.
Im Atmega gibt es für den Komperator eine Bandgap-Referenz, die relativ 
stabil 1,1V+-0.1V (lt. Datenblatt) ausgibt. Dann braucht es außerhalb 
nur einen Spannungsteiler über Vdd, dessen Ausgang bei der gewünschten 
Schaltschwelle bei ca. 1,1V liegt. Der Komperator kann direkt Interrupts 
erzeugen.

von MaWin (Gast)


Lesenswert?

Jumper M. schrieb:
> Also die Schaltung soll so sein, dass bei einem Spannungseinbruch, am
> Digitalport nur eine 0 ist. Hat jemand eine Idee oder Beispielschaltung
> wie das klappen könnte? Es soll ein Kondensator geben, um den Atmega
> noch kurz mit Strom zu versorgen

Angenommen der ATmega läuft mit 5V, du willst erkennen wann die Spannung 
unter 4.6V fällt da dann der uC noch weiterarbeiten kann bis 2.7V, dann 
nimm einen MC34064 vor dem Eingang, und konfiguriere den Eingang als 
Interruptquelle.

von Jumper M. (jumper1416)


Lesenswert?

Super vielen dank der Tipp ist genau das was ich gesucht habe! Danke!

von Peter D. (peda)


Lesenswert?

Elias K. schrieb:
> Die Atmegas, die ich kenne, haben sowas. Heißt hier
> "Brown-Out"-Detection BOD.

Der Knackpunkt ist allerdings, daß man darauf nicht reagieren kann, denn 
das macht einen harten CPU-Reset. Clever wäre es gewesen, wenn man es 
als Interrupt konfigurieren könnte.

Man kann jedoch den ADC so konfigurieren, daß die interne Referenz 
(1,1V) auf einen Eingang gelegt wird und mit VCC als Referenz gemessen 
wird.
Man erhält somit die reziproke VCC und kann diese mit einer Schwelle 
vergleichen.

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]
  • [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.