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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Komparator heißt das Bauteil.

von Carsten B. (cbr)


Bewertung
0 lesenswert
nicht lesenswert
Das Stichwort hierfür ist Komparator mit Hysterese.

von Jumper M. (jumper1416)


Bewertung
0 lesenswert
nicht lesenswert
Achso okay kannte ich nicht.
Vielen Dank!

von Der Zahn der Zeit (Gast)


Bewertung
0 lesenswert
nicht 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:

Bewertung
-3 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Super vielen dank der Tipp ist genau das was ich gesucht habe! Danke!

von Peter D. (peda)


Bewertung
0 lesenswert
nicht 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]
  • [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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.