- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Atmega328P - Sleep-Modi - Stromaufnahme

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650

    Atmega328P - Sleep-Modi - Stromaufnahme

    Anzeige

    Praxistest und DIY Projekte
    Guten Morgen,

    ich möchte mal etwas Input zu folgendem Szenario, wegen des Sleep-Modus beim Atmega328P. Ein Problem ist, dass ich keine Angabe im Datenblatt zur Stromaufnahme finde, wenn ich den Atmega mit 5V bei 16MHz betreibe - es ist immer nur die Rede von 3V bei 8MHz o.ä. Bin mir auch nicht so ganz sicher, wie genau meine Messanordnung ist, ich denke mir aber: nicht so sehr ungenau. Auch das Ablesen müsste vernünftige Werte ergeben, dass man sich daran orientieren kann. Also wenn jemand Lust hat, das mal zu interpretieren und seine Gedanken dazu nieder zu schreiben? Ich denke, die von mir ermittelten Werte können so sein und sind realistisch, auch wenn ich nun im Power Down Sleep Mode nicht auf µA komme.

    Schaltung:
    • Spannungsregler LM2936-Z5.0
    • Atmega328P betrieben mit 5V
    • Leistungsaufnahmereduktion des Atmega durch: SLEEP_MODE_PWR_DOWN
    • Spannungsteiler - zwischen Vcc+12V und GND - 22k und 10kOhm (gesamt also 32kOhm), benutze ich zum Messen der 12V-Batteriespannung an einem ADC-Eingang
    • 1 digitaler Ausgang ist beschaltet mit 100Ohm auf Basis von 2xBC547B (Transistoren als Open Collector - beide Emitter gegen GND, Zwecks Motoransteuerung)


    Messgerät/-anordnung:
    • Drehspulmessgerät bis 100µA
    • gemessener Innenwiederstand: ca. 960Ohm
    • Messbereichserweiterung: 3 Ohm (3 x 1 in Reihe, +/-5%)
    • gemessen wird immer die Gesamtstromaufnahme direkt an der Batterie


    Ich habe folgende Stromaufnahme gemessen:

    Ohne Atmega328P, nur Spannungregler und Spannungsteiler: 0.6mA
    Mit Atmega328P und Spannungregler und Spannungsteiler: 1.2mA im Power Down Mode
    Mit Atmega328P und Spannungregler und Spannungsteiler: 17.5mA im Wachzustand (Transistoren nicht angesteuert ohne angeschlossene Last, also Kollektor unbeschaltet)

    Ich habe auch den Power Save Mode überprüft:

    Mit Atmega328P und Spannungregler und Spannungsteiler: 2.4mA im Power Save Mode
    Mit Atmega328P und Spannungregler und Spannungsteiler: 14.5mA im Wachzustand (Transistoren nicht angesteuert ohne angeschlossene Last, also Kollektor unbeschaltet)

    Wobei der Unterschied 17.5mA zu 14.5mA tatsächlich so ist, ich habe das mehrmals gemessen / überprüft.

    MfG
    Moppi
    Geändert von Moppi (19.11.2018 um 08:07 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Hallo Moppi.
    .. seine Gedanken dazu nieder zu schreiben? ..
    Hei was für ein interessantes Problem. Ich selbst habe extrem wenig Erfahrung mit Power Down; nur mein Pacer, ein Taktgeber für Lauf- und Fitnesstraining mit LP2950 und tiny85@1 MHz, wird nach ner geringen Wartezeit mit SM2/SM1/SM0 auf 010 in den Power-down geschickt. Dort verbraucht er mit nem billigen 9V-Block so wenig, dass er nach geringem Einsatz und gefühlten drei Monaten Liegezeit noch immer aufzuwecken war (Testaufbau mit Interrupt-Einschalten), Schaltplan dafür, Handnotiz, Realisierung).

    Egal:
    Deine Frage war nach Auskünften im Datenblatt des 328P zu 5V@16 MHz. Da gibts wenig. Aber beispielsweise "32.2.1. ATmega328 DC Characteristics – Current Consumption" nennt zu Power Supply Current bei Idle/4Mhz @3V typ. 0,3 mA, bei Idle/8Mhz @5V typ. 1,2 mA. Ist auch nicht wirklich aufschlussreich - bei zwei verschiedenen Taktraten. Es könnte VERMUTET werden, dass die GEschichte nichtlinear ist.

    Die Tabelle 33.1.1. Active Supply Current gibt wenigstens einen groben Anhalt, dass unter diesen Bedingungen bei 5V etwa doppelt so viel Strom verbraucht wird wie bei etwa 3 V (Graphen nur für 3,3 und 2,7V).

    Schließlich habe ich im Datenblatt (Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016) noch das Diagramm gefunden
    Figure 33-11. ATmega328: Power-Down Supply Current vs. VCC
    das bei power down zwischen 5V und 3V einen Mehrverbrauch von etwa 50% (gegen 3V) vermuten lässt. Ne ähnliche Größenordnung bringt auch Figure 33-12. ATmega328: Power-Down Supply Current vs. VCC.

    Na ja, wie erwähnt, es sind Gedanken, vielleicht Anhaltspunkte.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ja, genau, Danke Dir! Das meinte ich: Gedanken. Die mache ich mir auch und habe da auch Vermutungen. Letzten Endes ist auch so, wie es ist: wenn man es messen kann, weiß man es dann - selbst, wenn es nicht genau im Datenblatt aufgeführt ist. Meine Vermutung ist auch eher dahingehend, da man sich so auf die 3V fixiert, dass dieser 3V-Betrieb vielleicht auch eher als Standardbetrieb für batteriebetriebene Anwendungen anzusehen ist. Vielleicht bringt mich aber auch jemand auf die Idee, dass ich mit dem Messen was falsch mache und einfach .. Mist messe ... kann ja auch sein. Obwohl ich das jetzt schon überprüft habe, indem ich nur einen 1 Ohm-R genommen habe, für die Messbereichserweiterung, um so statt 100µA am Endausschlag 100mA ablesen zu können. Wenn ich darüber ablese, komme ich aber zu denselben Größenordnungen bei den Messergebnissen. Die 3x 1 Ohm in Reihe habe ich genommen, um Endausschlag 30mA zu haben.

    MfG

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Im Power-Down ist jeder interne Takt abgeschaltet - Clock/Frequenz also völlig egal (DS, S.39)
    Der Stromverbrauch sollte lt. DS im Power-Down, Seite 1 (ohne alle andere Beschaltung) bei 0.1µA liegen, 600µA ist viel.
    Verstehe ich das richtig - je nach eingestelltem Sleep-Modus fließen mal 14.5mA und mal 17.5mA im "Wachzustand"? Da ist schlichtweg
    was faul im Staate Dänemark!
    mfg
    Achim

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von Moppi Beitrag anzeigen
    .. Atmega (328P) mit 5V bei 16MHz betreibe .. SLEEP_MODE_PWR_DOWN ..
    Zitat Zitat von seite5 Beitrag anzeigen
    .. Der Stromverbrauch sollte lt. DS im Power-Down, Seite 1 (ohne alle andere Beschaltung) bei 0.1µA liegen, 600µA ist viel ..
    Welche Datenblatt-Version? Die von mir oben zitierte Fassung von November 2016 hat diese Angabe auf Seite 2 - dort ist angegeben "Power-down Mode: 0.1μA" - mit 1.8V bei 1MHz.

    Zitat Zitat von Moppi Beitrag anzeigen
    .. Ich habe folgende Stromaufnahme gemessen: .. Ohne Atmega328P, nur Spannungregler und Spannungsteiler: 0.6mA ..
    Zitat Zitat von seite5 Beitrag anzeigen
    .. Der Stromverbrauch sollte lt. DS im Power-Down, Seite 1 (ohne alle andere Beschaltung) bei 0.1µA liegen, 600µA ist viel ..
    Zitat Zitat von seite5 Beitrag anzeigen
    .. Da ist schlichtweg was faul im Staate Dänemark!
    mfg
    Achim
    Das stimmt, nur wolln wa ja nich Äpfel mit Birnen vergleichen.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Wenn Ich mich da noch recht erinnere gab's da auch noch was mit der Konfiguration der unbeschaltenen Ports.
    Die müssen auf einen bestimmten Zustand gebracht werden um Strom zu sparen.
    Welcher das jetzt genau war weiss Ich jetzt leider nicht mehr genau - Sollte aber im Datenblatt stehen.
    Ausserdem kann man ja alle nicht genutzte Peripherie abschalten. Jedes aktivierte Feature ( A/D Wandler, USART, ... ) zieht Strom.
    In einer ELEKTOR gab's auch mal einen Artikel zur Stromminimierung bei AVR Controllern.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich habe nochmals gemessen und mit verschiedenen Messbereichserweiterungen für das Drehspulmesswerk. Ich habe im Power Down Mode den Messbereich auf 1mA festgelegt und gesehen, dass der Atmega328, bei 5V Betrieb, sogar etwas mehr als 600µA nimmt. Es sind etwa um die 700µA. In anderen Foren stellen User teils dasselbe fest. Beim Arduino Mini soll es wieder anders sein. Das ist aber auch ein ATmega328. Der Brown-Out Detector soll auch im Sleep-Mode Strom verbrauchen:

    14.11.3. Brown-Out Detector
    If the Brown-Out Detector (BOD) is not needed by the application, this module should be turned off. If the
    BOD is enabled by the BODLEVEL Fuses, it will be enabled in all sleep modes, and hence, always
    consume power. In the deeper sleep modes, this will contribute significantly to the total current
    consumption.
    Das nächste wäre:

    14.11.4. Internal Voltage Reference
    The Internal Voltage Reference will be enabled when needed by the Brown-Out Detection, the Analog
    Comparator or the Analog-to-Digital Converter. If these modules are disabled as described in the sections
    above, the internal voltage reference will be disabled and it will not be consuming power. When turned on
    again, the user must allow the reference to start up before the output is used. If the reference is kept on in
    sleep mode, the output can be used immediately.
    Der Watchdog-Timer:

    14.11.5. Watchdog Timer
    If the Watchdog Timer is not needed in the application, the module should be turned off. If the Watchdog
    Timer is enabled, it will be enabled in all sleep modes and hence always consume power. In the deeper
    sleep modes, this will contribute significantly to the total current consumption.
    Den Watchdog und den Timer 1 benötige ich zum Aufwachen, die kann ich nicht abschalten, das wäre dann vermutlich nur mit einer externen RTC möglich.

    Für diese Anwendung einer Lüftersteuerung spielt das jetzt keine so große Rolle, die Verbrauchswerte unter 4mA gehen im Verbrauch des Lüfters - 30 bis 80mA - praktisch unter. Dennoch ist es für mich die Gelegenheit, das dann jetzt auch mal auszuprobieren und zu messen. Ich habe auch nur am Kontroller selbst die Stromaufnahme gemessen, da kommt dieselbe Größenordnung raus, wie auf den andern Wegen bestimmt. Es sind 600 bis 750µA.

    MfG
    Moppi

    - - - Aktualisiert - - -

    Zitat Zitat von wkrug Beitrag anzeigen
    Wenn Ich mich da noch recht erinnere gab's da auch noch was mit der Konfiguration der unbeschaltenen Ports.
    Die müssen auf einen bestimmten Zustand gebracht werden um Strom zu sparen.
    Beim Einschalten des ATmega sind alle IOs im hochohmigen Zustand, bis dass sie mittels pinMode konfiguriert werden. Auch die internen Pull-Up-Widerstände müssen erst aktiviert werden. Sollten die aktiviert sein, um Strom zu sparen?


    - - - Aktualisiert - - -
    Und es kam noch etwas zutage, aus einem andern Forum:

    Are you using a '328 instead of a '328p? (a '328-PU is not a '328p, it's a '328 in DIP package; the corresponding p-spec part is '328p-pu.
    Ich habe 328P-PU. Aber da müsste das Datenblatt "ATmega328/P" von 2016 doch das richtige sein.

    MfG
    Geändert von Moppi (20.11.2018 um 08:23 Uhr)

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    .. der Atmega328, bei 5V Betrieb, sogar etwas mehr als 600µA .. Arduino Mini soll es wieder anders sein. Das ist aber auch ein ATmega328 ..
    Mal ein bisschen Gebrabbel von mir - achso, das Letzte zuerst:
    .. Und es kam noch etwas zutage, aus einem andern Forum: Ich habe 328P-PU. Aber da müsste das Datenblatt "ATmega328/P" von 2016 doch das richtige sein ..
    Ein anders Forum? HIER sind die Spezialisten - - na gut, ich bin keiner.

    Zu 328P-PU bzw. ATmega328/P :
    Es gibt laut den typspezifischen Datenblättern zur 328er Familie mehrere Gehäuseformen:
    28-pin 28P3, ein PDIP = Plastic Dual In line Package,
    28-pin 28M1, ein VQFN = Very Thin Quad Flat (No Lead Package),
    32-pin 32M1-A, ein MLF = Micro Lead Frame Package,
    32-pin 32A, TQFP = Thin profile plastic Quad Flat Package
    wobei z.B. der 28Pinner keinen Anschluss für ADC6 und ~7 hat, der TQFP-32 hat die natürlich. Den TQFP bekomme ich mit (m)einer kleinen 08er WEllerspitze noch bestens gelötet, der MLF geht wohl nur mit Heißluft/Reflow. Ansonsten - innendrinn sind die Teile immer gleich - Ausnahmen wie eben: ADC6/~7 ja oder nein bestehen.

    Zu den Typen ATmega328/~328P gibts noch den ATmega328PB in gleichen Gehäuseformen; letzterer mit zusätzlichen Funktionen wie zweite UART und so.

    Zu 328 und 328P:
    In einer "Parametric Product Table" von Atmel aus 2007 habe ich nen Link gefunden auf "picoPower Technology" der aber heute in die www-Präsentationen von Microchip zielt. Dort, bei Microchip ist noch die AN2515 zu finden,
    http://ww1.microchip.com/downloads/e...-00002515C.pdf
    die auf Low-Power Techniken eingeht. @Moppi: sehr lesenswert. Und klar: WDT frisst einiges an Power, meist ohne dass die Anwendung benötigt wird *gg*.

    Soviel ich weiß, wurde der Zusatzbuchstabe "P" von Atmel vor über zehn Jahren eingeführt um auf die hier zur Diskussion stehenden Low-Power-Möglichkeiten hinzuweisen.

    Ansonsten ist der Unterschied der beiden Typen: 328 für -40°C to 85°C und 328P für TA = -40°C to 105°C. Unabhängig von der Gehäuseform des jeweiligen Teilchens. Deswegen nehme ich lieber die 328P-Version - mit Rücksicht auf meine Lötorgien zum Beispiel.

    TLDR
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Danke für die Infos. Ich nehme auch lieber die 328P-Version.
    Dokument habe ich gespeichert, lese ich mir mal in Ruhe durch.
    Jetzt habe ich es mal auf 1MHz-Takt abgesehen (und zwar hier). Damit sollte der Verbrauch auch runter gehen - hatte vor langer Zeit mal so was gelesen. Allerdings vermutlich nicht, wenn der ext. Takt im Sleep Mode sowieso abgeschaltet ist.
    Falls das noch nicht ausreicht, nehme ich mal noch einen Spannungsteiler, um aus den 5V vom Regler 3.3V zu machen.

    MfG
    Geändert von Moppi (20.11.2018 um 16:19 Uhr)

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Beim Einschalten des ATmega sind alle IOs im hochohmigen Zustand, bis dass sie mittels pinMode konfiguriert werden. Auch die internen Pull-Up-Widerstände müssen erst aktiviert werden. Sollten die aktiviert sein, um Strom zu sparen?
    Üblicherweise startet ja der Controller und durchläuft die Initialisierung.

    Kannst ja hier mal drüber gucken...
    https://www.roboternetz.de/community...Stromsparen%29

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Schrittmotor und Stromaufnahme
    Von AtomicIX im Forum Motoren
    Antworten: 10
    Letzter Beitrag: 28.01.2014, 09:18
  2. 2x Stromaufnahme für µC messen
    Von Evo121 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 18.09.2012, 18:28
  3. Stromaufnahme messen
    Von Christoph2 im Forum Elektronik
    Antworten: 32
    Letzter Beitrag: 04.05.2008, 22:35
  4. Stromaufnahme messen
    Von Oberstricher im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 15.12.2004, 18:10
  5. [ERLEDIGT] Idle-modi ATmega8
    Von jg im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 01.11.2004, 23:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen