Langzeittimer per RC-Glied?

OP #7339545
Lesenswert?

Hallo,

ich habe bereits Erfahrungen mit einem RC-Glied an einem IRQ-fähigen IO-Pin des Atmega328, bei einem anderen Projekt (siehe hier im Forum "Windrichtungserkennung mit Hall Sensor") , dort soll der Controller nach ca. 50sek. aus dem deep-sleep mode aufwachen, einige Messungen durchführen und diese per Funk senden, sich dann wieder schlafen legen. Dies funktioniert mittels 47µF Elko und 10MOhm Widerstand paralell am IO02 sehr gut. Wenn der IRQ bei falling-edge ausgeführt wird, wird der IO Pin02 glelch kurz auf Ausgang geschaltet und ein High ausgegeben um den Elko schneller wieder aufzuladen. Danach Schalte ich den IO wieder auf Input mit eingeschalteten Pullups. Diese werden natürlich kurz vorm deep-sleep wieder deaktiviert, sonst würde der Elko sich ja nicht entladen. Wiegesagt, dies funktioniert sehr gut.

Ich habe noch eine andere Baugruppe: Es ist ein LoRa basierter Senioren Notruf-Handsender, diese laufen auch sehr zuverlässig, alle 4 Std. wacht er durch einen LTC6995 auf um seinen Akkustand zur Station zu senden. Da ich die PCB aber etwas verändern muss (größerer stabilerer Taster, Ladebuchse usw.) möchte ich gerne den teuren LTC durch ebenfalls so ein RC-Glied ersetzen, es kommt dabei nicht drauf an, ob die Zeit nun 3.5 oder 5Std. beträgt, Haupsache der wacht irgendwann mal auf und sendet seinen Akkustand.

Die Frage nun: habe etwas probiert, mit 1000µF und 10MOhm ergab es eine Zeit von ca. 20min. Nun habe ich das auf 1000µF und 30MOhm geändert, läuft seit 21:33, nun ist es 23:43 und der IRQ ist noch immer nicht aufgetreten, einerseits ein gutes Zeichen, auf der anderen Seite frage ich mich, sind solche extremen Werte wie 30MOhm und 1000µF sinnvoll und auf Dauer gut und zuverlässig?

Hat jemand schon ähnliche Erfahrungen gemacht?

Da ich nun ca. 50 PCBs herstellen muss, ist der Kostenfaktor des LTC schon wichtig, Immerhin zwischen 5-10€/Stück. (Mouser)

Gruß, Wolfram.

EDIT: Frage ist auch noch, wielange hält so ein Elko das aus? bei manchen steht: 2000Std. im Datenblatt, das wären ja nur 83 Tage! Sind das nur billige China-Elkos?

Gast #7339556
Lesenswert?

Wolfram F. schrieb:

Da ich die PCB aber etwas verändern muss (größerer stabilerer Taster, Ladebuchse usw.) möchte ich gerne den teuren LTC durch ebenfalls so ein RC-Glied ersetzen, es kommt dabei nicht drauf an, ob die Zeit nun 3.5 oder 5Std. beträgt, Haupsache der wacht irgendwann mal auf und sendet seinen Akkustand.

Warum willst du deshalb mit einem Elko so affige Zeitkonstanten erzeugen? Reicht es nicht, wenn der µC alle paar Sekunden geweckt wird, einen Zähler inkrementiert, prüft, ob mal wieder eine Aussendung des Akkuzustandes fällig ist und sich ansonsten nach ein paar µs wieder schlafen legt?

#7339559
Lesenswert?

Wolfram F. schrieb:

Wiegesagt, dies funktioniert sehr gut.

Ist aber unsinnig. Je nach Exemplar und Alterung des Elkos oder Temperatur und Luftfeuchte kommen andere Zeiten bei raus, oder es geht gleich gar nicht mehr.

Dabei hat der ATmega328 interne Timer, RC genau Watchdog oder quartzgenau LowPower 32kHz timer, die genauer sind und ihn auch aus sleep aufwachen lassen.

Man muss halt nur programmieren können, also mit dem gebotenen features des uC umgehen können.

Software statt hardware.

Gast #7339563
Lesenswert?

Wolfram F. schrieb:

ich habe bereits Erfahrungen mit einem RC-Glied an einem IRQ-fähigen IO-Pin des Atmega328, bei einem anderen Projekt (siehe hier im Forum "Windrichtungserkennung mit Hall Sensor") , dort soll der Controller nach ca. 50sek. aus dem deep-sleep mode aufwachen, einige Messungen durchführen und diese per Funk senden, sich dann wieder schlafen legen. Dies funktioniert mittels 47µF Elko und 10MOhm Widerstand paralell am IO02 sehr gut.

Unsinnige Konstruktion. Der Atmega328 kann mit seinem internen Timer alle 8 Sekunden aufwachen. Also aufwachen, einen Zähler hoch und Gute Nacht. Nach sechs oder sieben den Job ausführen, Zähler auf null und wieder los. Das funktioniert hier einwandfrei ohne externe RC-Kasperei und ist keinesfalls ungenauer.

