![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo zusammen, bekanntlich lĂ€Ăt sich die Open-Maxi mit Hilfe von SLOWMODE ON sehr elegant in den Stromsparmodus versetzen. Der Mikrocontroller arbeitet dann mit einem Takt von 1.25 MHz und benötigt in diesem Modus laut meinen Messungen nur 4.3 mA Strom. Das ist erheblich weniger als bei 20 MHz Takt, der mit 12.6 mA zu Buche schlĂ€gt. Mit dem PAUSE-Befehl (der intern als Assemblerbefehl WAIT realisiert ist) kann die Stromaufnahme noch auf 8.2 mA gesenkt werden. Mittels "SCI2BDH=0 : SCI2BDL=8" kann im SLOWMODE die Serielle Schnittstelle auf 9600 Baud eingestellt werden. Um GröĂenordnungen besser ist allerdings der STOP-Modus. In diesem Modus benötigt der Controller nur wenige Hundert ”A Strom. Die Open-Maxi unterstĂŒtzt den sogenannten STOP3-Modus. Hier sind alle internen Schaltungen fĂŒr schnelle Wiederherstellung konfiguriert. Die ZustĂ€nde aller internen Register und Logik, RAM-Inhalte und die I/O-Pin-ZustĂ€nde werden beibehalten. STOP3 kann durch BetĂ€tigen von RESET oder durch einen Interrupt aus einer der folgenden Quellen verlassen werden: Der Real-Time-Interrupt (RTI), LVD, ADC, IRQ oder der KBI. Im folgenden Demoprogramm wird der Real-Time-Interrupt verwendet. Eine Assembler-Interruptroutine befindet sich im Real-Time-Interrupt und wird alle 8 ms aufgerufen. Getaktet wird diese Verzögerung mit Hilfe eines internen, nicht sehr genau arbeitenden 1-kHz-Oszillators. Sobald der Interrupt angefordert wird, verlĂ€Ăt der Controller den STOP-Modus. Wer das Demoprogramm startet, wird sich vielleicht wundern: Es scheint nĂ€mlich nichts zu machen. Denn wenn die Open-Maxi noch andere Befehle auĂer STOP ausfĂŒhrt, wird das Ergebnis der Strommessung erheblich verfĂ€lscht. Der Anwender muĂ also darauf achten, daĂ sich der Controller möglichst lange im STOP-Modus aufhĂ€lt, ansonsten bringt dieses Stromsparkonzept nichts. ' ---------------------------------------------------------------------------- ' Strom sparen mit Hilfe des STOP-Modus. Es wird der STOP3-Modus verwendet. ' In OCBASIC 1.11a fĂŒr Open-Maxi von Dietmar Harlos am 30. Juli 2017. ' ---------------------------------------------------------------------------- ' Der Controller benötigt wĂ€hrend des STOP-Modus nur wenige Hundert ”A Strom. ' Siehe auch AW60-Controllermanual MC9S08AW60.pdf im Kapitel "3.6 Stop Modes". INCLUDE "omax.def" 'Definitionen fĂŒr die Open-Maxi DIM iRTIb BYTE 'Demo: RTI-Interrupts zĂ€hlen ' --- Unsere eigene Assembler-Interruptroutine ------------------------------ ' Die folgende Assembler-Interruptroutine befindet sich im Real-Time- ' Interrupt und wird alle 8 ms aufgerufen. Getaktet wird diese Verzögerung ' mit Hilfe eines internen 1-kHz-Oszillators. ' Die folgenden Subroutinen sollten sinnvollerweise in einer INCLUDE-Datei ' untergebracht werden. ' Das SchlĂŒsselwort INLASM kennzeichnet die folgende PROCEDURE als ' Assemblerroutine (IAR). Dadurch, und daĂ sie unmittelbar am Anfang ' des Programms steht, wird sie zu einer IIAR, also zu einer Assembler- ' Interruptroutine, die bei einem aktivierten User-Interrupt gestartet wird. PROCEDURE iiar_rti INLASM ! cbeqa #iRTI,isiRTI 'Falls kein Aufruf durch RTI-Interrupt, ! jmp iiar_rti_ende+2 'dann zur nĂ€chsten IIAR in der Kette. #isiRTI '! bset bRTIACK,SRTISC 'SRTISC liegt auĂerhalb der Zeropage ! lda SRTISC ! ora #%01000000 'Real-Time Interrupt Acknowledge (RTIACK) ! sta SRTISC ! inc iRTIb 'ZĂ€hler inkrementieren ! clc ! rts END PROC #iiar_rti_ende 'hier hinter folgt die nĂ€chste IIAR '(sofern vorhanden) ' --- Das Hauptprogramm ----------------------------------------------------- #main UIRRti=ON 'Userroutine fĂŒr Real-Time Interrupt aktivieren POKE SRTISC,&b00010001 'Real-Time Interrupt aktivieren, 8 ms Delay WHILE TRUE asmstop 'maximal 8 ms lang dauert der STOP-Modus. ' PAUSE 1 ' PRINT iRTIb 'wenn diese Befehle zusĂ€tzlich aktiviert werden, ' PAUSE 1 'zieht der Controller fast normal Strom. WEND End2Host=ON END ' --- Subroutinen ----------------------------------------------------------- PROC asmstop INLASM ! stop ! rts END PROC Viel SpaĂ und Erfolg mit den OM-Mikrocontrollern! Dietmar Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |