ATmega328P Stromverbrauch

#7839029
Lesenswert?

Moin,

glaubt Ihr, daß man den Stromverbrauch noch irgendwie weiter senken kann (Batteriebetrieb)?

Die Schaltung besteht aus einem ATmega328P-PU und einem DEM 16101 TGH Display. Er läuft mit dem internen Oszillator bei 2 MHz. VDD=4.5V

Zwischen den Messungen schicke ich den Mega328 in den PWR_DOWN sleep-mode - aufwecken über Watchdog (8s), dann kommt man auf ca. 1mA für das Display und 266µA für den MCU in den Ruhephasen.

Wohlgemerkt es geht hier nur noch um die Optimierung per Software, denn die Schaltung ist bereits fertig und die Platinen produziert.

#7839032
Lesenswert?

Svensson schrieb:

DEM 16101 TGH Display.

Da dein Display den Hauptteil des Verbrauchs ausmacht und scheinbar an bleiben soll solltest du ein anderes nehmen, EA DOG braucht z.B. nur 0.25mA, gibt es scheinbar aber nur 1x8 oder 2x16.

Unter 50uA für den ATmegs328 der noch ein passives LCD dabei bedient sind aber scheinbar möglich

Beitrag "Re: NTC-Thermometer mit Padauk PFS154 und 7-Segementanzeige und UART-Ausgang"

Beitrag #7839039 wurde von einem Moderator gelöscht.
#7839108
Lesenswert?

Svensson schrieb:

Zwischen den Messungen schicke ich den Mega328 in den PWR_DOWN sleep-mode - aufwecken über Watchdog (8s), dann kommt man auf ca. 1mA für das Display und 266µA für den MCU in den Ruhephasen.

Ich habe hier ein Gerät gebaut, das mit diesem µP im Power-down-Modus bei 3 V, 8 MHz und abgeschaltetem Display weniger als 2 µA braucht.

Siehe folgendes Handbuch, Kapitel 10, insbesondere Punkt 10.1. https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf

Im Atmel-Handbuch scheint das nicht so zu stehen, ich sehe dort leider kein Inhaltsverzeichnis. :-(

Für minimalen Verbrauch muss man den Brown-out-Detektor im Power-down abschalten, ebenso den ADU und den Analog-Converter (beide aber VORHER, siehe Handbuch). Je nach Beschaltung können auch die Port-Pins unnötig Strom ziehen.

Beitrag #7839111 wurde von einem Moderator gelöscht.
#7839123
Lesenswert?

an Rolf: siehe Anhang. an Edi R.: nun ja, das Aufwachen per Watchdog ist ja Sinn der Übung. an Svensson: eigentlich kann man nicht viel falsch machen:

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <avr/sleep.h>
4

5
ISR(WDT_vect)
6
{}
7
int main (void)
8
{
9
    DDRD|=(1<<PB0);
10
    SMCR=(1<<SE)+(1<<SM1);
11
    WDTCSR = (1<<WDCE)|(1<<WDE);
12
    WDTCSR = (1<<WDIE)|(1<<WDP3)|(1<<WDP0);
13
    sei();
14
    while (1) {
15
        sleep_mode();
16
        PINB|=(1<<PB0);
17
    };
18
}
Angehängte Dateien:
#7839144
Lesenswert?

@Jens Na ja, nackt heißt natürlich, daß an den Portpins nichts angeschlossen ist.

Da sind zwei Kerkos 100nF und ein 470µF in der +4,5V. Und natürlich ein 10k zum /RESET.

@Edi Tatsächlich habe ich zwei Pins offenbar nicht definiert, sondern im Lieferzustand gelassen. Was verbraucht denn am wenigsten Strom?

Die Pullups sind überall ausgeschaltet.

#7839146
Lesenswert?

Vielleicht einen Eingang, bei dem der interne Pull-Up aktiviert ist, und der auf GND gezogen wird?

Wäre denkbar, aber dann müssten es schon zwei sein, um auf die 266 uA zu kommen.

zwei Pins offenbar nicht definiert, sondern im Lieferzustand gelassen

Also Eingänge - aber der ATmega328P schaltet die Eingangsstufen im Power-down-Modus ab.

Angehängte Dateien:
Gast #7839149
Lesenswert?

Svensson schrieb:

Was verbraucht denn am wenigsten Strom?

Alle Pins sollen eindeutig auf High oder Low liegen. Du kannst das z.B durch Aktivieren der Pull-up Widerstände erreichen, außer bei den Pins, die extern auf Low gezogen werden.

Die Versorgungsspannung reduzieren bringt auch einiges.

#7839151
Lesenswert?

Edi R. schrieb:

Zufällig habe ich das gestern auch gemessen. 6,2 µA bei 5V VCC.

266 µA ist zu viel. Ich meine, da wäre noch einiges an Einsparpotential drin, aber ohne Schaltung kann man da nichts sagen.

Hier überwacht ein Arduino Pro-Mini 5V einen Akkusatz, Spannungsregler und LED habe ich entfernt. Gespeist wird er aus 12V über Diode, dicken Elko und MCP1702-5002. Der wacht alle 8s auf, inkrementiert einen Zähler, fragt einen Schalter ab, prüft den Zählerstand und geht wieder 8s schlafen, bis der Zähler 111 erreicht.

Programmiert mit Arduino, liegt das Gesamtgebilde um 25µA.

1
#include "LowPower.h"
2

3
 LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
4
 SleepCycles++;

Svensson schrieb:

Ich habe eine nackte Platine, d.h. im Augenblick ist dort nichts angeschlossen. Keine Sensoren, kein Display. Trotzdem komme ich nicht unter die 0,266mA.

Finde den Fehler, ohne irgendwelche Verrenkungen geht erheblich weniger. Schaue mal die Arduino LowPower.h an, ob dort etwas gemacht wird, was Du übersehen hast.

Den Status Deiner Ports zu kontrollieren wurde schon gesagt!

Angehängte Dateien:
#7839186
Lesenswert?

Die Bibliothek compiliert bei mir nicht: multiple definiton of vector_6.

Damit wir nicht Äpfel mit Birnen vergleichen, habe ich einen 328P auf eine Platine gelötet. Ohne alles, nicht einmal Kerkos.

Da komme ich auch auf die 0,265mA.

Da muß ich wohl sleep.h und wdt.h irgendwie falsch verwenden.

#7839192
Lesenswert?

Svensson schrieb:

Damit wir nicht Äpfel mit Birnen vergleichen, habe ich einen 328P auf eine Platine gelötet. Ohne alles, nicht einmal Kerkos.

Und was soll der Scheiß?

https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator

Eher so

1
/*
2

3
Einfacher Test für Stromverbrauchim Deep Sleep Mode (<1uA)
4
Brown Out Detector (BOD) über Fuses deaktivieren!
5

6
*/
7

8
#include <avr/io.h>
9
#include <avr/sleep.h>
10

11
int main(void) {
12

13
    // Alle IOs als Input mit internen Pull Ups
14
    PORTB = 0xFF;
15
    PORTC = 0xFF;
16
    PORTD = 0xFF;
17

18
    // Analogkomparator ausschalten, der ist beimn Reset immer an
19
    ACSR = (1<<ACD);
20

21
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
22
    sleep_mode();   // schlafen bis zum Reset
23
}
#7839224
Lesenswert?

Nun, es könnte ja sein, daß einer der Cs fehlerhaft ist. Aber daran liegt es nicht.

Mit Deinem Script komme ich auf 0,22 µA, was wohl ziemlich dicht an der Genauigkeitsgrenze meines Multimeters liegen dürfte.

Schreibe ich das in mein Script und füge den WDT hinzu, dann lande ich bei den 263 µA. Allerdings funktioniert es, daß er dann alle 8s aufgeweckt wird.

1
void watchdogSetup(int ii) {
2
  if (ii>9) {ii=9;}
3
  byte bb = ii & 7;
4
  if (ii>7) {bb |= (1<<5);}
5
  bb |= (1<<WDCE);
6
  MCUSR &= ~(1<<WDRF);
7
  WDTCSR |= (1<<WDCE)|(1<<WDE);
8
  WDTCSR = bb;
9
  WDTCSR |= (1<<WDIE);
10
  }
#7839311
Lesenswert?

Svensson schrieb:

WDTCSR |= (1<<WDIE);

Damit löst der Watchdog beim Aufwachen Interrupts aus. Passiert da was in der ISR?

Und wie stellst du fest, dass das Aufwachen funktioniert? Hoffentlich nicht mit einer LED, die "nur ganz kurz" aufleuchtet?

Ich habe schnell mal einen ATmega328PB im Steckbrett ausprobiert. Damit komme ich auf 18 µA. Die 263 µA habe ich nicht einmal, wenn ich vergesse, den Programmer (AVRISP-MKII-Clone) abzustecken. Dann wären es nämlich 80 µA.

#7839372
Lesenswert?

Die Bibliothek compiliert bei mir nicht: multiple definiton of vector_6.

Woher kommt die zweite Definition von ISR(WDT_vect)?

Schreibe ich das in mein Script und füge den WDT hinzu

Umgekehrt: füge ich Ihr 'watchdogSetup' in meinem Minimalprogramm ein und rufe es mit '9' auf, dann blinkt die LED an B0 im 8 s-Rhythmus, und in der Ruhephase fließen 6.6 uA.

Sie werden wohl oder übel Ihr 'Script' zeigen müssen (incl. der Fuses) ...

#7839407
Lesenswert?

Paul B. schrieb:

Für solche Messungen stehen bei uns im Labor Messgeräte für 4-5K, bist du dir sicher das deine Messtechnik der Aufgabe ausreichend gewachsen ist?

Bist Du auch zertifiziert, sie ansehen zu dürfen? :-(

Edi R. schrieb:

Und wie stellst du fest, dass das Aufwachen funktioniert? Hoffentlich nicht mit einer LED, die "nur ganz kurz" aufleuchtet?

Für eine LED reichen 1 mA und ein Aufblitzen von 10 ms völlig aus. Bei 8 s Pulsabstand ergibt sich ein eff. Strom von 1,3 µA. Wie S. L. (sldt) schrieb, ist die Pause im übrigen lang genug, um den Ruhestrom ablesen zu können.

Für mich ist ein typischer Ruhestromwert mit WDT und int. Oszillator 7 µA. Aber das ist doch nebensächlich, wenn das Display allein schon 1 mA braucht.

#7839413
Lesenswert?

Mi N. schrieb:

Edi R. schrieb:

Und wie stellst du fest, dass das Aufwachen funktioniert? Hoffentlich nicht mit einer LED, die "nur ganz kurz" aufleuchtet?

Für eine LED reichen 1 mA und ein Aufblitzen von 10 ms völlig aus. Bei 8 s Pulsabstand ergibt sich ein eff. Strom von 1,3 µA.

Da hast du allerdings recht.

Wie S. L. (sldt) schrieb, ist die Pause im übrigen lang genug, um den Ruhestrom ablesen zu können.

Stimmt auch. 8 Sekunden müssten da üppig reichen.

Aber das ist doch nebensächlich, wenn das Display allein schon 1 mA braucht.

Um ein paar Mikroampere zu feilschen, bringt sicher nichts. Aber 262 µA sind dann schon 20% des Gesamtverbrauchs. Da lohnt es sich, ein wenig zu drehen. Das Display mit seinem Strombedarf müssen wir ja vermutlich als gegeben hinnehmen.

#7839491
Lesenswert?

Danke schon einmal für die rege Anteilnahme!

Damit löst der Watchdog beim Aufwachen Interrupts aus. Passiert da was in der ISR?

Ja, es wird eine Boolean gesetzt. (Benutze ich im Moment eigentlich gar nicht mehr - wird evtl. vom Compiler entfernt.)

1
ISR(WDT_vect) { waitForWDT:=0; }

Und wie stellst du fest, dass das Aufwachen funktioniert?

Bei der Testplatine sehe ich, daß der Stromverbrauch von 0,266 auf 4,0 mA steigt. Das ist der Meßvorgang, der alle 8s stattfindet (Pins auf High usw.). Bei der richtigen Platine sehe ich, daß sich die Anzeige auf dem Display alle 10s verändert. Da ändert sich der Stromverbrauch von 1,3mA auf ca. 5mA.

Das Display mit seinem Strombedarf müssen wir ja vermutlich als gegeben hinnehmen.

Für die aktuellen Exemplare schon, jedoch ist nicht ausgeschlossen, daß da noch mal welche nachkommen. Das ist schon die stromsparendste Variante, die ich finden konnte. (Alle anderen Schaltungen, die ich bisher gebaut habe, hatten Netzteile, da spielt der Stromverbrauch keine Rolle. Normalerweise benutze ich gerne die blau/weissen mit 4x20 Zeichen, die schon mal 40mA verbrauchen können - das geht hier natürlich nicht.) Natürlich bin ich immer auf der Suche; ich muß eigentlich nur 2 fünfstellige Zahlen anzeigen können, daher habe ich hier 1x16 gewählt. Vielleicht könnte ich mal die e-Ink-Displays probieren, die sollen angeblich kaum Verbrauch haben, wenn die Anzeige sich nicht ändert, was bei dem hier liegenden Fall ja ca. 10s der Fall wäre.

#7839665
Lesenswert?

S. L. schrieb:

an Rolf: siehe Anhang.

Wenn du mir nun noch erklärst, was ich da sehen soll, was ich nicht schon wusste ...

an Edi R.: nun ja, das Aufwachen per Watchdog ist ja Sinn der Übung.

Das geht auch ohne den Watchdog. Man kann eine RTC nehmen, die fast nichts verbraucht (z. B. die DS3231) und den µP regelmäßig z. B. per INT 0 weckt. So habe ich es gemacht. Gut, kostet einen Chip mehr, aber ich brauchte ohnehin eine Uhr.

#7839675
Lesenswert?

Wenn du mir nun noch erklärst ...

Im Atmel-Handbuch scheint das nicht so zu stehen

... Man kann eine RTC nehmen ...

Wohlgemerkt es geht hier nur noch um die Optimierung per Software, denn die Schaltung ist bereits fertig und die Platinen produziert.

#7839854
Lesenswert?

Svensson schrieb:

Nun, es könnte ja sein, daß einer der Cs fehlerhaft ist. Aber daran liegt es nicht.

Ohne Kerko ist die Schaltung wenigstens GARANTIERT fehlerhaft. Falls du deinen Kerkos nicht traust, könntest du sie einfach vorm Einbauen prüfen.

Mit welcher Spannung betreibst du deinen ATmega überhaupt? Bekommt der die gleichen 4.5V wie das Display?

#7840039
Lesenswert?

Moin, das mit den Kerkos bitte nicht falsch verstehen. Das war lediglich eine Testplatine, auf der sich dann nur der MC und sein ISP-Header befanden. Auf den "normalen" Platinen befinden sich zwei Kerkos und auch ein Elko. Es lag aber nicht an den Kondensatoren (hätte mich auch gewundert).

Bekommt der die gleichen 4.5V wie das Display?

Ja. Alles läuft mit der selben Spannung aus 3x 1,5V Primärzellen.

MCU und Sensoren würden auch mit 3V laufen, aber das Display hat dann keinen Kontrast mehr. Und wenn man eine zusätzliche negative Spannung erzeugen würde, dann macht das die Stromsparbemühungen wahrscheinlich zunichte. Aussichtsreicher erscheint der Umstieg (bei der nächsten Variante) auf EA DOGM081L oder so etwas wie DE133-R.

#7840058
Lesenswert?

Svensson schrieb:

das mit den Kerkos bitte nicht falsch verstehen. Das war lediglich eine Testplatine, auf der sich dann nur der MC und sein ISP-Header befanden.

Dann erwarte nicht, dass der µC auf der Testplatine normal arbeitet.

Und wenn man eine zusätzliche negative Spannung erzeugen würde, dann macht das die Stromsparbemühungen wahrscheinlich zunichte.

Du könntest in die Masseleitung eine Diode schalten - die würde 2ct kosten. Dann hättest du deine negative Hilfsspannung. Die Stromsparbemühungen würde das nicht tangieren.

#7840065
Lesenswert?

Doch, der arbeitet normal. Das mag jedoch in einer Feldumgebung anders aussehen. Hier ging es aber um Laborbedingungen.

Du könntest in die Masseleitung eine Diode schalten - die würde 2ct kosten.

Nette Idee, aber wenn ich das DB richtig verstehe, dann ist die Spannung für den Kontrast die Summe von VDD und V0. Und das Display braucht ~ 4,5V für den Kontrast. Da ist es egal, wie ich die 3V aufteile, das ist einfach zu wenig.

Gast #7840290
Lesenswert?

Svensson schrieb:

Alles läuft mit der selben Spannung aus 3x 1,5V Primärzellen. MCU und Sensoren würden auch mit 3V laufen, aber das Display hat dann keinen Kontrast mehr.

Was machst du denn, wenn die Batterien nicht mehr ganz voll sind? Die Spannung sinkt doch kontinuierlich bis auf 3x 0,9V ab. Erst dann sind sie verbraucht.

#7840324
Lesenswert?

Svensson schrieb:

Aussichtsreicher erscheint der Umstieg (bei der nächsten Variante) auf EA DOGM081L oder so etwas wie DE133-R.

Wenn DU richtig Strom sparen willst, nimmst Du sowas hier https://www.orientdisplay.com/standard_lcd/od-502.pdf und einen AVR oder PIC, der einen passenden LCD Controller drin hat. Bei solchen statischen Displays könnte man das auch in Software machen, aber die LCD-Controllerhardware braucht weniger Strom.

fchk

#7840430
Lesenswert?

Svensson schrieb:

Bekommt der die gleichen 4.5V wie das Display?

Ja. Alles läuft mit der selben Spannung aus 3x 1,5V Primärzellen.

MCU und Sensoren würden auch mit 3V laufen, aber das Display hat dann keinen Kontrast mehr.

Dann überlege, ob nicht Dein Gesamtkonzept grob unsinnig ist. Ein 328 kann klaglos mit einem LiIon-Akku laufen, der auch mit einem 3V3-LDO wie MCP1702 noch weit genug entladbar ist.

Pandur S. schrieb:

eh.. offene Eingaenge duerfen auch nicht sein.

Das ist ein wichtiger Hinweis! Bei mir werden zu Beginn grundsätzlich alle Ports deklariert.

Unbenutzte Pins als Ausgang schalten.

Oder Input_Pullup, ist toleranter gegen Fehlbeschaltung.

Frank K. schrieb:

Wenn DU richtig Strom sparen willst, nimmst Du sowas hier https://www.orientdisplay.com/standard_lcd/od-502.pdf und einen AVR oder PIC, der einen passenden LCD Controller drin hat.

Gibt es eigentlich keine LCDs mit 44780 und 3,3 Volt? Ich habe einen Aufbau 0,96"-OLED an einem LiIon-Akku, bin aber weder mit dessen Helligkeit noch Ressourcenbedarf glücklich.

#7840470
Lesenswert?

Wenn DU richtig Strom sparen willst, nimmst Du sowas hier

https://www.orientdisplay.com/standard_lcd/od-502.pdf

Das ziehe ich bei der nächsten Entwicklung in Betracht. Allerdings brauche ich dann wieder irgendwelche Schieberegister (o.ä.), denn dafür hat der MCU einfach nicht genug Ports. Da befürchte ich aber, daß die erweiterte Elektronik dann mehr Strom verbraucht als ein sparsames Display.

LiIon-Akku

Kommt aus Sicherheitsgründen nicht in Frage. Dann eher noch eine Primärzelle mehr.

Vermutlich reicht die Laufzeit auch so. Es handelt sich um Meßgeräte für den Kurzzeiteinsatz.

#7840497
Lesenswert?

Svensson schrieb:

Wenn DU richtig Strom sparen willst, nimmst Du sowas hier

https://www.orientdisplay.com/standard_lcd/od-502.pdf

Das ziehe ich bei der nächsten Entwicklung in Betracht. Allerdings brauche ich dann wieder irgendwelche Schieberegister (o.ä.), denn dafür hat der MCU einfach nicht genug Ports. Da befürchte ich aber, daß die erweiterte Elektronik dann mehr Strom verbraucht als ein sparsames Display.

Du hast den zweiten Teil unterschlagen: "und einen AVR oder PIC, der einen passenden LCD Controller drin hat." Das gehört dazu. https://www.microchip.com/en-us/product/atmega6490a

fchk

#7840524
Lesenswert?

Frank K. schrieb:

Du hast den zweiten Teil unterschlagen

Jein.

Bei einen nicht-gemultiplexten LCD wie im Link tut es ein normaler CMOS-Ausgang wie jeder AVR Port. Nur bei gemultiplexten LCD braucht es Controller (ATmega169). Aber auch nicht zwingend, mit ein paar Widerständen geht es auch so, siehe den schon genannten Beitrag "Re: NTC-Thermometer mit Padauk PFS154 und 7-Segementanzeige und UART-Ausgang"

Man muss halt bei Batterieschaltungen mehr können, als Svensson bisher kann. Man muss damit rechnen dass die Batteriespannung sinkt und passende Bauteile aussuchen, genau so wie energiesparende.

#7840548
Lesenswert?

Michael B. schrieb:

Frank K. schrieb:

Du hast den zweiten Teil unterschlagen

Jein.

Bei einen nicht-gemultiplexten LCD wie im Link tut es ein normaler CMOS-Ausgang wie jeder AVR Port.

Sicher, kann man so machen. Ist dann aber Mist, weil die dedizierte Hardware stromsparender ist. Da kann der Prozessor dauerhaft im Sleep verweilen, und nur der LCD Controller ist aktiv. Das sind deutlich weniger Gatter.

fchk

#7840569
Lesenswert?

Michael B. schrieb:

Du kannst den 44700 mit 3.3V betreiben, brauchst aber VEE von -1.7V damit das Display 5V sieht. Nichts gewonnen.

Was soll sein, die negative Spannung kann man mit einer Ladungspumpe erzeugen - auch als 'Abfallprodukt' aus einem Schaltregler. 7-Segment LC-Anzeigen kommen mit 3 - 5 V problemlos klar, was aber im aktuellen Fall nicht hilft. Vielleicht wäre eine Versorgungsspannungswandlung mit Aufwärts- oder Abwärtswandler sinnvoll, die mit passenden Bauteilen effizient arbeiten können.

Manfred P. schrieb:

Unbenutzte Pins als Ausgang schalten.

Oder Input_Pullup, ist toleranter gegen Fehlbeschaltung.

Bei Ausgang auf '0' kann kein Strom aus dem Controller abgezweigt werden. 'Fehlbeschaltung' ist ein Angstargument.

#7843094
Lesenswert?

Svensson schrieb:

Dann würde ich beim nächsten Mal folgenden Weg probieren: 2 Zellen mit nominal 3V. Dann einen Schaltregler Step-Up auf ca. 4,5V. Als Display ein 7-Segment LCD mit ein paar 74HC595 zur Ansteuerung.

7-Segment LCD-Gläser müssen mit Wechselspannung betrieben werden, damit sie nicht durch Elektrolyse beschädigt werden. Schieberegister sind hier nicht die ideale Lösung. Ja, kann man zur Not machen, aber dann muss der Prozessor diese selber erzeugen, was wieder extra Strom verbraucht. Besser einen Prozessor, der einen passenden Controller bereits enthält, oder einen extra LCD-Treiber für segmentierte Gläser verwenden. Such Dir hier einen passenden aus: https://www.nxp.com/docs/en/brochure/LCDDISDRSOLBR.pdf

fchk

#7843134
Lesenswert?

S. L. schrieb:

Schieberegister sind hier nicht die ideale Lösung.

Möchte ich so pauschal nicht bestätigen - 8-stellige Anzeige (LCD-Glas 'DE 125') per 8* HC595 mit einem AVR16DD28 angesteuert benötigt hier unter 10 uA (bei 3.0 V).

So sieht es aus! Auch ein ATmega oder STM32G0xx/L0xx sollte hinreichend wenig Strom verbrauchen. Die statischen LC-Anzeigen laufen in einem weiten Versorgungsspannungsbereich. 3 V oder 5 V sind egal. Der Vorteil bei der Geschichte: man kann alle Anzeigen mit passender Anzahl an SR ansteuern - hier werden ja 10 Stellen gebraucht.

#7843229
Lesenswert?

Such Dir hier einen passenden aus:

Solange es irgendwie geht, würde ich bei den AVR bleiben. Sonst müßte ich viel zu viel umstellen und evtl. auch noch neue Werkzeuge besorgen, usw.

7-Segment LCD-Gläser müssen mit Wechselspannung betrieben werden, damit sie nicht durch Elektrolyse beschädigt werden.

Gilt das allgemein? Muß das eine Wechselspannung sein oder reicht auch eine "gepulste" Gleichspannung?

oben genannte Anordnung läuft auch (gerade noch) mit 2.0 V.

Das wäre ideal, weil ich dann einfach bei den 3 Zellen bleiben könnte. Wenn die entladen sind, dann wäre das System bei 0,9V pro Zelle immer noch funktionsfähig.

Der Vorteil bei der Geschichte: man kann alle Anzeigen mit passender Anzahl an SR ansteuern - hier werden ja 10 Stellen gebraucht.

Ich käme - ohne großen Funktionsverlust - auch mit 8 Stellen aus, da würde ein einziges Display DE 125 ausreichen.

#7843240
Lesenswert?

Svensson schrieb:

Gilt das allgemein? Muß das eine Wechselspannung sein oder reicht auch eine "gepulste" Gleichspannung?

Die Wechselspannung wird durch die Schieberegister so erzeugt, daß ein Pin die BP und die restlichen die Segmente ansteuern: http://mino-elektronik.de/7-Segment-Variationen/LCD.htm#lcd1 Man kann die 4-stelligen Anzeigen einfach kaskadieren. Wenn die angezeigten Werte sich nicht schnell ändern, kann mit sehr niedriger Frequenz gearbeitet werden, was die Stromaufnamhe weiter senkt.

#7843251
Lesenswert?

Svensson schrieb:

7-Segment LCD-Gläser müssen mit Wechselspannung betrieben werden, damit sie nicht durch Elektrolyse beschädigt werden.

Gilt das allgemein? Muß das eine Wechselspannung sein oder reicht auch eine "gepulste" Gleichspannung?

Gleichanteil 0 ist das Erfordernis. Ist aber einfach zu erreichen, indem man die Backplane einfach gegenphasig ansteuert.

Ist hier erklärt: http://awawa.hariko.com/avr_lcd_drive_en.html

Der Vorteil bei der Geschichte: man kann alle Anzeigen mit passender Anzahl an SR ansteuern - hier werden ja 10 Stellen gebraucht.

Ich käme - ohne großen Funktionsverlust - auch mit 8 Stellen aus, da würde ein einziges Display DE 125 ausreichen.

Der Nachteil an diesen quasi-statisch betriebenen LCD ist halt, daß sie so viele Pins brauchen. Einen pro Segment plus einen für die Backplane. Deswegen findet man LCD mit vielen Segmenten nur selten für diese Art der Ansteuerung.

Man kann auch gemuxte LCD mit GPIO ansteuern (siehe obigen Link) aber das wird schnell aufwendig. Und stromsparend ist es dann auch nicht mehr. Dann verwendet man besser einen separaten LCD Driver wie z.B. HT1621.

#7843259
Lesenswert?

Axel S. schrieb:

Der Nachteil an diesen quasi-statisch betriebenen LCD ist halt, daß sie so viele Pins brauchen. Einen pro Segment plus einen für die Backplane. Deswegen findet man LCD mit vielen Segmenten nur selten für diese Art der Ansteuerung.

Der Vorteil bei 13 mm Anzeigen ist, daß man die SRs passend darunter bestücken kann (siehe obiger Link) und ohne Multiplexen der Kontrast sehr hoch ist.

#7843398
Lesenswert?

@ Mi N.

Das ist sehr nett. Vielleicht komme ich darauf zurück, denn das würde mir viel Lötarbeit (für das Muster) ersparen. Wahrscheinlich ist es auch besser, als Grundelement eine 4stellige Anzeige zu nehmen, die flexibler eingesetzt werden kann, als eine 8stellige Anzeige.

Backplane und Segmente werden im Wechsel komplementär angesteuert

Danke für die guten Erklärungen. Ich glaube, daß ich es verstanden habe. Irrtümlich hatte ich gedacht, daß die LCD-7-Segment so funktionieren wie die LED-7-Segment. Letztere habe ich schon verbaut (wegen Sichtbarkeit auf größere Entfernungen und unter schlechten Lichtverhältnissen, aber mit Netzstromversorgung), erstere hingegen noch nie.

Ich vermute stark, daß die Displaymodule mit dem HD44780 (bzw. Klone) dann wahrscheinlich intern auch so arbeiten?

#7843599
Lesenswert?

Svensson schrieb:

Ich vermute stark, daß die Displaymodule mit dem HD44780 (bzw. Klone) dann wahrscheinlich intern auch so arbeiten?

Die haben sehr viel mehr Segmente - jedes Pixel ist eins. Und davon hat man 5×8 (gelegentlich auch 5×10) × Anzahl Zeilen × Anzahl Spalten. Also für ein hundsgewöhnliches 2x16 LCD schon mindestens 1280 Segmente.

Der HD44780 arbeitet mit 5 Spannungsleveln. Entsprechend kompliziert sind die Signalformen.

#7845235
Lesenswert?

S. L. schrieb:

Möchte ich so pauschal nicht bestätigen - 8-stellige Anzeige (LCD-Glas 'DE 125') per 8* HC595 mit einem AVR16DD28 angesteuert benötigt hier unter 10 uA (bei 3.0 V).

Heute habe ich meine Schaltung mit ATtiny44 und 4-stell. LCD bei 3 V mit statischer Anzeige "1234" gemessen: 35 µA. Davon werden für die Anzeige selbt ca. 10 µA benötigt (Differenz bei abgeschaltetem Display). Interner 8 MHz Takt, herausschieben der Daten per C-Routine, WDT als Timer mit 16 ms Zyklus und die CPU schläft in den Pausen. Dies zur Einschätzung, was auch ein ATmega328 schaffen sollte.

#7845248
Lesenswert?

... 35 µA ...

Zur Differenz zu meiner "Studie": nur halber LCD-Takt mit 32 Hz, erzeugt vom RTC-PIT des AVR16DD28, welcher nur 1.0 uA benötigt. Des weiteren sind die Schieberegister in zwei SPI-Stränge a vier 74HC595 aufgeteilt, SPI-Takt 8 MHz. Alles in Assembler.

was auch ein ATmega328 schaffen sollte

Bei diesem sollte der asynchrone Timer2 mit 32 KiHz-Quarz auch nur bei etwa 1 uA liegen.

#7845285
Lesenswert?

Bei mir sind auf der Platine HEF4094 bestückt, die bei 3 V und Assemblerprogrammierung bzw. Hardware-SPI nicht mehr mitkämen. Zudem ist es auch sinnvoll, die Batterien durch moderate Stromentnahme zu leeren, bevor sie noch halb geladen auslaufen ;-)

Gast #7845290
Lesenswert?

Mi N. schrieb:

sinnvoll, die Batterien durch moderate Stromentnahme zu leeren, bevor sie noch halb geladen auslaufen

Willst du damit sagen, dass entladene Batterien harmloser auslaufen?

Ich kenne das eher umgekehrt. Entladene Batterien sauen häufiger und mehr herum.

#7845393
Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

Willst du damit sagen, dass entladene Batterien harmloser auslaufen?

Ich habe mir lediglich erlaubt, einen kleinen Scherz zu machen. Angenommen, der TO bekommt seine Anwendung mit insgesamt 50 µA mittlerer Stromaufnhame hin und verwendet eine zeitgemäße LiIon-Zelle mit 3 Ah. Diese würde rechnerisch für etwa acht Jahre die Schaltung versorgen. Wenn er nur 5 µA braucht, kommt er auf 80 Jahre. Ist das denn notwenig?

Hach, schon wieder ein kleiner Scherz zum Freitag Abend.

#7845420
Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

schon wieder ein kleiner Scherz

Ach. Ich habe ihn nicht begriffen. Macht nichts.

Nach Aschermittwoch werden im Rheinland ja auch die Bürgersteige eingefahren, dann verstehen die dort keinen Spaß mehr.

Ein neuer Versuch ;-)