1
#include "LowPower.h"
2
...
3
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
Gast #7339565
Lesenswert?

Wolfram F. schrieb:

EDIT: Frage ist auch noch, wielange hält so ein Elko das aus? bei manchen steht: 2000Std. im Datenblatt, das wären ja nur 83 Tage! Sind das nur billige China-Elkos?

Vergiss es. Dein Elko stirbt garantiert den Alterstod und nicht wegen Beanspruchung. Das ist definitiv kein Problem.

Aber 30MOhm und 100uF. Klingt irgendwie unprofessionell. Wie an anderer Stelle schon erwähnt. Wecke den uC einfach jede Sekunde mal auf. Ist schon wesentlicher besser.

Gibt es nicht auch in vielen uCs die Möglichkeit, dass sich diese intern in bestimmten Abständen aufwecken, auch wenn Sie im "Schlafmodus" sind. Also mir stellen sich die Nackenhaare auf bei externem RC-Glied. Die Ladung Deines 1000uF-Elkos ist ja auch verloren.

Gruß

Marcus

Gast #7339567
Lesenswert?

DenkenMachtSpaß schrieb:

Gibt es nicht auch in vielen uCs die Möglichkeit, dass sich diese intern in bestimmten Abständen aufwecken, auch wenn Sie im "Schlafmodus" sind.

Sorry. Falsches Satzzeichen und auch noch blöde Frage, die ja weiter oben schon beantwortet wurde. Ist vllt. der Uhrzeit geschuldet.

Gruß

Marcus

OP #7339568
Lesenswert?

also das wichtigste ist natürlich der Stromverbrauch, wenn es wirklich sooo wenig ist, was der µC im aufweckmodus braucht um einen Zähler hochzuzählen, wäre das ja ideal! Bisher habe ich aber nur therotische Antworten bekommen, hat jemand selber so was mit akku am laufen und kann Erfahrungswerte nennen?

Gast #7339573
Lesenswert?

Wolfram F. schrieb:

hat jemand selber so was mit akku am laufen und kann Erfahrungswerte nennen?

ja, mehrere Funk-Heizkörperventile, eine Funk-Wetterstation mit Außenfühler...

achso, Du meinst was selbstgebautes? ;-)

Im Ernst: Es kann nicht so schwierig sein. Der Außenfühler läuft mit zwei Batterien (ich glaub AA) jahrelang. Und da blitzt auch noch alle ca. 30s ne LED auf.

Gruß

Marcus

Gast #7339575
Lesenswert?

Wolfram F. schrieb:

also das wichtigste ist natürlich der Stromverbrauch, wenn es wirklich sooo wenig ist, was der µC im aufweckmodus braucht um einen Zähler hochzuzählen, wäre das ja ideal!

Beim Aufwachen zum Zähler hochzählen kommt es nicht auf den Stromverbrauch an, sondern auf die Ladung.

Gast #7339579
Lesenswert?

bei manchen steht: 2000Std. im Datenblatt

2000 Stunden bei der angegebenen Temperatur. Normalerweise 80° oder 120°.

Hobbybastler nehmen die Faustformel, 10° weniger Temperatur ergeben doppelte Lebensdauer. Z.B. 40° = 80-10-10-10-10 ergibt 20002222 Stunden.

(Wenn du es genauer brauchst, nimm einen Elko, bei dem du die Berechnung im Datenblatt findest).

#7339627
Lesenswert?

Wolfram F. schrieb:

ich habe bereits Erfahrungen mit einem RC-Glied an einem IRQ-fähigen IO-Pin des Atmega328, bei einem anderen Projekt (siehe hier im Forum "Windrichtungserkennung mit Hall Sensor") , dort soll der Controller nach ca. 50sek. aus dem deep-sleep mode aufwachen, einige Messungen durchführen und diese per Funk senden, sich dann wieder schlafen legen. Dies funktioniert mittels 47µF Elko und 10MOhm Widerstand paralell am IO02 sehr gut.

So ein Käse! Sowas macht man entweder mit dem internen Watchdog-Oszillator (ca. 5-10% genau) oder einem 32.768 kHz Uhrenquarz und dem Sleep Mode.

Ich habe noch eine andere Baugruppe: Es ist ein LoRa basierter Senioren Notruf-Handsender, diese laufen auch sehr zuverlässig, alle 4 Std. wacht er durch einen LTC6995 auf um seinen Akkustand zur Station zu senden. Da ich die PCB aber etwas verändern muss (größerer stabilerer Taster, Ladebuchse usw.) möchte ich gerne den teuren LTC durch ebenfalls so ein RC-Glied ersetzen,

Was hast du eigentlich in den letzten 30 Jahren verpennt?

sind solche extremen Werte wie 30MOhm und 1000µF sinnvoll und auf Dauer gut und zuverlässig?

NEIN!

Da ich nun ca. 50 PCBs herstellen muss, ist der Kostenfaktor des LTC schon wichtig, Immerhin zwischen 5-10€/Stück. (Mouser)

