Forum

Einloggen | Registrieren | RSS  

bastelix(R)

10.05.2020,
00:01
 

µC Batterielaufzeit rund 6 Monate, geht da noch was? (Elektronik)

Servus Zusammen,

Ich hab mir einen ATMega328p (8MHz interner Oszillator) mit einem 433MHz-Funkmodul (H34A) und einem DHT22 zusammengelötet und das ganze mit 3xAAA versorgt. Der µC liest den DHT22 jede Minute aus und sendet die Messwerte via 433MHz an einen Empfänger (die Daten werden 3 mal im Abstand von 250ms übertragen).

Das ganze hat jetzt mit einem Satz Batterien so rund sechs Monate funktioniert. Der erste Messwert in der DB ist von 2019-11-13 01:43:41.0 und der letzte Messwert ist von 2020-05-06 21:05:42.0.

Für den ersten Versuch finde ich das schon mal nicht schlecht. Allerdings frage ich mich ob da noch mehr geht um die Batterielebensdauer zu verlängern. Also ganz abgesehen davon, einfach das Intervall der Messungen zu vergrößern und damit den µC noch länger schlafen zu legen. Macht es hier Sinn nach weiteren Optimierungsmöglichkeiten zu suchen ohne das Messintervall zu vergrößern?

Gruß
Bastelix

xy(R)

E-Mail

10.05.2020,
00:49

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

Durchschnittsverbrauch : 250µA

Das geht sicherlich noch besser.

Wieviel benötigt der µC denn im Teilschlaf, gemessener Weise?

bastelix(R)

10.05.2020,
01:26

@ xy

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» Durchschnittsverbrauch : 250µA
»
» Das geht sicherlich noch besser.
»
» Wieviel benötigt der µC denn im Teilschlaf, gemessener Weise?

Mit Labornetzteil 4V sind es am DMM 0,035mA (2mA Messbereich). Beim senden zeigt das DMM kurz 1,2mA, dann noch kürzer OL an. Im 20mA Messbereich zeigt es 0,03mA in Ruhe und (vermutlich) beim Messen/Senden kurz 4mA oder sogar 9mA.

Messaufbau Labornetzteil Plus auf DMM COM, von DMM mA auf Platine Vin und dann von Platinen-GND auf Labornetzteil GND. DMM ist ein PeakTech 2005.

Wolfgang Horejsi(R)

10.05.2020,
07:51

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » Durchschnittsverbrauch : 250µA
» »
» » Das geht sicherlich noch besser.
» »
» » Wieviel benötigt der µC denn im Teilschlaf, gemessener Weise?
»
» Mit Labornetzteil 4V sind es am DMM 0,035mA (2mA Messbereich).

Das ist sehr viel. Analogteil ausgeschaltet?

xy(R)

E-Mail

10.05.2020,
09:41

@ Wolfgang Horejsi

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » » Durchschnittsverbrauch : 250µA
» » »
» » » Das geht sicherlich noch besser.
» » »
» » » Wieviel benötigt der µC denn im Teilschlaf, gemessener Weise?
» »
» » Mit Labornetzteil 4V sind es am DMM 0,035mA (2mA Messbereich).
»
» Das ist sehr viel.

Naja, der Sender braucht da im Schnitt viel mehr. Da kann man wohl deutlich mehr rausholen, z.B. durch eine sparsamere Modulation.

sponsorpi(R)

10.05.2020,
09:57

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» Servus Zusammen,
»
» Ich hab mir einen ATMega328p (8MHz interner Oszillator) mit einem
» 433MHz-Funkmodul (H34A) und einem DHT22 zusammengelötet und das ganze mit
» 3xAAA versorgt. Der µC liest den DHT22 jede Minute aus und sendet die
» Messwerte via 433MHz an einen Empfänger (die Daten werden 3 mal im Abstand
» von 250ms übertragen).
»
» Das ganze hat jetzt mit einem Satz Batterien so rund sechs Monate
» funktioniert. Der erste Messwert in der DB ist von 2019-11-13 01:43:41.0
» und der letzte Messwert ist von 2020-05-06 21:05:42.0.
»
» Für den ersten Versuch finde ich das schon mal nicht schlecht. Allerdings
» frage ich mich ob da noch mehr geht um die Batterielebensdauer zu
» verlängern. Also ganz abgesehen davon, einfach das Intervall der Messungen
» zu vergrößern und damit den µC noch länger schlafen zu legen. Macht es hier
» Sinn nach weiteren Optimierungsmöglichkeiten zu suchen ohne das
» Messintervall zu vergrößern?
»
» Gruß
» Bastelix

Welche Sleep-Mode verwendest du denn? Hat der 433MHz Sender auch Power-Down-Modi um Strom zu sparen?
Den Takt von 8 MHz auf 1 MHz setzen reduziert den Strom bei 4 V um etwa 3 mA im aktiven Zustand. Kann sich je nach Anwendung lohnen.

xy(R)

E-Mail

10.05.2020,
10:29

@ sponsorpi

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» Hat der 433MHz Sender auch
» Power-Down-Modi um Strom zu sparen?

Üblicherweise verbrauchen die ohne Modulation nur ein paar nA Leckstrom.

bastelix(R)

11.05.2020,
00:10

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

Danke für die Antworten. Ich fasse hier mal alles zusammen, in der Hoffnung, dass es für alle lesbarer bleibt.

» Das ist sehr viel. Analogteil ausgeschaltet?
Ich habe heute nochmal den µC neu gebrannt um sicherzustellen, dass der ADC abgeschaltet ist. Keine Änderung bei der Stromaufnahme im Ruhemodus.

» Welche Sleep-Mode verwendest du denn?
Ich verwenden die avr-sleep Bibliothek für Arduino, der sleep-mode ist SLEEP_MODE_PWR_DOWN. ADC, SPI, USART0 und TWI sind auch abgeschaltet. Alle nicht verwendeten PINs setzte ich auf INPUT_PULLUP.

» » Hat der 433MHz Sender auch Power-Down-Modi um Strom zu sparen?
» Üblicherweise verbrauchen die ohne Modulation nur ein paar nA Leckstrom.
Den 433-MHz-Sender habe ich auch mal abgesteckt, da ist kein Unterschied beim Stromverbrauch der Platine messbar. Das mit den paar nA Leckstrom sollte hier also passen.

» Den Takt von 8 MHz auf 1 MHz setzen reduziert den Strom bei 4 V um etwa 3 mA im aktiven Zustand. Kann sich je nach Anwendung lohnen.
Wen ich das noch richtig im Kopf habe kann es Probleme mit der ASK-Bibliothek geben, wenn der µC nur mit 1MHz läuft. Ich habs mal ausprobiert und über fünf Minuten keine Messwerte empfangen.

Der DHT22 braucht laut Datenblatt im Ruhemodus 10µA, wenn ich den DHT22 abstecke sinkt die Stromaufnahme von der Platine auch von 0,034mA auf 0,024mA. Der 4k7-Pullup für den DH22 dürfte vernachlässigbar sein, weil die Datenleitung im Ruhemodus auf HIGH liegt. Ich hab nochmal den Code der Bibliothek angeschaut. Nach dem Auslesen bleibt der PIN für den DHT auf INPUT (ohne internen Pullup). Vielleicht kann man da noch etwas optimieren indem man den PIN auf output und HIGH setzt. Aber ich glaub das fällt im Moment nicht wirklich ins Gewicht. Den DHT22 habe ich auch mal direkt an das Netzteil gehängt, Datenleitung auf VCC, und da 0,010mA gemessen. Sieht also auch gut aus.

» Naja, der Sender braucht da im Schnitt viel mehr. Da kann man wohl deutlich mehr rausholen, z.B. durch eine sparsamere Modulation.
Für die Übertragung verwende ich die Radiohead Arduino-Bibliothke (analog zum Empfangen auf einem andren µC) mit RH_ASK. Da mache ich es mir auch relativ einfach. Ich schicke einfach die C-Structs für die Messwerte über den Äther. Da könnte man vermutlich schon an der übertragenen Datenmenge noch etwas optimieren und dann halt beim Auslesen etwas mehr Aufwand betreiben. Aber ich glaube das macht auch nur ein paar µA/ms aus. Ist das ASK-Modulationsverfahren so stromhungrig? Welche alternativen gäbe es? Wobei ich mir im Moment nicht zutraue in endlicher Zeit eine andere Modulation selber zu implementieren, falls das mit der eingesetzten Hardware überhaupt gehen würde.

Ich hab das ganze auch nochmal ohne Sleep-Mode auf den µC gebrannt und dann frisst die Platine stolze 4,88mA im Ruhemodus. :-D

xy(R)

E-Mail

