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!
Das Stichwort hierfür ist Komparator mit Hysterese.
Ich kenne die Atmegas nicht, aber haben die nicht, wie bei vielen anderen µCs üblich, eingebaute Komparatoren und Referenzspannungsquellen?
Schade. Ordentliche Controller haben eine Low-Voltage-Detection. Die muss man nur einschalten und evtl. konfigurieren. Dein Controller gehört wohl nicht dazu.
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.
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/
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.
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.
Gustl B. schrieb: > Komparator heißt das Bauteil. Das ist aber auch nichts anderes wie ein 1Bit-AD-Wandler.
>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
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).
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.
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.
Super vielen dank der Tipp ist genau das was ich gesucht habe! Danke!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.