Dann mach es einfach richtig, so wie der Rest der Welt!

EDIT: Frage ist auch noch, wielange hält so ein Elko das aus?

Vollkommen egal, dein Konzept ist Unfug.

#7339635
Lesenswert?

Wolfram F. schrieb:

Hatte bislang nur von den magischen 8 Sekunden gelesen...

Die neueren AVR können wesentlich länger:

RTC - Real-Time Counter The RTC counts (prescaled) clock cycles in a Counter register and compares the content of the Counter register to a Period register and a Compare register. The RTC can generate both interrupts and events on compare match or overflow. It will generate a compare interrupt and/or event at the first count after the counter equals the Compare register value, and an overflow interrupt and/or event at the first count after the counter value equals the Period register value. The overflow will reset the counter value to zero. The RTC peripheral typically runs continuously, including in Low-Power sleep modes, to keep track of time. It can wake up the device from sleep modes and/or interrupt the device at regular intervals. The reference clock is typically the 32.768 kHz output from an external crystal. The RTC can also be clocked from an external clock signal, the 32.768 kHz Internal Oscillator (OSC32K), or the OSC32K divided by 32. The RTC peripheral includes a 15-bit programmable prescaler that can scale down the reference clock before it reaches the counter. A wide range of resolutions and time-out periods can be configured for the RTC. With a 32.768 kHz clock source, the maximum resolution is 30.5 μs, and time-out periods can be up to two seconds. With a resolution of 1s, the maximum time-out period is more than 18 hours (65536 seconds).

Moderator (Firma: Titel) Persönliche Seite #7339656
Lesenswert?

W.A. schrieb:

Du kämpfst mit den 30MΩ gegen den Leckstrom des Elkos.

Von den Leckströmen des IO-Pins und hoher Luftfeuchte mal abgesehen...

Wolfram F. schrieb:

1000µF und 10MOhm ergab es eine Zeit von ca. 20min.

Mal grob überschlägig nachgerechnet: t = RC = 10000 s = 166 min. Eine Abweichung mit Faktor 8, das erscheint zumindest eigenartig.

es kommt dabei nicht drauf an, ob die Zeit nun 3.5 oder 5Std. beträgt,

Ich lasse einen AVR per Watchdog einmal pro 800ms aufwachen und nachschauen, ob eine Taste gedrückt ist. Wenn nicht, dann schläft er wieder. Wenn schon, dann startet eine Art "Eieruhr" mit blinkenden LEDs. Das läuft jetzt seit über 7 Jahren an einer kleinen Knopfzelle: Beitrag "Re: uC Startup mit Supercap"

Für eine Zeit von 5 Stunden müsstest du nur den Watchdog auf die höchstmögliche Zeit konfigurieren und dann einen Zähler bis zu einem berechneten Wert hochzählen.

Moderator (Firma: Titel) Persönliche Seite #7339669
Lesenswert?

Wolfram F. schrieb:

EDIT: Frage ist auch noch, wielange hält so ein Elko das aus? bei manchen steht: 2000Std. im Datenblatt, das wären ja nur 83 Tage! Sind das nur billige China-Elkos?

Nein, das ist üblich und bezieht sich auf die Maximaltemperatur. Jede Temperaturreduzierung um 10°C verdoppelt (wie scho erwähnt) die Lebensdauer. Dazu das hier:

Und zudem hat jeder Elkohersteller dazu einige Appnotes und Techpapers.

Aber jetzt kommt der Witz: das Ende der Lebensdauer ist dann erreicht, wenn die Untergrenze der für diese Elkoserie spezifizierten Toleranz ausgehend vom Startwert dieses Elkos(!) erreicht ist. Wenn die Elkoserie also mit +-20% spezifiziert ist, und du erwischst einen 1000µF-Elko, der mur 800µF hat, dann ist das Lebensende dieses Elkos bei 640µF erreicht. Und der 1000µF-Elko hält auch mit diesen 640µF die Werte seiner Spezifikation noch immer zu 100% ein.

Das sollte deutlich machen, dass es nicht wirklich eine gute Idee ist, wenn man Elkos als Zeitgeber verwendet... ;-)

#7339692
Lesenswert?

Michael M. schrieb:

Hobbybastler nehmen die Faustformel, 10° weniger Temperatur ergeben doppelte Lebensdauer. Z.B. 40° = 80-10-10-10-10 ergibt 2000x2x2x2x2 Stunden.

Das sind dann mindestens 32.000 Stunden oder 1.333 Tage. Bei 20°C Raumtemperatur sind es sogar noch 4 mal so lange.

Und danach explodiert der Kondensator? Oder löst er sich in Luft auf? Diese Werte gelten nur unter Belastung mit Nennspannung und Nennstrom. Und das auch nur als absoluter Grenzfall, neudeutsch worst case. Bleibt man deutlich darunter, hält der fast ewig. Naja, je nachdem wie dicht das Ding ist. Aber auf jeden Fall fällt ein Elko nicht nach 2000h aus, auch nicht nach 1.333 Tage, was nur 3,5 Jahre sind. Seine Werte verschlechtern sich nur. Wenn ich Schaltungen und Bauteile im Dauerbetrieb betreiben will, muss ich deutlich von den Grenzwerten wegbleiben, vor allem was Strom und Temperatur angeht.

Gast #7339737
Lesenswert?

Wolfram F. schrieb:

d.h. es müsste ein 32KHz Quarz mit an den Controller? wie lange wären dann die maximalen Zeiten? Hatte bislang nur von den magischen 8 Sekunden gelesen...

Dass ein AVR auch zählen kann ist Dir bekannt? Man konfiguriert den Timer auf bspw. 1 Sekunde und in der ISR zählt man eine Variable hoch bis die gewünschte Zeit erreicht ist. Dazu bedarf es keinen 32 kHz Quarz, das geht problemlos mit dem internen 1 MHz Takt. Es soll ja keine Präzisionsuhr gebaut werden. Tzz.

Gast #7339777
Lesenswert?

Wolfram F. schrieb:

d.h. es müsste ein 32KHz Quarz mit an den Controller? wie lange wären dann die maximalen Zeiten?

Du hast mit irgendwelchen RC-Gliedern niemals eine zeitliche Genauigkeit, die der interne Oszillator eines µCs liefert. Also scheint es darauf nicht anzukommen. Und wenn es auf eine genau Zeit ankommt, dann nehme ich ein preiswertes DS3231-Modul, stelle dort den nächsten Alarmzeitpunkt ein um den µC per Interrupt zu wecken. Auch das geht mit einem Stromverbrauch von weniger als 5-10µA. So eine Schaltung habe ich mit dem ersten AA-Batteriesatz seit jetzt 4 Jahren in Betrieb und sie läuft noch immer.

Hatte bislang nur von den magischen 8 Sekunden gelesen...

Ja, das ist die längste Zeit, die der Watchdogtimer bei einem AVR kann. Niemand hindert dich daran, diese 8s ein, zehn oder hundert Million mal ablaufen zu lassen (ein viertel Jahr, ≈2.5 Jahre bzw. ≈25 Jahre), bevor du eine Aktion einleitest. Mit einem Tiny25 könnte man so theoretisch Jahrhunderte schaffen - ich habe so einen Aufbau, kann's aber leider nicht testen 😀.

Und dazwischen, für 7.9999s schläft der Prozessor mit minimalem Stromverbrauch weit unterhalb der Größenordnung der Selbstentladung eines hochwertigen Akkus - selbst bei einer Primärzelle ist schon fast die Selbstentladung größer.

Zeiten mit RC-Gliedern (Monoflop etc.) zu machen mag sinnvoll sein für wenige Sekunden und auch nur dann, wenn kein Prozessor zur Verfügung steht. Und da dir der Preis auch wichtig ist: die Software kostet nur ein wenig Schreibarbeit im Gegensatz zu hochwertigen Elkos.

Peter D. schrieb:

Z.B. ein ATtiny13A in Power-down mit Watchdogtimer (4µA@3V) läuft an 700mAh etwa 20 Jahre. D.h. die Selbstentladung des Akkus ist der begrenzende Faktor.

Ja, allerdings ohne eine Aktion dazwischen. Und selbst Primärzellen sind in der Zeit deutlich über ihrer Lagerfähigkeit angekommen.

Moderator (Firma: Titel) Persönliche Seite #7339800
Lesenswert?

Wolfram F. schrieb:

Hatte bislang nur von den magischen 8 Sekunden gelesen...

Ja, passt doch: Watchdog auf 8s, dann bei jedem Interrupt eine statische Variable hochzählen, und wenn die den Wert 2250 (*8s = 18000s = 5h) erreicht hat, dann tust du das, was nach 5 Stunden zu tun ist. Das Hochzählen der 16-Bit-Variablen braucht wenns hoch kommt ein paar (nehmen wir exemplarisch 2) µs. Also ist der µC grade mal 2µs/8s = 0,00025% der Laufzeit unter "Vollast", den Rest der Zeit schläft er mit ein paar nA.

Wie gesagt: bei mir läuft das so seit 7 Jahren (mit 800ms Timeout) an einer kleinen Knopfzelle.

#7339844
Lesenswert?

Michael B. schrieb:

Die RTC ist NICHT der watchdog.

Es geht nicht um die RTC, sondern um den RTC. Anders als bei den obsoleten AVR sind bei den Aktuellen die Funktionen Watchdog und Periodic Interrupt getrennt, der kurzzeitige WDT wird nicht mehr für das Aufwachen zweckentfremdet. Stattdessen gibt es den dedizierten Real Time Counter (RTC), der vom internen Ultra Low Power RC‑Oszillator getaktet wird. Dabei beträgt die Stromaufnahme z.B. bei tinyAVR® 0,1,2-series ungefähr 0.7µA @ 3.0V, 25°C.

Angehängte Dateien:
Gast #7339935
Lesenswert?

an Wolfram Fischer: Welche konkreten Anforderungen gibt es?

... PCB aber etwas verändern ...

