Eine typische Anwendung ist die Optimierung einer Interrupt Service Routine. Der Mikrocontroller wird durch einen Interrupt aus seinem Low-power-Modus aufgeweckt. In der ISR wird die PLL auf die gewünschte Frequenz eingestellt, die Aufgaben der Interrupts werden abgearbeitet. Danach wird der Mikrocontroller wieder in den Sleep Mode versetzt. Leider sind Energieverbrauch und Performance eines Mikrocontrollers in der Realität nicht immer proportional mit der Frequenz. Daher muss die optimale Frequenz durch Messung ermittelt werden.
Unter Umständen kann es sogar sinnvoll sein, die PLL oder den externen Oszillator gar nicht zu nutzen, da dies Zeit und Energie benötigt. Die Bearbeitungszeit der ISR darf natürlich dabei nicht zu lange werden. Bild 3 zeigt den Energieverlauf einer ISR. Der Beginn und das Ende der ISR wurden mittels Positionierung aus dem Hochsprachen-Trace von µVision ermittelt und auf diese Positionen der Cursor 1 und der Cursor 2 gesetzt. Die Statistik zeigt sowohl die Dauer als auch den Energieverbrauch der ISR. Durch Variieren der Frequenz kann nun schnell optimiert werden.
Ein sehr häufig auftretender Fehler ist die falsche oder unvollständige Abschaltung von Peripherieeinheiten vor dem Umschalten in den Low-power-Modus. Nur durch die vorgegebenen Abschaltbedingungen werden die angegebenen niedrigen Low-power-Werte erreicht. Dies ist allerdings in den Datenblättern oft schwer zu finden. Der höhere Verbrauch ist nicht vernachlässigbar und kann gravierenden Einfluss z.B. auf die Batterielebensdauer haben.
Die Gewissheit, den richtigen Modus erreicht zu haben, kann viel sicherer durch die Messung als durch Code- und Handbuchstudium erreicht werden. Dies ist auch ein typischer Fall, bei dem die gleichzeitige Nutzung des Debuggers die Strommessung verfälschen würde und der PowerScale alleine zu nutzen ist.
Die Autoren:
Dipl.-Phys .Dr. Kurt Böhringer |
---|
arbeitete nach seinem Physikstudium am Max-Planck-Institut, Heidelberg, in der Halbleiter-Grundlagenforschung. 1989 begann er bei der Firma Hitex, war maßgeblich an der Entwicklung von In-Circuit-Emulatoren beteiligt, später im Produktmanagement und ist heute Leiter der Abteilung Technology & Innovation. |
Kurt.Boehringer@hitex.de
Reinhard Keil |
---|
studierte Elektrotechnik an der Fachhochschule München. Anschließend war er als Software-Entwickler bei Siemens tätig. 1985 gründete er zusammen mit seinem Bruder die Keil-Elektronik GmbH. Er ist Co-Entwickler des Keil-C51-Compilers, der die Grundlage für den weltweiten Erfolg von Keil Software ist. Nach der Übernahme von Keil durch ARM ist er jetzt Direktor für Microcontroller Development Tools bei ARM. |
Reinhard.Keil@arm.com
Literatur
[1] Cortex-M3 Technical Reference Manual. ARM Ltd., http://infocenter.arm.com
[2] CoreSight Architecture Specification. ARM Ltd., http://infocenter.arm.com
[3] Diewald, H.; Keil, R.; Lauterbach, S.; Sturm, M.: The embedded world Technology Report 2010. WEKA Fachmedien GmbH, Poing 2010.