Ein ordentliches powerdown und ein ordentliches wakeup bei einem mega168

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Ein ordentliches powerdown und ein ordentliches wakeup bei einem mega168

      Ich versuche mich gerade darin, einem mega168 ordentlich in den powerdown zu schicken, um möglichst stromsparend zu sein. Geweckt wird mit einem PCINT interrupt. In der Hilfe findet man dazu
      ' 1. Disable/Switch off ADC
      ' 2. Disable/Switch off Analog Comparator
      ' 3. Disable Brown-out Detection when not needed
      ' 4. Disable internal voltage reference
      ' 5. Disable Watchdog Timer when not needed
      ' 6. Disable the digital input buffer
      ' 7. Enable Pull-up or pull-down an all unused pins
      Punkt 1 erledige ich mit stop adc
      Punkt 2 mit stop ac
      Punkt 3 durch entsprechendes setzen der fuse
      Punkt 5 genauso mit der fuse
      Punkt 7 ist für mich auch klar.
      Aber wie geht das mit Punkt 4? Langt da das Setzen des Registers nach dem Datenblatt
      AREF-off.PNG
      Punkt 6 ist mir total unklar 8|
      Und dann hab' ich im DB noch das gefunden
      powerreductionregister.PNG
      Wird das alles schon mit powerdown erledigt, und hier hätte man nur die Möglichkeit, nicht alles abzuschalten?
      Wenn ich damit die UART abschalte, wie initialisiere ich die nach dem Wecken neu? Ist die automatisch aus, wenn config powermode= powerdown alle Oszillatoren abschaltet?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Wer den Oszillatoren oder den externen Takt abschaltet. Ist immer im „Super Sparmodus“ Ist doch bekannt, wenn der Motor nicht läuft benötigt er keine Sprit. Na ja das Starten ist schon Energieaufwendig.
      Läuft er aber im „Standgas“, muss nur aufs Pedal gedrückt werden und die Post geht ab.
      Na was ist sparsamer? Nicht verwechseln mit Garagenparken. Da kann die Karre schon mal länger stehen.
    • Ich brauch kein Standgas bei Batteriebetrieb. Und dass das Starten so viel Energie frisst, glaub' ich jetzt einfach nicht. Was ist bei dir bei einem Oszillator 'Standgas'? Halbe Frequenz? Halbe Amplitude?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Also meiner Meinung nach musst Du im Register ACSR das Bit 7 ==> ACD (Analog Comperator Disable) auf 1 gesetzt werden (Seite 235 der Dokumentation im Abschnitt Analog Komperator).

      Dann ist der Teil auf Sparflamme...
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Hab' ich gefunden und jetzt so im Programm
      Adcsra.7 = 0 'ADC-Wandler aus
      Acsr.7 = 1 'Analogcomparator aus
      Admux = 0 'interne AREF ausschalten bit7 und bit6

      und wie ist das mit der UART?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      ' 7. Enable Pull-up or pull-down an all unused pins
      unused pins? gibt es sowas? 8o
      Eigendlich schalte ich ALLE Pins ab. Bedenke das der Uart von außen noch Spannung bekommt solange was dran hängt und dieses ein high am Rx erwartet. Um nach dem Einschalten die pins wieder "richtig" zu setzen müssten R/TXEN auf high gesetzt werden. Sollten die nicht sowieso vorher auf low gestezt werden (Punkt 6)?
    • Pluto25 schrieb:

      tschoeatsch schrieb:

      ' 7. Enable Pull-up or pull-down an all unused pins
      unused pins? gibt es sowas? 8o Eigendlich schalte ich ALLE Pins ab. Bedenke das der Uart von außen noch Spannung bekommt solange was dran hängt und dieses ein high am Rx erwartet. Um nach dem Einschalten die pins wieder "richtig" zu setzen müssten R/TXEN auf high gesetzt werden. Sollten die nicht sowieso vorher auf low gestezt werden (Punkt 6)?
      Gemeint ist hier, dass die nicht beschalteten Pins nicht "wabern" und den elektro-magnetischen-Müll der Umgebung einsammeln. Deshalb steht im Manual, dass man dafür die Pullup's verwenden möge...
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Pluto25 schrieb:

      Nicht pins - Flags Txen und Rxen im UCSR0B
      'tschuldigung, ich hab' nicht gerallert, dass es die gibt.
      Wenn ich aber das lese

      Power Reduction Register
      The power reduction register (PRR), see Section 10.11.3 “PRR – Power Reduction Register” on page 40, provides a method
      to stop the clock to individual peripherals to reduce power consumption. The current state of the peripheral is frozen and the
      I/O registers can not be read or written. Resources used by the peripheral when stopping the clock will remain occupied,
      hence the peripheral should in most cases be disabled before stopping the clock. Waking up a module, which is done by
      clearing the bit in PRR, puts the module in the same state as before shutdown.
      Module shutdown can be used in idle mode and active mode to significantly reduce the overall power consumption. In all
      other sleep modes, the clock is already stopped.

      dann sind die states der pins nach dem Wecken noch genauso, wie beim Einschlafen. Ist für mich jetzt die Frage, ob das nur beim Verwenden des Power Reduction Register so ist, oder auch beim simplen config powermode=powerdown.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hi
      ich habe mal einen Batteriebetriebenen Sender gebaut, der Regelmäßig quasi einen ping absetzen sollte.
      Dabei war ein entscheidender Faktor die Taktfrequenz.

      Daher sollte die Taktfrequenz nur so hoch gewählt werden wie unbedingt nötig.

      Nach dem Powerdown brauchen Pins, die als Ausgang geschaltet sind immer Strom.
      Auch als Eingang, aber im wesentlichen nur, wenn der interne Pullup eingeschaltet ist.

      Der beste Power down Mode ist der, bei dem auch der oszillator steht.
      Ein Wakeup ist dann nur extern per Interrupt möglich.

      Man muss sich fragen, ob man im power down einen ADC, einen Timer, den Watchdog, etc. braucht, wenn ja, muss man den Oszillator im Power Down Mode an lassen.
      Das braucht aber wieder mehr Strom.

      Das sind mal so allgemeine Richtlinien, die nicht unbedingt einem Bascom Powerdown Mode zuzuordnen sind.

      Micha
    • tschoeatsch schrieb:

      beim Verwenden des Power Reduction Register
      Würde Bascom das nicht verwenden beim Powerdown? Und würde der Avr seine Treiber auch abschalten?

      tschoeatsch schrieb:

      I/O registers can not be read or written.
      Das man sie nach dem Powerdown nicht mehr beeinflussen kann versteht sich von selbst?

      Das zweite Zitat müsste eigendlich die Überschrift AVR schrieb haben. Tschoeatsch ist das nicht schuld ;)
    • Pluto25 schrieb:

      Mitch64 schrieb:

      die Mods den Ausgänge als Eingänge umschalten
      Tun sie auch nicht wobei es noch interressant wäre zu wissen ob es (nach dem wachwerden) die "inits" ausführt. So wie ich die Hilfe verstehe muß man sie selbst ausführen.
      Meinst du da jetzt zB die Einstellungen für die Usart, wie baud und sowas? Dann wäre das eine Erklärung, warum Babette nach einer Nacht powerdown nicht gscheit aufwacht.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------