11.05.2020,
12:16

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» Radiohead Arduino-Bibliothke

Gibts da Dokumentation?


» Da mache ich es mir auch relativ einfach. Ich schicke einfach
» die C-Structs für die Messwerte über den Äther.

Wieviele Bit Roh- und Nutzdaten sind das?

sponsorpi(R)

11.05.2020,
15:32

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » Das ist sehr viel. Analogteil ausgeschaltet?
» Ich habe heute nochmal den µC neu gebrannt um sicherzustellen, dass der ADC
» abgeschaltet ist. Keine Änderung bei der Stromaufnahme im Ruhemodus.

Auch den AC? Der ist im Standardfall glaub ich auch an.

» » Welche Sleep-Mode verwendest du denn?
» Ich verwenden die avr-sleep Bibliothek für Arduino, der sleep-mode ist
» SLEEP_MODE_PWR_DOWN. ADC, SPI, USART0 und TWI sind auch abgeschaltet. Alle
» nicht verwendeten PINs setzte ich auf INPUT_PULLUP.

Wie weckt der Controler wieder auf? Falls du den WD dafür nicht verwendest, kannst du den auch noch abschalten.
Nur als Anregung: Mit einem TPL5000 und einem low Power Inverter kann man eine tolle Interrupt0/1 Source erstellen, der soll wohl nur 30 nA verbrauchen. Überprüft hab ich das aber nicht.

» » Den Takt von 8 MHz auf 1 MHz setzen reduziert den Strom bei 4 V um etwa 3
» mA im aktiven Zustand. Kann sich je nach Anwendung lohnen.
» Wen ich das noch richtig im Kopf habe kann es Probleme mit der
» ASK-Bibliothek geben, wenn der µC nur mit 1MHz läuft. Ich habs mal
» ausprobiert und über fünf Minuten keine Messwerte empfangen.

Da lob ich mir den Assembler :->

» » Naja, der Sender braucht da im Schnitt viel mehr. Da kann man wohl
» deutlich mehr rausholen, z.B. durch eine sparsamere Modulation.
» Für die Übertragung verwende ich die Radiohead Arduino-Bibliothke (analog
» zum Empfangen auf einem andren µC) mit RH_ASK. Da mache ich es mir auch
» relativ einfach. Ich schicke einfach die C-Structs für die Messwerte über
» den Äther. Da könnte man vermutlich schon an der übertragenen Datenmenge
» noch etwas optimieren und dann halt beim Auslesen etwas mehr Aufwand
» betreiben. Aber ich glaube das macht auch nur ein paar µA/ms aus. Ist das
» ASK-Modulationsverfahren so stromhungrig? Welche alternativen gäbe es?
» Wobei ich mir im Moment nicht zutraue in endlicher Zeit eine andere
» Modulation selber zu implementieren, falls das mit der eingesetzten
» Hardware überhaupt gehen würde.
»
» Ich hab das ganze auch nochmal ohne Sleep-Mode auf den µC gebrannt und dann
» frisst die Platine stolze 4,88mA im Ruhemodus. :-D

Ich denke der hohe Sandby-Verbrauch liegt hier noch im Argen. Vlt. nochmal bei den Pegeln der Pins im Power down nachschauen, da schleichen sich leicht Fehler ein.

xy(R)

E-Mail

11.05.2020,
17:36

@ sponsorpi

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» der hohe Sandby-Verbrauch

Ist doch gar nicht so entscheidend. Der macht ja nur etwa 15% des Gesamtverbrauchs aus.

bastelix(R)

11.05.2020,
23:40

@ xy

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » Radiohead Arduino-Bibliothke
»
» Gibts da Dokumentation?
Hier die Bibliothek http://www.airspayce.com/mikem/arduino/RadioHead/
Hier für den Treiber den ich verwende https://www.airspayce.com/mikem/arduino/RadioHead/classRH__ASK.html#details

» » Da mache ich es mir auch relativ einfach. Ich schicke einfach
» » die C-Structs für die Messwerte über den Äther.
»
» Wieviele Bit Roh- und Nutzdaten sind das?

Rohdaten: 152 Bit (7 Byte Header, Länge FCS und dann die 12 Byte Nutzdaten, sofern ich mich nicht verrechnet habe)
Nutzdaten: 96 Bit (12 Byte)

Bei den Nutzdaten könnte ich noch etwas optimieren, da schicke ich grad zwei float über den "Äther" - 4 Byte für Temperatur bzw. Luftfeuchte muss es bei den Messbereichen eigentlich nicht sein (wie gesagt, da hab ich es mir erstmal leicht gemacht)

bastelix(R)

12.05.2020,
00:03

@ sponsorpi

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» Auch den AC? Der ist im Standardfall glaub ich auch an.
AC höre ich diesbezüglich zum ersten mal. Wofür steht beim ATMega328p die Abkürzung?

» Wie weckt der Controler wieder auf? Falls du den WD dafür nicht verwendest,
» kannst du den auch noch abschalten.
Ich verwende den Watch Dog Timer, der holt den µC alle 8000ms aus dem Tiefschlaft und zählt via Interrupt einen Counter hoch.

» Nur als Anregung: Mit einem TPL5000 und einem low Power Inverter kann man
» eine tolle Interrupt0/1 Source erstellen, der soll wohl nur 30 nA
» verbrauchen. Überprüft hab ich das aber nicht.
Hab ich mir mal notiert. Wenn es an Version 0.0.2 oder 0.0.3 der Platine geht werde ich mich vielleicht mal näher damit beschäftigen.

» Da lob ich mir den Assembler :->
Jedem Tierchen sein Pläsierchen ;-)

» Ich denke der hohe Sandby-Verbrauch liegt hier noch im Argen. Vlt. nochmal
» bei den Pegeln der Pins im Power down nachschauen, da schleichen sich
» leicht Fehler ein.
Kann man da mit den Pins in der Größenordnung was falsch machen?
So oder so - die Pin-Beschaltung werde ich heute Abend nochmal prüfen

xy(R)

E-Mail

12.05.2020,
00:22

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» https://www.airspayce.com/mikem/arduino/RadioHead/classRH__ASK.html#details

Does not use the Arduino UART. Messages are sent with a training preamble, message length and checksum. Messages are sent with 4-to-6 bit encoding for good DC balance, and a CRC checksum for message integrity.

Klingt nach ziemlich viel Overhead. Wieviel ms dauert denn ein Paket bei dir?


» Bei den Nutzdaten könnte ich noch etwas optimieren, da schicke ich grad
» zwei float über den "Äther" - 4 Byte für Temperatur bzw. Luftfeuchte muss
» es bei den Messbereichen eigentlich nicht sein (wie gesagt, da hab ich es
» mir erstmal leicht gemacht)

Es lohnt sich sicherlich zu sparen.

Wolfgang Horejsi(R)

12.05.2020,
07:38

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » Auch den AC? Der ist im Standardfall glaub ich auch an.
» AC höre ich diesbezüglich zum ersten mal. Wofür steht beim ATMega328p die
» Abkürzung?
»
» » Wie weckt der Controler wieder auf? Falls du den WD dafür nicht
» verwendest,
» » kannst du den auch noch abschalten.
» Ich verwende den Watch Dog Timer, der holt den µC alle 8000ms aus dem
» Tiefschlaft und zählt via Interrupt einen Counter hoch.
»
» » Nur als Anregung: Mit einem TPL5000 und einem low Power Inverter kann
» man
» » eine tolle Interrupt0/1 Source erstellen, der soll wohl nur 30 nA
» » verbrauchen. Überprüft hab ich das aber nicht.
» Hab ich mir mal notiert. Wenn es an Version 0.0.2 oder 0.0.3 der Platine
» geht werde ich mich vielleicht mal näher damit beschäftigen.
»
» » Da lob ich mir den Assembler :->
» Jedem Tierchen sein Pläsierchen ;-)
»
» » Ich denke der hohe Sandby-Verbrauch liegt hier noch im Argen. Vlt.
» nochmal
» » bei den Pegeln der Pins im Power down nachschauen, da schleichen sich
» » leicht Fehler ein.
» Kann man da mit den Pins in der Größenordnung was falsch machen?
» So oder so - die Pin-Beschaltung werde ich heute Abend nochmal prüfen

Der Sensor hängt direkt an + oder wird er über einen Portpin mit Strom versorgt?

sponsorpi(R)

12.05.2020,
11:51

@ bastelix

µC Batterielaufzeit rund 6 Monate, geht da noch was?

» » Auch den AC? Der ist im Standardfall glaub ich auch an.
» AC höre ich diesbezüglich zum ersten mal. Wofür steht beim ATMega328p die
» Abkürzung?

Damit meine ich den Analog-Comparator.