- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Atmega328P - Sleep-Modi - Stromaufnahme

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

    E-Bike
    Gute zu wissen, dass es das Problem 2010 schon mal gab! Aber da ist man auch nicht weiter gekommen.

    Wo genau Du hinaus willst, weiß ich nicht ganz, aber z.B.:
    Code:
    DIDR0 = DIDR0 | B00111111; // Digitale Eingangspuffer ausschalten, analoge Eingangs Pins 0-5 auf 1
    Habe ich in meinem Code drinne, bringt nichts, keinen Unterschied. Die Analog-Digital-Konverter werden abgeschaltet. Der Analog-Comperator ist deshalb sowieso gleich dann auch mit aus. Extra ausschalten bringt nichts, habs so im Code drin:
    Code:
    ACSR = B10000000; // Analogen Comparator abschalten, ACD bit7 zu 1
    Ansonsten sind die IO-Ports nicht undefiniert, sie sind wenn, als hochohmige Eingänge geschaltet, solange das nicht aktiv im Sketch geändert wird.

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686

    Beitrag

    .. Jetzt habe ich es mal auf 1MHz-Takt abgesehen .. Damit sollte der Verbrauch auch runter gehen - hatte vor langer Zeit mal so was gelesen ..
    Lesen bildet, stimmt ja, aber ich mach solche Dinge lieber selber. Und da hast Du heute Glück, dass ich mit nem Riesenschnupfen bei bestem Wetter (hmm, na ja, Sonne pur aber Minusgrade) daheim hängen muss .. siehe unten.

    .. Falls das noch nicht ausreicht, nehme ich mal noch einen Spannungsteiler, um aus den 5V vom Regler 3.3V zu machen ..
    Na ich weiß nicht, da kräuselts mir die Nackenhaare und ein Männlein flüstert mir: wer im Controller sparen will, kann den Strom im Spannungsteiler verheizen. Oder ? Liege ich da soo daneben?

    Mal zu meiner Nachmittagsbeschäftigung:
    Aufbau: alte Experimentierplatine für mega8/168/328, alle vermeidbaren Teile abgebaut,

    ......Bild hier  
    ......© oberallgeier; größeres Bild im Bild verlinkt

    Aktiv/mit den Controllerpinns verbunden sind die Stromversorgung - ohne Spannungswandler, direkt von der Schraubklemme - und die beiden Kondensatoren für den fallweise steckbaren Quarz. Alle sonstigen Leitungen hängen "im Freien", die Kondensatoren für den MAX232 sind ja nur für den Chip - wenn der drauf steckt, die Leitungen zum seriellen Stecker sind ebenfalls unbeschaltet.
    Controller: ATmega328 PDIP28. ATMega328P habe ich nicht in PDIP (na ja, die beiden hier sind defekt), aber die Daten vom 328 sind sicher ausreichend vertrauenswürdig.
    Programm: Ein lausiges Zeit-Schindeprogramm. Nach der Initialisierung eine while(1)-Schleife, die für wenige Controllertakte einen Pin hoch- und danach wieder runterzieht. Die Pausen dazwischen dauern etwa eine Mikrosekunde bei 20 MHz, Code siehe unten.
    Labornetzteil zur Spannungsversorgung KORAD KA3005D, DMM MetraHit 12S, Spannungsangaben nur laut Labornetzteil, Strommessung mit DMM.
    Geschätzte Messgenauigkeit beim Aufbau sicher deutlich besser als 10 %

    Messwerte:
    Code:
    ATmega328
    @3V     20 MHz Quarz                6,14 mA
                 8 MHz intOsz.          2,94 mA
                 1 MHz intO(DIV8)       0,58 mA
               128 kHz intOsz.          0,11 mA   
               128 kHz intOsz-DIV8      0,06 mA
    
    @5V     20 MHz Quarz               13,09 mA
                 8 MHz intOsz.          6,46 mA
                 1 MHz intO(DIV8)       1,85 mA
               128 kHz intOsz.          0,95 mA   
               128 kHz intOsz-DIV8      0,85 mA
    Code:
    // ============================================================================= =
    //### Programm 1 µs MIKROsekunde pausieren lassen !! Pausenwert EXerimentell !
      void wmus (uint16_t us)       // Wait in Mikrosekunden
      { 
        for(; us>0; us--) 
        { 
          uint16_t __c = 4; 
          __asm__ volatile ( 
             "1: sbiw %0,1" "\n\t" 
             "brne 1b" 
             : "=w" (__c) 
             : "0" (__c) 
          ); 
        } 
      } 
    // ============================================================================= =
    Ich konnte es ja nicht lassen. Hatte noch nen nanoClone genommen (meine sind grad ALLE auf 20 MHz umgequarzt) und den direkt mit 7,5V bestromt. Der frisst (mit der ganzen Peripherie, Spannunswandler, on-board-LED-Spannungskontrolle, on-board-user-LED etc etc: bei 20 MHz ext. Quarz 21 mA und bei 1 MHz (int.Osz-8MHz und DIV.8.) noch 9 mA. 3V hatte ich hier nicht getestet, den Strom von "hinten" in die Platine und den Spannungswandler . . . da war ich mir zu unsicher.

    Fazit: Bei 3V ist der Stromhunger, grob, nur halb so groß, die Frequenz schlägt deutlich zu. Wussten wir schon aus dem Datenblatt - nur nicht so.

    NACHTRAG : Zum Messen war der ISP-Stecker stets abgezogen wegen Resetleitung mit LED. Auch wenn deren Einfluss nicht wirklich merkbar war.
    Geändert von oberallgeier (20.11.2018 um 17:33 Uhr) Grund: Smiley von DIV 8 ) entfernt
    Ciao sagt der JoeamBerg

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Schön, dass Du dir die Mühe gemacht hast! Tol! Toll! Toll!

    Allerdings werde ich aus einem nicht ganz schlau @oberallgeier: 128 kHz intOsz-DIV8 0,06 mA
    Was und wie soll man das verstehen? Mag sein, dass Du das blickst - ich noch nicht ganz.

    Aber ich konnte es ja auch nicht lassen. Na ja, habe noch mal gesucht und bin doch noch auf einen Arduino gestoßen, der offenbar auf wenige µA runtergefahren wird.

    Und zwar, um es euch zu ermöglichen, das nachzuvollziehen, hier

    Ich habe mir das angeschaut und weil ich es mir nicht vorstellen konnte ausprobiert, denn ich habe einen riesen Code ausm Netz, der das nicht schafft. Mein Programm funktioniert auf dem Atmega328P nach wie vor, mit 5V @16MHz. Und dank diesem Video habe ich gute 600µA eingespart. Das heißt, da meine übrige Beschaltung mit Spannungsteiler (ca. 0,000375 A und Spannungsregler nochmal was dazu) auch schon ca. 450µA zieht und ich jetzt nur noch ca. 600µA messe (und das ist mehr eine Schätzung, da am direkt Anfang der Messskala, am Nullpunkt) - bei Power Down - ist diese Anleitung wohl tatsächlich etwas, was mal funktioniert.

    Prima, toll, klasse und Danke - für eure Unterstützung!



    MfG
    Moppi

    PS: den Spannungsteiler für 3.3V hätte ich nur genommen, um den Verbrauch am Atmega328 runter zu bekommen, ich dachte, das versteht sich - nicht, um den Gesamtverbrauch zu reduzieren.
    Geändert von Moppi (20.11.2018 um 17:44 Uhr)

Seite 2 von 2 ErsteErste 12

Ä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
  •  

fchao-Sinus-Wechselrichter AliExpress