Svensson schrieb:

Eine Betriebszeit von 500h wäre super, aber selbst 180h wohl noch akzeptabel. Bei einer Nutzung von täglich 1/2 Stunde würde das dann für mehr als 1 Jahr ausreichen.

Dafür reicht doch aber Deine jetzige Schaltung schon? Einen LiIon-Akku + Aufwärtswandler für 5 V, dazu eine kleine TP4056 Ladeplatine mit USB-Stecker und man ist mobil und kann überall nachladen. Oder noch einfacher, man nimmt eine Powerbank mit Wachhalteschaltung, was der ATmega328 mit erledigen kann.

#7845473
Lesenswert?

Dafür reicht doch aber Deine jetzige Schaltung schon?

Ich weiß nicht genau, wie lange die 3 AAA-Zellen den Stromverbrauch von 2,1mA aushalten bevor man das Display nicht mehr ablesen kann. Ich hoffe, daß es zumindest die 200h sind.

Ein LiIon-Akku kommt - wie bereits oben gesagt - aus Sicherheitsgründen für mich nicht in Betracht, dann lieber Batterien wechseln. :)

Außerdem möchte ich gern auch dazulernen, um beim nächsten batteriebetriebenem Gerät besser vorbereitet zu sein.

#7845602
Lesenswert?