Dann soll wohl nicht das gesamte Konzept überarbeitet werden, also erste Frage: welcher uC wird derzeit verwendet? Der genannte ATmega328(P)?

ob die Zeit nun 3.5 oder 5Std.

Okay, das erlaubt ein RC-Glied (egal, ob als Oszillator oder sonst irgendwie)

Stromverbrauch "gefühlt" zu hoch

Lässt sich das quantifizieren? Kapazität des Akkus, angestrebte Laufzeit mit einer Ladung, akkumulierter Stromverbrauch der aktiven Betriebszustände?

teuren LTC ... ersetzen

Dann wäre folglich ein Quarz sowohl vom Platz als auch vom Budget her möglich?

Mir ist, mit Verlaub, nicht ganz klar, wie man ohne diese Vorgaben

(gefühlt) ... ... ca. 50 PCBs herstellen

will.

Gast #7339973
Lesenswert?

S. Landolt schrieb:

teuren LTC ... ersetzen

Dann wäre folglich ein Quarz sowohl vom Platz als auch vom Budget her möglich?

Vom Budget her vielleicht schon, aber wenn er schreibt: Wolfram F. schrieb im Beitrag #7339545:

es kommt dabei nicht drauf an, ob die Zeit nun 3.5 oder 5Std. beträgt,

dann ist der interne (Watchdog-)Oszillator eines jeden AVR ausreichend genau und stabil genug. Der kostet gar nichts extra.

OP #7339988
Lesenswert?

habe nun Elko, Widerstände und den IRQ ntfernt und folgendes eingebaut:

1
void loop() 
2
{
3
  if (loop_counter >= 450) //ca 1.Std erstmal
4
  {
5
    send_LoRa();
6
    loop_counter = 0;
7
  } 
8
  else
9
  {
10
    loop_counter++;
11
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); 
12
  }

das funktioniert prima, mal sehen wie es sich nun mit dem Akku verhält.

Danke Euch für die hilfreichen Tips!

EDIT: übrigens war die entlade-Zeit des 1000µF Elkos mit 30MOhm paralell von 21:33 bis 4:58 Uhr.

#7339998
Lesenswert?

Wolfram F. schrieb:

mal sehen wie es sich nun mit dem Akku verhält.

Bei Ultra-Low-Power Projekten ist es oft eine Sísyphusarbeit, die unnötigen Stromverbraucher zu finden. Oft ist es nicht mal die CPU oder der Oszillator, welche den meisten Strom schlucken, sondern Peripheriemodule, die nach Gebrauch nicht komplett abgeschaltet wurden wie z.B. AD-Wandler mit deren Referenzspannungsquelle. Manchmal verbrauchen auch die Spannungsregler mehr Strom als der Mikrocontroller selbst, dann muss man den durch einen stromsparenderen ersetzen. Oder ein schlechtes Design mit beispielsweise Pull-Up Widerständen, wo die Leitung im Ruhezustand gegen Masse gezogen wird und so auch unnötig Strom verbraten wird.

OP #7340005
Lesenswert?

das LoRa Funkmodul wird vor dem Sleep per LoRa.end sowie SPI.end abgeschaltet, ADC ebenso, IOs sind alle auf LOW ohne Pullups, Spannungsregler gibt es keinen, der 328 hängt direkt an dem Akku. Einzige Möglichkeit die ich sehe um noch etwas Strom zu sparen wäre ein Mosfet, der die Versorgungsspannung des LoRa Moduls nur kurz vor dem Senden einschaltet, dazu müsste ich aber erstmal messen, wieviel das im standby so braucht.

Moderator (Firma: Titel) Persönliche Seite #7340006
Lesenswert?

Wolfram F. schrieb:

mal sehen wie es sich nun mit dem Akku verhält.

Kommt durchaus drauf an, was du beim Schlafen mit den Peripherieeinheiten machst. Im Datenblatt stehen da eine Anmerkungen zur Power Consumption.

EDIT: übrigens war die entlade-Zeit des 1000µF Elkos mit 30MOhm paralell von 21:33 bis 4:58 Uhr.

Also 8,5h. Rechnerisch hätten es (wenn man wegen e-Funktion von einer Restspannung vom 0,37-fachen des Startwerts beim Schaltpunkt ausgeht) etwa t = RC = 30000 s = 8,3h sein müssen. Lustigerweise passt das recht gut zum realen Wert.

Da habe ich fast den Verdacht, dass du beim Test mit dem 10MOhm mit der wesentlich zu kurzen Zeit noch irgendwelche ESD-Effekte mit ins Spiel gebracht hast. Bei einem deratig hochomigen Widerstand reicht es schon, wenn du einfach mal den Knisterpulli daneben ausziehst.

Ich hätte da mal mit dem Viehtreiber den "ESD-Test für Arme" gemacht: Beitrag "Re: Tiefentladungsschutz mit Attiny und P-Kanal Fet"

#7340252
Lesenswert?

Wolfram F. schrieb:

Dies funktioniert mittels 47µF Elko und 10MOhm Widerstand paralell am IO02 sehr gut.