Svensson schrieb:

7-Segment LCD-Gläser müssen mit Wechselspannung betrieben werden, damit sie

nicht durch Elektrolyse beschädigt werden.

Gilt das allgemein? Muß das eine Wechselspannung sein oder reicht auch eine "gepulste" Gleichspannung?

Reicht, wenn man es richtig steuert. Es muss reine Wechselspannung über dem Segment anliegen (Gleichspannungsanteil = 0), also zur Ansteuerung je eine Halbbrücke pro Elektrode, angesteuert mit dem passenden Timing.

#7845649
Lesenswert?

an Svensson:

ich muß eigentlich nur 2 fünfstellige Zahlen anzeigen können

Ein Denkanstoß, wenn vielleicht auch etwas weit hergeholt: "Multiplex-Betrieb" im weitesten Sinne. Ich habe ein kleines Kästchen, das auf 2-stelligem LCD-Glas die drei Werte Temperatur, relative Feuchte und Luftdruck anzeigt; nacheinander im Sekundenrhythmus. Den Luftdruck modulo 100, und um bei niedrigem eine Verwechslung mit der Feuchte auszuschließen, wird einer der Dezimalpunkte als Kennung verwendet. Messung jede Minute (Luftdruck alle 10'). Strom im zeitlichen Mittel unter 3 uA, Versorgung aus 3 V-Knopfzelle. Wenn man sich einschränkt und auf Komfort verzichtet, ist vieles möglich (und man spart an Aufwand bei der Hardware).

Und Mi N. wird nun sicher auch hierzu ein Spaß einfallen ...

#7845699
Lesenswert?

Svensson schrieb:

Ein LiIon-Akku kommt - wie bereits oben gesagt - aus Sicherheitsgründen für mich nicht in Betracht, dann lieber Batterien wechseln. :)

Gut, das hatte ich nicht mehr im Hinterkopf.

S. L. schrieb:

So eine Micro-Zelle hat doch über 1000 mAh ...

Svensson schrieb:

Ich weiß nicht genau, wie lange die 3 AAA-Zellen den Stromverbrauch von 2,1mA aushalten bevor man das Display nicht mehr ablesen kann.

Rechnerisch sind es ca. 500 Stunden, was Dir ja reichen sollte. Bei diesen Display ist aber eine konstante Versorgungsspannung Pflicht. Weiter oben wurden doch Aufwärtswandler mit sehr gutem Wirkungsgrad vorgeschlagen, die ich auf jeden Fall einsetzen würde. Damit stehen dann 5 V bis zur völligen Entleerung der Zellen zur Verfügung. Vielleicht gibt es bei Ali irgendwelche kleinen Platinen in Fingernagelgröße zu 50 ct im 10er-Pack. Ein suboptimales Beispiel mit niederiger Schaltfrequenz: https://de.aliexpress.com/item/32809095271.html

Diese Platine könntest Du vermutlich noch irgendwo 'anpappen' und hättest Deine jetzige Schaltung bezüglich der schwanken Vbatt gerettet.

S. L. schrieb:

Wenn man sich einschränkt und auf Komfort verzichtet, ist vieles möglich (und man spart an Aufwand bei der Hardware).

Muß man ja nicht, wenn man bei einem neuen Schaltungsansatz UNSERE genialen Vorschläge berücksichtigt ;-)

#7845729
Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

Svensson schrieb:

Ich hoffe, daß es zumindest die 200h sind.

Dann bist du schätzungsweise schon auf 1,2 Volt (pro Zelle) runter.

Gilt dieser (schlechte) Wert auch bei dem doch sehr niedrigen Strom von 2.1 mA? Gibt es entsprechende Entladekurven - ich habe auf die Schnelle nur das im Anhang gefunden.

Angehängte Dateien:
#7845750
Lesenswert?

Angeblich haben die Microzellen so zwischen 1100mAh bis 1450mAh. Rechnerisch wären das dann 523 bis 690h. Die Primärzellen sind vom Discounter mit vier Buchstaben, beginnend mit A..., da gibt es kein Datenblatt und wahrscheinlich schwank die Qualität auch stark.

Natürlich hatte ich ausprobiert (Labornetzteil), wann der MCU und das Display nicht mehr funktionieren. Leider habe ich die Grenze wieder vergessen. Das Display lief auf alle Fälle nicht mehr mit 3V, der MCU aber schon.

Die Idee von Mi N. mit dem kleinen Step-Up ist nicht schlecht. Den könnte ich garantiert noch unterbringen, denn die Platine ist nicht voll.

Bei einer Neuauflage könnte ich dann auch auf 2 AA statt 3 AAA gehen und müßte etwa den gleichen Energiegehalt haben: 2 x 1,3V x 2800mAh x 0,80 (eta) = 5824 mWh 3 x 1,3V x 1400mAh x 1 = 5460mWh

Reicht, wenn man es richtig steuert. Es muss reine Wechselspannung über dem Segment anliegen

Das habe ich jetzt verstanden. Und die Idee mit dem Zweierkomplement und der Verwendung von 2 IO finde ich genial. Mir war halt nicht klar, daß die LCD - die in meiner Erinnerung aus irgendwelchen Polymeren in einer Flüssigkeit bestehen - Schaden nehmen können, wenn sie mit Gleichspannung verdreht werden. Wieder was gelernt, aber deshalb bin ich ja auch hier!

Übrigens ist mein Plan, alle Vorschläge einmal auszuprobieren, also EA DOG-Display (0,25mA), LCD mit Schieberegister und Step-Up.

Gast #7845756
Lesenswert?

Svensson schrieb:

Angeblich haben die Microzellen so zwischen 1100mAh bis 1450mAh

Klingt plausibel. Bei meinen Tests vor ca. 10 Jahren mit Zellen von Aldi, Rossmann und Ikea kam ich auf ca. 1000 mAh. Seit dem haben sie sich vermutlich nicht merklich verbessert. Die Physik und Chemie ist ja noch die gleiche.

#7845786
Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

Wie du an der Entladekurve siehst ist die Spannung der halb verbrauchten Zelle etwa 1,2V. Damit ist ihre Leerlaufspannung ohne Last gemeint.

Lieber Stefan, nix gegen Dich, da steht deutlich 100 mA!

Svensson schrieb:

A..., da gibt es kein Datenblatt und wahrscheinlich schwank die Qualität auch stark.

Die sind schon immer gut!

Die Idee von Mi N. mit dem kleinen Step-Up ist nicht schlecht. Den könnte ich garantiert noch unterbringen, denn die Platine ist nicht voll.

Leider ist dort keine Angabe zum Leerlaufstrom, was insbesondere bei kleiner Last einen schlechten Wirkungsgrad ergibt. Probieren! Es gibt gute Aufwärtswandler mit hoher Schaltfrequenz und niedrigem Ruhestrom: https://www.lcsc.com/product-detail/DC-DC-Converters_Texas-Instruments-TLV61220DBVR_C111811.html Da muß man sich die Schaltung aber selber zusammenlöten.

Gast #7845793
Lesenswert?

Mi N. schrieb:

da steht deutlich 100 mA!

Das habe ich in der Tat übersehen.

Allerdings bleibt es dennoch dabei, dass eine halb verbrauchte Zelle ungefähr 1,2 Volt liefert. 2 Zellen sind dann für das Display zu wenig.

Die Diskussion um den Spannungswandler ist daher durchaus sinnvoll.

#7883364
Lesenswert?

Eine kleine Rückmeldung:

Inzwischen habe ich eine Variante gebaut, die einen Schaltregler als Spannungswandler nutzt. Sind nur 5 Bauteile auf einer ca. 1cm^2 kleinen Platine. Natürlich kann ich den auch direkt in die Schaltung einbauen bei einem Redesign. Ich würde dann ca. 2-3cm^2 benötigen, weil ich möglichst viele Bauteile in THT einsetzen würde.

Nach meinen Messungen macht der selbst aus 0,7V noch 5V, so daß das Display gut ablesbar ist. Damit wäre dann sogar der Betrieb mit einer Zelle möglich. Trotzdem verwende ich ihn mit zwei Microzellen (weil ich die Halter schon gekauft hatte). Bei einer Änderung könnte ich dann auf 2x Mignon gehen, wodurch sich die Betriebsdauer glatt verdoppeln sollte.

#7883734
Lesenswert?

Nun, ich muss gestehen, ich habe es getan:

Es ist der ME2108A50PG von Nanjing Micro One Electronics aus China. Der kommt mit einer Spule, einer Schottky-Diode und einem Kondensator aus. Ich habe ihm noch einen weiteren Elko spendiert.

Da ist nichts einstellbar. Einfach auf der einen Seite 0,9-6,5V rein und auf der anderen 5,0V raus. Die 400mA gelten aber nur bei Spannungen über 3V, aber mir reichen auch die 100mA locker.

Der ist aber Bauform SOT89-3. Schaltfrequenz sind nur 180kHz, aber das finde ich gut, weil ich hoffe, so keine EMV-Störungen zu produzieren. Spule habe ich 220µH gewählt (weil schon vorhanden).

#7883737
Lesenswert?

Rainer W. schrieb:

Svensson schrieb:

Angeblich haben die Microzellen so zwischen 1100mAh bis 1450mAh. Rechnerisch wären das dann 523 bis 690h.

Mindestens die zweite Stelle der Kapazitätsangabe ist eine ziemliche Hausnummer, solange der Strom nicht bekannt ist.

Für welchen Entladestrom gelten deine Zahlen?

S. L. schrieb:

Batterie-Entladung.png

Das ist nur eine Überschlagsrechnung. Ich habe einfach die Kapazitätsangaben der Hersteller völlig ungeprüft übernommen. Da ich im Mittel ja nur ca 2mA entnehme, denke ich, daß man das einfach so machen kann.

Bei der Variante mit dem Schaltregler werde ich mal zwei Batterien opfern und einen Dauertest machen. 200h sind ja nur 8,5d, das kann man ausprobieren. Die 200h sind aber auch nur ein selbstgestecktes Ziel, wenn es doch nur 180 sind, wäre das auch okay.

#7883750
Lesenswert?

Svensson schrieb:

Es ist der ME2108A50PG von Nanjing Micro One Electronics aus China. Der kommt mit einer Spule, einer Schottky-Diode und einem Kondensator aus. Ich habe ihm noch einen weiteren Elko spendiert.

Da ist nichts einstellbar. Einfach auf der einen Seite 0,9-6,5V rein und auf der anderen 5,0V raus.

Gut, der Schaltregler arbeitet mit 180 kHz und braucht noch eine Diode. Aber achte bitte darauf, keine 6,5 V an den Eingang zu legen, da wegen der Diode Vout nur minimal kleiner sein kann als Vin.

Der HE9118 arbeitet mit typ. 360 kHz und braucht keine Diode zusätzlich. Nun habe ich auch einmal einen fliegenden Aufbau zusammengelötet und grob den Wirkungsgrad bei Vin = 1,1 V (@ 5,9 mA), Vout 5 V und 4,7 kOhm Lastwiderstand überschlagen: knapp über 80 %, was lt. Datenblatt auch zu erwarten ist. Der Ruhestrom ohne Last liegt bei 50 µA etwas über dem Nennwert, was vermutlich an der billigen Spule liegt. Aber das ist nicht mein Problem. Was ich mit dem Oszilloskope sehe: Der Kondensator am Eingang sollte gerade bei kleinen Vin nicht zu klein sein und einen niedrigen ESR aufweisen.

#7883751
Lesenswert?

Mi N. schrieb:

Heute habe ich meine Schaltung mit ATtiny44 und 4-stell. LCD bei 3 V mit statischer Anzeige "1234" gemessen: 35 µA. Davon werden für die Anzeige selbt ca. 10 µA benötigt (Differenz bei abgeschaltetem Display). Interner 8 MHz Takt, herausschieben der Daten per C-Routine, WDT als Timer mit 16 ms Zyklus und die CPU schläft in den Pausen. Dies zur Einschätzung, was auch ein ATmega328 schaffen sollte.

35uA kommt hin:

Beitrag "Re: PT100-Thermometer"

#7883803
Lesenswert?

Mi N. schrieb:

Gut, der Schaltregler arbeitet mit 180 kHz und braucht noch eine Diode. Aber achte bitte darauf, keine 6,5 V an den Eingang zu legen, da wegen der Diode Vout nur minimal kleiner sein kann als Vin.

Stimmt. Habe ich einfach aus dem Datenblatt unreflektiert abgeschrieben. In meiner Schaltung kann selbst mit drei (wenn die erste Schaltungsvariante "nachgerüstet" wird) Primärzellen a 1,65V = 4,95V noch nichts passieren.

Was ich mit dem Oszilloskope sehe: Der Kondensator am Eingang sollte gerade bei kleinen Vin nicht zu klein sein und einen niedrigen ESR aufweisen.

Lt. Datenblatt kommt die Schaltung sogar ohne Kondensator am Eingang aus. Auf einen niedrigen ESR habe ich natürlich geachtet

#7885088
Lesenswert?

Mi N. schrieb:

Manfred P. schrieb:

Ich sehe sofort, dass die Schaltung unsinnig ist und über Drossel - Diode die Eingangsspannung einfach nur durchreicht.

Auf die Gefahr hin, noch etwas dazuzulernen, riskiere doch mal einen Blick ins Datenblatt.

Das passiert, wenn wichtige Informationen fehlen. Er hat nachgelegt, dass die Versorgung maximal 3 Volt betragen solle, dann sieht das anders aus.

Svensson schrieb:

Zwei Zellen max. 3V und min. 1,8V als Eingang

Damit muss es natürlich ein Step-Up sein und wir hoffen mal, dass der mit der geringen Differenz Eingang zu 3V3-Ausgang stabil werkelt.

#7885097
Lesenswert?

Die Informationen waren schon da, nur eben nicht in dem Schaltplan. Weiter oben im Text stand schon, daß es sich um Primärzellen mit 1,5V handelt.

Außerdem ist der gezeigte Schaltplan (bisher) nur ein Gedankenspiel. Es ging mir hauptsächlich darum, ob da noch etwas beachtet werden müsse, also z.B. ob sich die Schaltregler gegenseitig stören können und deshalb noch Filter an den Eingängen brauchen.

Man sieht auch, daß die Induktivitäten nicht angegeben sind, weil ich da unsicher bin, wie die genau zu berechnen sind. Wenn ich die Formeln anwende, dann müßte L größer werden, wenn I kleiner wird. Bei einem Ausgangsstrom von 4mA bin ich da bei 220µH gelandet. Gefühlt finde ich das "riesig".

#7893629
Lesenswert?

Hier eine Rückmeldung.

Ein Gerät wurde mit einem Spannungswandler ausgestattet und einem Dauertest unterzogen. Es hat mit zwei Micro Alkaline Primärzellen tatsächlich die 200 Stunden Dauerbetrieb durchgehalten. Das Display ist nach 200h immer noch so gut ablesbar wie beim Start des Versuchs mit frischen Zellen. Also genau das, was ich wollte!

Wenn man annimmt, daß eine AAA-Primärzelle 1000mAh bei 1,3V liefert, dann wären das insgesamt 2600mWh. Also liegt die Schaltung durchschnittlich unter 13mW Leistungsaufnahme.

Und da auf meiner Platine Halterungen für 3 AAA-Zellen vorgesehen sind, müßte sich die Laufzeit mit drei Zellen dann auf 300h ausdehnen lassen, wenn das denn jemals notwendig werden sollte.

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