Der zulässige Reststrom von Elkos laut Datenblatt ist so hoch, das Zeitkonstanten von mehr als ein paar Minuten keinen Sinn machen, weil der Elko dann schon von allein leer ist. Glücklicherweise haben die meisten Elkos geringere Restströme als zulässig. Verlassen kann man sich darauf aber nicht. Normale Wickelkondensatoren haben da bessere Daten. Wenn man schon keinen µC nehmen will, kann man auch einen RC-Genarator mit einem Zähler kombinieren, z.B. dem 4060.

Gast #7340292
Lesenswert?

Harald W. schrieb:

Normale Wickelkondensatoren haben da bessere Daten.

Ja, aber mit 1000µF tut man sich da schwer 😉 ...

Falk B. schrieb:

Siehe Monoflop. Das gilt auch für diverse andere Zeitglieder. Alles >1s würde ich heute nur noch digital machen.

Das kann ich nur unterstreichen! Meinetwegen auch noch einstellige Sekunden. Nicht aber, wenn ein Prozessor sowieso vorhanden ist!

Gast #7340524
Lesenswert?

Brauchen Arduino User für jeden Kleinscheiß eine eigene Bibliothek?

Ich würde immer erst mal schauen, was die Standard Bibliothek zu bieten hat, die der C Compiler mit sich bringt:

https://www.nongnu.org/avr-libc/user-manual/group__avr__power.html https://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html

Oder vielleicht einfach mal das Datenblatt lesen. So schwer ist das bei AVR nicht.

OP #7340534
Lesenswert?

Stefan F. schrieb:

Brauchen Arduino User für jeden Kleinscheiß eine eigene Bibliothek?

nicht unbedingt, aber es ist doch sehr praktisch!

Übrigens selbst noch zu 6502 Zeiten haben wir uns doch auch kleine Assembler-Module erzeugt die per include mit eingebunden wurden! Also warum diesselben Routinen immer wieder neu schreiben wenn einmal schon vorhanden?

Die einzige Gefahr -wie auch bei Eagle Bauteil-Libs- ist, die Library kann auch Fehler beinhalten.

Leider gibt es immerwieder solche Vergleiche:

Spielzeug - Profi

Arduino IDE Atmel-Studio Arduino Hardw Eigenes oder teures Entwicklungsboard 2.5mm2 10mm2 Lautsprecherkabel... Eagle PCB Altium

Es hat keinen Sinn über diese Dinge zu diskutieren, es gibt immer Leute die mit den heutigen Vorteilen der Einfachheit nicht klarkommen oder sich dagegen streuben.

Gruß, Wolfram.

Gast #7340547
Lesenswert?

Achtung, das Laden/Entladen von Deinem RC-Glied kommt auch nicht gratis.

Ich weiß nicht, in welchem Spannungsbereich das schalten soll, aber selbst bei 1V auf 50s kostet das im Durchschnitt 2µA.

Ein Mega 328 nimmt im Power-Down-Mode 0.1µA, selbst wenn man dann noch die paar CPU-Zyklen im Wachzustand dazuzählt, bleibst Du unter dem, was das RC-Glied benötigt.

OP #7340554
Lesenswert?

altvatrischer schrieb:

Achtung, das Laden/Entladen von Deinem RC-Glied kommt auch nicht gratis.

Ich weiß nicht, in welchem Spannungsbereich das schalten soll, aber selbst bei 1V auf 50s kostet das im Durchschnitt 2µA.

es war zwischen 5V bzw. 3.7V Batterie und ca. 1.8V

Ein Mega 328 nimmt im Power-Down-Mode 0.1µA, selbst wenn man dann noch die paar CPU-Zyklen im Wachzustand dazuzählt, bleibst Du unter dem, was das RC-Glied benötigt.

ja, ich habe nun auch die RC Geschichte verworfen und es per Software gelöst, siehe weiter oben. Auch ist das Laden des fastleeren Elkos sicher nicht gut für den IO Port. Aber wiegesagt, ich hatte nicht mit dem echt kleinen Stromverbrauch des Atmega 328 im sleep gerechnet und es am Anfang gar nicht probiert. Nun ist es so gut wie perfekt.

Gast #7340613
Lesenswert?

Wolfram F. schrieb:

ja, ich habe nun auch die RC Geschichte verworfen und es per Software gelöst, siehe weiter oben.

Wo oben?

Aber wiegesagt, ich hatte nicht mit dem echt kleinen Stromverbrauch des Atmega 328 im sleep gerechnet und es am Anfang gar nicht probiert.

Wie viel / wenig Stromaufnahme hast Du tatsächlich erreicht?

Gast #7340806
Lesenswert?

Paul A. schrieb:

Eine mechanische Uhr wäre noch sparsamer.

Was zu beweisen wäre. Erstens musst du eine rein mechanische alle paar Stunden (Tage) aufziehen. Bei einer elektrisch betriebenen sparst du eher nichts.

Zweitens: der Kontakt wäre dann durchaus über viele Minuten geschlossen. Alleine der Strom durch einen z.B. Pullup übersteigt das, was eine elektronische Lösung bietet. (3.3V-System, interner PU max. 50k → über 60µA)

Drittens: Mechanik, Pfriemelei. Und das, wenn stromsparende Lösungen mit eh vorhandenem µC zuhauf genannt wurden. Solche, die unterhalb der Selbstentladung eines Akkus oder einer Primärzelle liegen!

OP #7342538
Lesenswert?

zum Stromverbrauch kann ich schonmal folgenden Unterschied nennen:

mit RC-Kombination als Zeitgeber waren 0.08 V Spannungsabfall am Akku pro Tag zu messen. Nun ohne RC Glied und nur mit 8S Sleep-Mode sind es gerade mal 0.01V / Tag ! Und das, obwohl (noch) die PowerLED auf dem Arduino Board aufgelötet ist!

Hätte ich NIE gedacht, aber man wird schlauer!

NOCHMALS: Vielen Dank für die vielen Tips und Hilfen von Euch!

Gruß, Wolfram.

Gast #7342553
Lesenswert?

Wolfram F. schrieb:

Und das, obwohl (noch) die PowerLED auf dem Arduino Board aufgelötet ist!

Wenn ich Strom sparen will, benutze ich A*-ProMini und löte sowohl die LED als auch den Spannungsregler runter.

Stromverbrauch: Wenn man sich ein Programm schreibt, wo in der Hauptschleife nur

"LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);"

steht, kann man den per Digitalmultimeter messen. Was er in den kurzen Wachphasen verbraucht, kann ich leider nur schätzen.

Wolfram F. schrieb:

NOCHMALS: Vielen Dank für die vielen Tips und Hilfen von Euch!

Danke, das lesen wir gerne und freuen uns, wenn eine Diskussion ein sinnvolles Endergebnis ergeben hat!

OP #7342567
Lesenswert?

Wenn ich Strom sparen will, benutze ich A*-ProMini und löte sowohl die LED als auch den Spannungsregler runter.

brauche ich nicht, da Endversion sowieso eine eigene PCB wird. Da ist dann auch kein USB-UART Chip, Spannungsrgegler und sonstiges unnötiges drauf. Aber entgeegen den Arduino Gegnern...: zum entwickeln sind die Dinger super und billig

Moderator (Firma: Titel) Persönliche Seite #7342654
Lesenswert?

Wolfram F. schrieb:

Und das, obwohl (noch) die PowerLED auf dem Arduino Board aufgelötet ist!

Jetzt im Ernst: du machst dir Gedanken ums Energiesparen und die Laufzeit einer Schaltung und da leuchtet dauerhaft eine LED mit mehr als 2mA? Dann mach erst mal die LED raus und den Test nochmal...

Wie gesagt: die Spannung der oben erwähnten 1632 Knopfzelle ist nach 7 Jahren inzwischen bei 2,7V. Also sind das

1
(3,2V-2,7V)/(7*365d) = 0,2mV/d

Und wie gesagt: bei einer Zelle mit gerade mal 120mAh. Wenn ich die Batterie mit dieser Spannung für "leer" erkläre, ist somit die Stromaufnahme der Schaltung im Mittel etwa

1
120mAh/(7yr*365d/yr*24h/d) = 120mAh/61320h = 1,9µA

Also: wenn schon unbedingt eine Betriebsspannungsanzeige nötig ist, dann lass die LED einmal pro x Sekunden für eine oder zwei ms kurz aufblitzen.

Gast #7343119
Lesenswert?

Wolfram F. schrieb:

ich habe bereits Erfahrungen mit einem RC-Glied an einem IRQ-fähigen IO-Pin des Atmega328,

Ich hatte ebenfalls Erfahrungen mit analogen Zeitschaltungen - als ich noch ein Bub war und für meine damaligen Dunkelkammer-Zwecke einen Beleuchtungstimer (allerdings ohne µC) gebastelt hatte.

Fazit: jeder Kuhschwanz ist gerader als sowas, wenn es in die Sekunden oder gar Minuten geht.

Mache du es anders. Und wenn dir das Programmieren von Schlaf- und Aufwachzeiten im µC nach all den vorangegangenen Ratschlägen immer noch zu kompliziert ist, dann bau dir an deinen µC einen RTC dran, der ein programmierbares Wecksignal abgeben kann. Zum Beispiel sowas wie RTC8564. Die Dinger laufen mehrere Monate lang aus einem 0.22F Goldcap.

W.S.

#7343129
Lesenswert?

W.S. schrieb:

ich habe bereits Erfahrungen mit einem RC-Glied an einem IRQ-fähigen IO-Pin des Atmega328,

Ich hatte ebenfalls Erfahrungen mit analogen Zeitschaltungen - als ich noch ein Bub war und für meine damaligen Dunkelkammer-Zwecke einen Beleuchtungstimer (allerdings ohne µC) gebastelt hatte.

Mein Gott, auf deinen Kommentar hat der OP gerade noch gewartet! Das Problem ist längst behoben und der OP hat was gelernt!

Beitrag "Re: Langzeittimer per RC-Glied?" Beitrag "Re: Langzeittimer per RC-Glied?"

OP #7343151
Lesenswert?

Lothar M. schrieb:

Und das, obwohl (noch) die PowerLED auf dem Arduino Board aufgelötet ist!

Jetzt im Ernst: du machst dir Gedanken ums Energiesparen und die Laufzeit einer Schaltung und da leuchtet dauerhaft eine LED mit mehr als 2mA? Dann mach erst mal die LED raus und den Test nochmal...

wie ich gestern betont hatte, war die LED "noch" drauf. hab ich aber nun abgelötet.

Gast #7343445
Lesenswert?

Manfred schrieb:

Und wie bekommst Du ihn mit Deinen 0,1µA nach xxx-Sekunden aufgeweckt?

Der Watchdog-Timer ist auch im Power-Down-Mode aktiv.

Ja, aber ich bezweifele, dass dafür 0,1µA ausreichen.

Wer das Datenblatt nicht nur lesen kann, sondern auch liest, ist klar im Vorteil:

28.2.4 ATmega328P DC Characteristics .... Power Down Mode - WDT enabled, VCC = 3V - Typ 4,2µA Power Down Mode - WDT disabled, VCC = 3V - Typ 0,1µA

Dein Zweifel war also berechtigt.

#7343458
Lesenswert?

altvatrischer schrieb:

28.2.4 ATmega328P DC Characteristics .... Power Down Mode - WDT enabled, VCC = 3V - Typ 4,2µA Power Down Mode - WDT disabled, VCC = 3V - Typ 0,1µA

Timer2 im asynchronen "RTC"-Modus (mit 32 kHz-Uhrenquarz) ist sparsamer als der WDT (kommt auf ~0.6µA), wenn man das extra Bauteil verkraften kann und Timer2 + quarzgenauen Takt sonst nicht braucht (belegt die XTAL-Pins).

Gast #7343483
Lesenswert?

altvatrischer schrieb:

Wer das Datenblatt nicht nur lesen kann, sondern auch liest, ist klar im Vorteil:

28.2.4 ATmega328P DC Characteristics .... Power Down Mode - WDT enabled, VCC = 3V - Typ 4,2µA Power Down Mode - WDT disabled, VCC = 3V - Typ 0,1µA

Dein Zweifel war also berechtigt.

Danke, dass Du es recherchiert hast, finde ich wirklich gut von Dir!

OP #7343521
Lesenswert?

bedeutet das, daß ich bei 4.2µA nur ganz dünne Drähte brauche? Würde Gewicht sparen :-) aber kommt die Batteriespannung dann nicht etwas später am µC an? (Laufzeit)...

Nee mal im Ernst, dies ist doch keine CB-Funk Schnack-Ecke (oder "Fingers" Website) sondern ein vernünftiges Forum. Lasst uns doch mal beim Thema bleiben!

Gast #7343542
Lesenswert?

Wolfram F. schrieb:

bedeutet das, daß ich bei 4.2µA nur ganz dünne Drähte brauche? Würde Gewicht sparen :-) aber kommt die Batteriespannung dann nicht etwas später am µC an? (Laufzeit)...

Nee mal im Ernst, dies ist doch keine CB-Funk Schnack-Ecke (oder "Fingers" Website) sondern ein vernünftiges Forum. Lasst uns doch mal beim Thema bleiben!

Wenn Du morgen Nachmittag Deinen Rausch ausgeschlafen hast, überdenkst Du Deinen Beitrag bitte noch einmal!

Du hast einen Weg gesucht, eine µC-Anwendung möglichst Stromsparend aufzubauen und sinnvolle Hinweise bekommen, die Dich zum Ziel gebracht haben.

Es gehört dazu, das man sich auch mal uneinig ist oder vertut. Am Beitrag von ' altvatrischer' ist absolut garnichts zu beanstanden und es macht schon einen Unterschied, ob nun 0,1 oder 4 µA benötigt werden.

Also was?

OP #7344341
Lesenswert?

@Manfred:

bedeutet das, daß ich bei 4.2µA nur ganz dünne Drähte brauche? Würde Gewicht sparen :-) aber kommt die Batteriespannung dann nicht etwas später am µC an? (Laufzeit)... Dies sollte eher witzig sein! Für alle die das nicht vertehen hatte ich vorsorglich auch geschrieben: Nee mal im Ernst, ....

Also was? Also nix!

Bedankt habe ich mich bereits für die Hilfen. Wieder was dazugelernt!

Schönes Wochenende noch Euch allen!

Gast #7344398
Lesenswert?

Wolfram F. schrieb:

Dies sollte eher witzig sein! Für alle die das nicht vertehen hatte ich vorsorglich auch geschrieben:

Nee mal im Ernst, ....

Manchmal geht das schief mit der Ironie ... (Und mir wird des öfteren vorgeworfen, dass mein Detektor kaputt ist)

Wenn ich das nochmal lese: Du hast bei mir mit "mal im Ernst" genau das Gegenteil dessen erreicht, was Du wolltest.

Nicht böse sein, alles Gut!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren