DE102010002636A1 - Reduktion des Stromverbrauchs in einem Mikrocontroller - Google Patents

Reduktion des Stromverbrauchs in einem Mikrocontroller Download PDF

Info

Publication number
DE102010002636A1
DE102010002636A1 DE102010002636A DE102010002636A DE102010002636A1 DE 102010002636 A1 DE102010002636 A1 DE 102010002636A1 DE 102010002636 A DE102010002636 A DE 102010002636A DE 102010002636 A DE102010002636 A DE 102010002636A DE 102010002636 A1 DE102010002636 A1 DE 102010002636A1
Authority
DE
Germany
Prior art keywords
clock
peripheral module
microcontroller
power consumption
peripheral
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102010002636A
Other languages
English (en)
Other versions
DE102010002636B4 (de
Inventor
Frode Milch Pedersen
Fredrik Larsen
Oyvind Skutlaberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of DE102010002636A1 publication Critical patent/DE102010002636A1/de
Application granted granted Critical
Publication of DE102010002636B4 publication Critical patent/DE102010002636B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

Die angegebenen Implementierungen ermöglichen eine Reduktion des Stromverbrauchs in einem Mikrocontroller durch das Reaktivieren eines Takts in dem Mikrocontrollers für ein oder mehrere Peripheriemodule in Reaktion auf ein internes oder externes Auslöseereignis, damit das eine oder die mehreren Peripheriemodule auf Ereignisse reagieren können, während sie in einem Ruhemodus mit einem niedrigen Stromverbrauch betrieben werden. In einigen Implementierungen sehen ein oder mehrere Peripheriemodule in einem Mikrocontroller ein Taktanforderungssignal für einen Takterzeuger in dem Mikrocontroller vor. In Reaktion auf das Taktanforderungssignal reaktiviert der Takterzeuger eine oder mehrere Schwingungsquellen. Der Takterzeuger nimmt die Takterzeugung nur für das eine oder die mehreren anfordernden Peripheriemodule auf, um den Stromverbrauch in dem Mikrocontroller auf ein Minimum zu reduzieren und andere Module in dem Mikrocontroller nicht zu stören.

Description

  • Die vorliegende Erfindung betrifft allgemein den Stromverbrauch in einem Mikrocontroller und insbesondere eine Vorrichtung und ein Verfahren für die Taktsteuerung in Operationsmodi mit einem niedrigen Stromverbrauch.
  • Ein niedriger Stromverbrauch wird zu einem immer wichtigeren Parameter für Mikrocontroller-Systeme. Der aktive Stromverbrauch in einem Mikrocontroller-System wird normalerweise durch die Schaltaktivität in dem Schaltungsaufbau bestimmt und ist proportional zu der an der digitalen Logik angelegten Taktfrequenz. Analoge Module weisen einen im wesentlichen fixen Stromverbrauch auf, der bei niedrigen Frequenzen oder in Modi mit geringem Stromverbrauch bestimmend sein kann. Getaktete Peripheriemodule in dem Mikrocontroller-System sind gewöhnlich in ungetakteten Ruhemodi mit einem extrem geringen Stromverbrauch nicht verfügbar, sodass Anwendungen getaktete Modi mit höherem Stromverbrauch verwenden müssen.
  • Herkömmliche Lösungen zur Reduktion des Stromverbrauchs in einem Mikrocontroller erfordern, dass der Takt für die CPU oder für Peripheriemodule ausgeschaltet wird, wozu gewöhnlich ein oder mehrere Ruhemodi in dem Mikrocontroller implementiert sind. Diese Lösung kann ausgeweitet werden, bis alle Takte und analogen Modle ausgeschaltet wurden und nur ein Leckstrom bleibt, der gewöhnlich um mehrere Größenordnungen kleiner als der aktive Strom ist. Der Nachteil dieses herkömmlichen Ansatzes liegt darin, dass die Funktionalität des Geräts reduziert wird, weil die meisten Peripheriemodule für den Betrieb mit einem laufenden Takt ausgerichtet sind.
  • Die hier angegebenen Implementierungen sorgen für eine Reduktion des Stromverbrauchs in einem Mikrocontroller, indem sie einen Takt in dem Mikrocontroller für eines oder mehrere Peripheriemodule in Reaktion auf ein internes oder externes Auslöseereignis aktivieren, sodass das eine oder die mehreren Peripheriemodule auf Ereignisse reagieren können, während sie in einem Ruhemodus mit einem geringen Stromverbrauch betrieben werden. In einigen Implementierungen geben ein oder mehrere Peripheriemodule in einem Mikrocontroller ein Taktanforderungssignal zu einem Takterzeuger in dem Mikrocontroller. In Reaktion auf das Taktanforderungssignal reaktiviert der Takterzeuger eine oder mehrere Schwingungsquellen. Der Takterzeuger nimmt die Takterzeugung nur für das eine oder die mehreren anfordernden Peripheriemodule auf, um den Stromverbrauch in dem Mikrocontroller auf ein Minimum zu reduzieren und die anderen Module in dem Mikrocontroller nicht zu stören.
  • Das hier angegebene Schema zur Reduktion des Stromverbrauchs bietet verschiedene Vorteile gegenüber herkömmlichen Techniken zur Reduktion des Stromverbrauchs. Das hier angegebene Schema zur Reduktion des Stromverbrauchs gestattet, dass Peripheriemodule in einem Mikrocontroller-System weiterhin in Ruhemodi mit extrem geringem Stromverbrauch reagieren können, wodurch Anwendungen mit einem geringerem Stromverbrauch ermöglicht werden. Das hier angegebene Schema zur Reduktion des Stromverbrauchs kann in Verbindung mit den meisten bestehenden Peripheriemodulen verwendet werden. Das hier angegebene Schema zur Reduktion des Stromverbrauchs ist mit geringen Implementierungskosten und einer geringen Komplexität verbunden.
  • 1 ist ein Blockdiagramm, das ein beispielhaftes Mikrocontroller-System zum Implementieren einer Taktsteuerung in Betriebsmodi mit einem geringen Stromverbrauch zeigt.
  • 2 ist ein schematisches Blockdiagramm, das die Verwendung einer asynchronen Logik in dem Mikrocontroller-System von 1 zeigt.
  • 3 ist ein Blockdiagramm, das ein beispielhaftes Mikrocontroller-System mit einer darin implementierten Taktsteuerung für einen Analog-Digital-Wandlerbetrieb (ADC) mit einem geringen Stromverbrauch zeigt.
  • 4 ist ein Blockdiagramm, das ein beispielhaftes Mikrocontroller-System mit einer darin implementierten Taktsteuerung für eine I2C-Adressen-Übereinstimmungserfassung mit einem geringen Stromverbrauch zeigt.
  • 5 ist ein Flussdiagramm, das einen beispielhaften Taktsteuerungsprozess für eine Reduktion des Stromverbrauchs zeigt.
  • Das in dem Blockdiagramm von 1 gezeigte beispielhafte Mikrocontrollersystem 100 implementiert eine Taktsteuerung in Betriebsmodi mit einem geringen Stromverbrauch. In einigen Implementierungen kann das System 100 eine Schwingungsquelle 102, einen Takterzeuger 104, ein oder mehrere Peripheriemodule 106 (nur ein Peripheriemodul ist gezeigt), einen Event-Handler 108, eine CPU 110, ein oder mehrere Module 112 mit einem extrem geringen Stromverbrauch, einen Echtzeit-Zähler (RTC) 114 und einen oder mehrere externe Unterbrecher 116 umfassen.
  • Der Takterzeuger 104 steuert (z. B. aktiviert) die Schwingungsquelle 102, die einen Quelltakt (z. B. CLK_CPU) für die CPU 110 und Quelltakte (z. B. CLK0) für ein oder mehrere Peripheriemodule 106 erzeugt. Die Schwingungsquelle 102 kann ein beliebiger Typ von Schwingungsquelle sein, wobei es sich etwa um einen Hochgeschwindigkeits-Kristall-Oszillator, einen internen RC-Oszillator oder einen Phasenregelkreis handeln kann.
  • Der Quelltakt für die CPU 110 und die Quelltakte für die Peripheriemodule 106 können in einem Ruhemodus mit einem geringen Stromverbrauch gestoppt werden, um einen extrem niedrigen Stromverbrauch für das Mikrocontroller-System 100 vorzusehen. Während des Betriebs in dem Ruhemodus mit einem geringen Stromverbrauch gestattet der Event-Handler 108, dass die getakteten Peripheriemodule 106 auf interne und/oder externe Ereignisse reagieren, wenn die Peripherietakte gestoppt sind. In einigen Implementierungen umfasst der Event-Handler 108 einen Schaltungsaufbau, der zu jedem Peripheriemodul 106 und zu dem Takterzeuger 104 hinzugefügt werden kann, um das Erzeugen, Senden und Empfangen von Auslöseereignissen und Taktanforderungen zu unterstützen.
  • In einem Modus mit einem extrem geringen Stromverbrauch kann ein bestimmtes Peripheriemodul 106 (z. B. das Peripheriemodul 0) ein Wecksignal zu dem Event-Handler 108 senden, um anzugeben, dass das Peripheriemodul 106 einen Takt zum Betreiben einer Anwendung und/oder Ausführen einer Operation anfordert. In Reaktion auf das Wecksignal sendet der Event-Handler 108 ein Taktanforderungssignal (z. B. CLK_REQ0) zu dem Takterzeuger 104. In Reaktion auf das Taktanforderungssignal steuert oder aktiviert der Takterzeuger 104 die Schwingungsquelle 102, um einen Quelltakt zu dem Takterzeuger 104 zu geben. Der Quelltakt wird durch den Takterzeuger 104 verwendet, um einen Takt mit einer gewünschten Frequenz für das anfordernde Peripheriemodul 106 (z. B. das Peripheriemodul 0) zu erzeugen. In einigen Implementierungen umfasst der Takterzeuger einen Schaltungsaufbau (z. B. einen Verstärker, eine Taktteilungsschaltung) für einen Betrieb mit dem durch die Schwingungsquelle 102 vorgesehenen Quelltakt, um einen Takt für das anfordernde Peripheriemodul mit gewünschten Eigenschaften (z. B. einer gewünschten Frequenz) vorzusehen.
  • Das Peripheriemodul 106 kann den Takt zum Ausführen einer Operation verwenden. Wenn die Operation abgeschlossen ist, kann das Peripheriemodul 106 die CPU 110 unter Verwendung eines Interrupt-Signals (IRQ0) wecken. Weil die Schwingungsquelle 102 bereits läuft, können alle Takte in dem Mikrocontroller-System 100 schnell aktiviert werden.
  • 2 ist ein schematisches Blockdiagramm, das die Verwendung einer asynchronen Logik in dem Mikrocontroller-System 100 von 1 zeigt. 2 zeigt die durch das System 100 verwendeten Taktsteuerfunktionen für eine Reduktion des Stromverbrauchs. Die Taktsteuerfunktionen können unter Verwendung von verschiedenen Konfigurationen und Schaltungseinrichtungen implementiert werden. In einigen Implementierungen können die Funktionen des Mikrocontroller-Systems 100 für die Reduktion des Stromverbrauchs konzeptuell durch die Schwingungsquelle 102, den Takterzeuger 104, das Peripheriemodul 106 und den Event-Handler 108 beschrieben werden. Die Funktionen des Event-Handlers 108 können konzeptuell durch einen Flip-Flop 118 (z. B. einen SR-Flip-Flop) oder ein ODER-Gatter 120 beschrieben werden. Die Funktionen des Takterzeugers 104 können konzeptuell durch ein Gatter 122 und ein Gatter 124 beschrieben werden.
  • In dem Ruhemodus mit einem extrem geringen Stromverbrauch kann ein internes oder externes Auslöseereignis durch das Peripheriemodul 106 und den Event-Handler 108 empfangen werden. Das Auslöseereignis erfordert, dass das Peripheriemodul 106 eine Operation ausführt. Weil das Peripheriemodul 106 ein getaktetes Peripheriemodul ist und weil sich das Mikrocontroller-System 100 in dem Ruhemodus befindet, werden die Schwingungsquelle 102 und der Takterzeuger reaktiviert, um den Takt für das Peripheriemodul 106 zu erzeugen. In herkömmlichen Systemen werden alle Quelltakte für alle Peripheriemodule und die CPU reaktiviert, auch wenn nur ein einzelnes Peripheriemodul einen Takt anfordert. Dies hat einen unnötigen Stromverbrauch zur Folge. In dem System 100 empfängt jedoch nur das anfordernde Peripheriemodul 106 einen Takt, wodurch eine Reduktion des Stromverbrauchs ermöglicht wird.
  • In einigen Implementierungen ist der Event-Handler 108 ein asynchroner Logik-Block, der in einer Hardware-Beschreibungssprache (z. B. RTL (Register Transfer Language)) beschrieben werden kann und zusammen mit einem Schaltungsaufbau für das Peripheriemodul 106 vorgesehen ist. Der Event-Handler 108 registriert, wann ein Ereignis auftritt. Diese Registrierung löst ein Taktanforderungssignal (CLK_REQ) für den Takterzeuger 104 aus, wodurch angegeben wird, dass das Peripheriemodul 106 (Peripheriemodul 0) einen Takt für seinen Betrieb anfordert. In der gezeigten beispielhaften Konfiguration wird das Ereignissignal in das ODER-Gatter 120 zusammen mit einem durch das Peripheriemodul 106 erzeugten OPERATION_GESTARTET-Signal eingegeben, um anzugeben, dass das Peripheriemodul 106 seinen Takt verwendet. Durch ein Auslöseereignis oder den Betrieb des Peripheriemoduls 106 wird der Flip-Flop 118 gesetzt. Die Ausgabe des Flip-Flops 118 ist CLK_REQ0 für das Peripheriemodul 106. CLK_REQ0 wird in ein UND-Gatter 124 zusammen mit dem Takt (CLK) aus der Schwingungsquelle 102 eingegeben. Wenn beide Signale hoch ausgegeben werden (z. B. logisch ,1'), wird CLK0 zu dem Peripheriemodul 106 gegeben. Es ist zu beachten, dass der asynchrone Logik-Block in 2 auf eine beliebige Anzahl von getakteten Peripheriemodulen erweitert werden kann.
  • Der Takterzeuger 104 wird mit einem asynchronen Logik-Block erweitert, der dem Event-Handler 108 ähnlich ist, wodurch sichergestellt wird, dass eine aktuell gewählte Schwingungsquelle 102 erneut aktiviert wird. Der Takterzeuger 104 nimmt die Takterzeugung erneut auf, aber nur für das anfordernde Peripheriemodul 106, sodass der Stromverbrauch auf ein Minimum reduziert wird und die anderen Module in dem System 100 nicht gestört werden. In der gezeigten beispielhaften Konfiguration empfängt das ODER-Gatter 122 in dem Takterzeuger 104 Taktanforderungssignale von dem Event-Handler 108 und erzeugt in Reaktion darauf ein Aktivierungssignal. Das Aktivierungssignal wird durch die Schwingungsquelle 102 empfangen und veranlasst, dass die Schwingungsquelle 102 erneut aktiviert wird und den Takt CLK erzeugt.
  • Nachdem CLK0 erneut aktiviert wurde, kann das Peripheriemodul 106 den Betrieb wieder aufnehmen. Dabei können ein oder mehrere Signale zu dem Event-Handler 108 ausgegeben und/oder unterdrückt werden, um anzugeben, dass CLK0 verwendet wird. Zum Beispiel kann ein OPERATION_GESTARTET-Signal ausgegeben werden und kann ein OPERATION_ABGESCHLOSSEN-Signal unterdrückt werden, um anzugeben, dass das Peripheriemodul 9 eine Operation gestartet hat und CLK0 verwendet. Nachdem die Operation abgeschlossen wurde, kann das Peripheriemodul 106 die CPU 110 mit einem Interrupt-Signal (IRQ) aufwecken, das alle Takte schnell aktivieren kann, weil die Schwingungsquelle bereits läuft. Wenn alternativ hierzu das Ergebnis der Operation keinen Interrupt erzeugt, kann das Peripheriemodul 106 das OPERATION_ABGESCHLOSSEN-Signal zu dem Event-Handler 108 ausgeben, der wiederum die Taktanforderung CLK_REQ0 zu dem Takterzeuger 104 unterdrückt. Der Takterzeuger 104 entfernt dann CLK0 zu dem Peripheriemodul 106 und deaktiviert die Schwingungsquelle 102, sodass das System 100 zu dem Ruhemodus mit einem geringen Stromverbrauch zurückkehrt, ohne dass die CPU 110 jemals aufgeweckt wird. Das System 100 bleibt also in dem Ruhemodus mit einem geringen Stromverbrauch, bis ein neues Auslöseereignis auftritt.
  • Das System 100 gestattet, dass eine beliebige Anzahl von Peripheriemodulen gleichzeitig Takte anfordern. Die Schwingungsquelle 102 wird aktiv, wenn wenigstens ein Peripheriemodul einen Start seines Taktes anfordert.
  • 3 ist ein Blockdiagramm, das ein beispielhaftes Mikrocontroller-System 300 zeigt, das eine Taktsteuerung für einen ADC-Betrieb mit geringem Stromverbrauch implementiert. Das Peripheriemodul in diesem Beispiel ist ein ADC 308, der durch ein Ereignis von dem RTC 314 ausgelöst wird, der durch einen 32-kHZ-Oszillator mit extrem niedrigem Stromverbrauch getaktet wird. Der ADC 308 überwacht einen On-Chip-Temperatursensor 304 und ist eingerichtet, um die CPU 310 zu wecken, wenn die Temperatur über einen bestimmten durch den Benutzer programmierbaren Schwellwert steigt. Weil sich die Temperatur langsam verändert, ist der RTC 314 eingerichtet, um jeweils nach einer Sekunde ein Auslöseereignis (z. B. ein Weckereignis) zu erzeugen. Der Modus mit einem geringen Stromverbrauch weist einen Stromverbrauch von 1 μA auf, wenn der RTC 314 und der 32-kHz-Oszillator laufen. In dieser beispielhaften Anwendung werden die Schwingungsquelle 302, der Takterzeuger 306 und der Event-Handler 312 wie mit Bezug auf 2 beschrieben betrieben.
  • In dieser beispielhaften Anwendung weist der ADC 308 während des Betriebs (mit dem Takterzeuger 306 und der Schwingungsquelle 302) einen Stromverbrauch von 500 μA und eine Wandlungszeit von 10 μs auf. Ohne den Event-Handler 312 und den Takterzeuger 306, die die asynchrone Logik für die Taktsteuerung vorsehen, wird der ADC 308 in einem reaktiven Ruhemodus betrieben, der einen Stromverbrauch von ungefähr 501 μA aufweist. Mit dem Event-Handler 312 und dem Takterzeuger 306, die eine asynchrone Logik für die Taktsteuerung vorsehen, kann der ADC 308 in jeder Sekunde nur für 10 μA betrieben werden, was einen durchschnittlichen Stromverbrauch von 1 μA + 500 μA·10 μs = 1,005 μA ergibt. Der zusätzliche Stromverbrauch des ADC 308 ist also vernachlässigbar.
  • 4 ist ein Blockdiagramm eines beispielhaften Mikrocontroller-Systems 400, das die Taktsteuerung für eine I20-Adressübereinstimmungs-Erfassung mit einem niedrigen Stromverbrauch implementiert. I2C (inter-integrierte Schaltung) ist ein serieller Computerbus mit mehreren Mastern, der verwendet wird, um Peripheriemodule mit niedriger Geschwindigkeit mit einem Motherboard, einem eingebetteten System oder einem Mobiltelefon zu verbinden.
  • In dieser beispielhaften Anwendung kann ein Auslöseereignis eine Startbedingung auf einem I2C-Bus sein. Die Startbedingung geht einer beliebigen Adresse auf dem Bus voraus und gestattet, dass ein I2C-Slave-Peripheriemodul 406 ungetaktet bleibt, bis die Startbedingung auftritt. Der Event-Handler 410 kann mit einem asynchronen Schaltungsaufbau erweitert werden, um den Takt niedrig zu betreiben, während auf den Start des Peripherietakts CLK0 gewartet wird. Die Startbedingung löst den Event-Hanlder 410 aus, der eine Taktanforderung (CLK_REQ0) zu dem Takterzeuger 404 gibt. CLK0 wird aktiviert, sobald die Schwingungsquelle 402 reaktiviert wurde. Das I2C-Peripheriemodul 406 signalisiert, dass der Takt benötigt wird, bis die vollständige Adresse von dem Bus empfangen wurde. Dabei kann durch einen Startbedingungs-Detektor 412 bestimmt werden, ob die Adresse mit der Adresse des Slave-Peripheriemoduls 406 übereinstimmt. Wenn die Adresse übereinstimmt, wird die CPU 408 geweckt, während ansonsten die Taktanforderung unterdrückt oder entfernt wird und das System 400 zu dem Modus mit einem niedrigen Stromverbrauch zurückkehrt und auf die nächste Startbedingung wartet. In dieser beispielhaften Anwendung werden die Schwingungsquelle 402, der Takterzeuger 404 und der Event-Handler 412 wie oben mit Bezug auf 2 beschrieben betrieben.
  • Wie in diesen Beispielen gezeigt, ermöglicht das hier angegebene Schema zur Reduktion des Stromverbrauchs, dass ein beliebiges Peripheriemodul in einem Modus mit einem niedrigen Stromverbrauch aktiv ist, ohne dass der Stromverbrauch für den Modus mit einem niedrigen Stromverbrauch nennenswert erhöht wird oder eine komplexere Software erforderlich ist. Es können also mehr Anwendungen in Ruhemodi mit einem niedrigen Stromverbrauch betrieben werden, ohne dass dadurch der Stromverbrauch erhöht wird. Dank dieses Aufbaus kann der oben genannte asynchrone Logik-Block in bestehende Peripheriemodule und Takterzeuger integriert erden, ohne dass deren Aufbau komplexer vorgesehen werden muss oder ein andersartiger Aufbau vorgesehen werden muss. Der asynchrone Logik-Block kann mit minimalen Kosten in den meisten bestehenden Mikrocontroller-Systemen implementiert werden, sodass der hier beschriebene Aufbau vielseitig und nützlich angewendet werden kann.
  • 5 ist ein Flussdiagramm, das einen beispielhaften Taktsteuerungsprozess 500 zur Reduktion des Stromverbrauchs zeigt. In einigen Implementierungen beginnt der Prozess 500, wenn ein Event-Handler eines Peripheriemoduls ein internes oder externes Auslöseereignis registriert, das mit dem Peripheriemodul assoziiert ist (502). In Reaktion auf das registrierte Auslöseereignis wird ein Taktanforderungssignal durch den Event-Handler unter Verwendung von zum Beispiel einem asynchronen Logik-Block erzeugt (504). In Reaktion auf das Taktanforderungssignal wird eine Schwingungsquelle reaktiviert (506). Ein Peripherietakt wird für das anfordernde Peripheriemodul unter Verwendung der reaktivierten Taktquelle erzeugt (508).
  • In der vorliegenden Anmeldung werden viele spezifische Implementierungsdetails beschrieben, wobei die vorliegende Erfindung jedoch nicht auf diese Implementierungsdetails beschränkt ist, die lediglich für die hier beschriebenen Ausführungsformen spezifisch sind. Bestimmte Merkmale, die in dieser Beschreibung im Kontext von verschiedenen Ausführungsformen beschrieben werden, können auch in einer alternativen Ausführungsformen gemeinsam implementiert werden. Umgekehrt können bestimmte Merkmale, die hier im Kontext einer bestimmten Ausführungsform beschrieben werden, auch separat in verschiedenen Ausführungsformen oder in beliebigen anderen Kombinationen implementiert werden. Und obwohl die Merkmale hier in bestimmten Kombinationen beschrieben und auch derart beansprucht werden, können auch ein oder mehrere der Merkmale aus einer beanspruchten Kombination ausgegliedert werden und kann die beanspruchte Kombination auf eine Teilkombination oder eine Variation einer Teilkombination modifiziert werden.

Claims (8)

  1. Verfahren für die Ausführung durch einen Mikrocontroller mit einer Anzahl von Peripheriemodulen, die mit einem niedrigen Stromverbrauch betrieben werden können, wobei das Verfahren umfasst: Registrieren eines Auslöseereignisses, das mit einem Peripheriemodul assoziiert ist, in Reaktion auf das Auslöseereignis: Erzeugen eines Taktanforderungssignals, das mit dem Peripheriemodul assoziiert ist, in Reaktion auf das Taktanforderungssignal: Reaktivieren einer Schwingungsquelle, und Erzeugen eines Takts für das Peripheriemodul unter Verwendung der reaktivierten Schwingungsquelle.
  2. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch: Anwenden des Takts auf das Peripheriemodul, damit das Peripheriemodul eine Operation ausführen kann, Bestimmen, wann die Operation abgeschlossen ist, und in Reaktion auf den Abschluss der Operation: Unterdrücken des Taktanforderungssignals.
  3. Mikrocontroller-System, das umfasst: eine Schwingungsquelle (102; 302; 402), die betrieben werden kann, um einen Quelltakt zu erzeugen, einen Takterzeuger (104; 306; 404), der mit der Schwingungsquelle (102; 302; 402) verbunden ist und betrieben werden kann, um einen Peripherietakt auf der Basis des Quelltakts zu erzeugen, wobei die Schwingungsquelle (102; 302; 402) in Reaktion auf ein Taktanforderungssignal aktiviert wird, das durch den Takterzeuger (104; 306; 404) ausgegeben wird, und ein Peripheriemodul (106; 308; 406), das mit dem Takterzeuger (104; 306; 404) verbunden ist und betrieben werden kann, um den Peripherietakt zu erzeugen, wobei das Peripheriemodul (106; 308; 406) einen Schaltungsaufbau (108; 312; 410, 412) zum Erfassen eines Auslöseereignisses und zum Erzeugen des Taktanforderungssignals in Reaktion auf das Auslöseereignis umfasst.
  4. Mikrocontroller-System nach Anspruch 3, weiterhin gekennzeichnet durch: einen Prozessor (110), der mit dem Peripheriemodul (106; 308; 406) gekoppelt ist, um ein Interrupt-Signal von dem Peripheriemodul (106; 308; 406) zu empfangen, wenn das Peripheriemodul (106; 308; 406) eine Operation abschließt.
  5. Mikrocontroller-System nach Anspruch 3, dadurch gekennzeichnet, dass der Schaltungsaufbau (108; 312; 410, 412) zum Erfassen eines Auslöseereignisses eine asynchrone Logik umfasst.
  6. Mikrocontroller-System nach Anspruch 3, dadurch gekennzeichnet, dass der Schaltungsaufbau (108; 312; 410, 412) zum Erfassen eines Auslöseereignisses betrieben werden kann, um zu erfassen, wann eine durch das getaktete Peripheriemodul (106; 308; 406) ausgeführte Operation abgeschlossen ist, wobei der Schaltungsaufbau (108; 312; 410, 412) das Taktanforderungssignal in Reaktion auf die Erfassung unterdrückt.
  7. Mikrocontroller-System nach Anspruch 3, dadurch gekennzeichnet, dass das Peripheriemodul (106; 308; 406) ein Analog-Digital-Wandler ist.
  8. Mikrocontroller-System nach Anspruch 3, dadurch gekennzeichnet, dass das Peripheriemodul (106; 308; 406) die Erfassung einer Übereinstimmung von Busadressen ausführt.
DE102010002636.0A 2009-03-09 2010-03-08 Reduktion des Stromverbrauchs in einem Mikrocontroller Active DE102010002636B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/400,690 US8255722B2 (en) 2009-03-09 2009-03-09 Microcontroller with clock generator for supplying activated clock signal to requesting module to conserve power
US12/400,690 2009-03-09

Publications (2)

Publication Number Publication Date
DE102010002636A1 true DE102010002636A1 (de) 2010-09-16
DE102010002636B4 DE102010002636B4 (de) 2022-05-19

Family

ID=42558090

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010002636.0A Active DE102010002636B4 (de) 2009-03-09 2010-03-08 Reduktion des Stromverbrauchs in einem Mikrocontroller

Country Status (4)

Country Link
US (1) US8255722B2 (de)
CN (1) CN101876847A (de)
DE (1) DE102010002636B4 (de)
TW (1) TW201040701A (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412967B2 (en) * 2009-07-28 2013-04-02 Stmicroelectronics S.R.L. Method of enhancing power saving in an integrated electronic system with distinctly powered islands of functional circuitries and related device architecture
US8392745B2 (en) * 2010-04-26 2013-03-05 Broadcom Corporation Modular integrated circuit with clock control circuit
WO2012063129A2 (en) * 2010-11-08 2012-05-18 Energy Micro AS Low energy sensor interface
US8943335B2 (en) 2010-12-22 2015-01-27 Atmel Corporation Battery management and protection system using a module in a sleepwalking mode to monitor operational characteristics of a battery
US9054528B2 (en) 2010-12-22 2015-06-09 Atmel Corporation Event system and timekeeping for battery management and protection system
US8843538B2 (en) 2010-12-22 2014-09-23 Atmel Corporation Measuring sum of squared current
CN102621912A (zh) * 2011-01-27 2012-08-01 赛酷特(北京)信息技术有限公司 单片机自动节电方法
US8954770B2 (en) * 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US8984323B2 (en) * 2011-09-28 2015-03-17 Microchip Technology Incorporated Scheduling events in a microprocessor using a plurality of delta time registers arranged as a sequence buffer and indicating a sequence position of the sequence buffer to process an event
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US8959382B2 (en) * 2011-12-30 2015-02-17 Silicon Laboratories Inc. Controlling communication of a clock signal to a peripheral
GB201211340D0 (en) * 2012-06-26 2012-08-08 Nordic Semiconductor Asa Control of semiconductor devices
US9213388B2 (en) 2012-09-21 2015-12-15 Atmel Corporation Delaying reset signals in a microcontroller system
US9507406B2 (en) 2012-09-21 2016-11-29 Atmel Corporation Configuring power domains of a microcontroller system
US9213397B2 (en) 2012-09-21 2015-12-15 Atmel Corporation Changing power modes of a microcontroller system
US9323312B2 (en) 2012-09-21 2016-04-26 Atmel Corporation System and methods for delaying interrupts in a microcontroller system
US9383807B2 (en) 2013-10-01 2016-07-05 Atmel Corporation Configuring power domains of a microcontroller system
CA2856027A1 (en) 2014-03-18 2015-09-18 Smartrek Technologies Inc. Mesh network system and techniques
US9684367B2 (en) 2014-06-26 2017-06-20 Atmel Corporation Power trace port for tracing states of power domains
US9582026B2 (en) 2014-09-30 2017-02-28 Samsung Electronics Co., Ltd. System-on-chip to support full handshake and mobile device having the same
CN105573408A (zh) * 2014-10-16 2016-05-11 飞思卡尔半导体公司 集成电路以及低功率操作方法
KR102467172B1 (ko) * 2016-01-25 2022-11-14 삼성전자주식회사 반도체 장치
KR102618563B1 (ko) * 2016-07-01 2023-12-27 삼성전자주식회사 집적 회로 장치와 이를 포함하는 전자 장치
WO2019055066A1 (en) * 2017-09-12 2019-03-21 Ambiq Micro, Inc. VERY LOW POWER MICROCONTROLLER SYSTEM
CN110865959B (zh) * 2018-08-27 2021-10-15 武汉杰开科技有限公司 一种用于唤醒i2c设备的方法及电路
EP4354250A1 (de) * 2022-10-14 2024-04-17 EM Microelectronic-Marin SA Taktverteilungsnetzwerk

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623234A (en) * 1996-03-04 1997-04-22 Motorola Clock system
JPH11143571A (ja) * 1997-11-05 1999-05-28 Mitsubishi Electric Corp データ処理装置
JP2001350739A (ja) * 2000-06-07 2001-12-21 Mitsubishi Electric Corp マイクロコンピュータ
KR100481873B1 (ko) * 2003-02-04 2005-04-11 삼성전자주식회사 절전모드를 갖는 매체 엑세스 제어기
CN100470656C (zh) * 2003-10-31 2009-03-18 宇田控股有限公司 摆动时钟信号的产生方法和产生装置
JP2005250650A (ja) * 2004-03-02 2005-09-15 Nec Electronics Corp マルチレイヤシステム及びクロック制御方法

Also Published As

Publication number Publication date
CN101876847A (zh) 2010-11-03
US20100229011A1 (en) 2010-09-09
US8255722B2 (en) 2012-08-28
DE102010002636B4 (de) 2022-05-19
TW201040701A (en) 2010-11-16

Similar Documents

Publication Publication Date Title
DE102010002636B4 (de) Reduktion des Stromverbrauchs in einem Mikrocontroller
DE60223555T2 (de) Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
US9703313B2 (en) Peripheral clock management
DE102012212441B4 (de) Verfahren zum Eintreten in und Verlassen eines Schlafmodus in einer Graphikverarbeitungseinheit
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE69727355T2 (de) Anordnung und Verfahren zur Taktsequenzierung in einem Datenverarbeitungssystem
US7181188B2 (en) Method and apparatus for entering a low power mode
DE112015002522T5 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
US6711526B2 (en) Operating system-independent method and system of determining CPU utilization
DE112006002835T5 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
JPH07152450A (ja) コンピュータシステム、ならびに周辺バスクロック信号を制御するためのシステムおよび方法
DE112007001987T5 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE112005003133T5 (de) Verminderung hörbarer Geräusche bei Leitungszustandsübergängen
WO2016058386A1 (zh) 一种功耗管理方法、装置及计算机存储介质
DE102015202513A1 (de) Vorrichtung und Verfahren zur Datenspeicherung sowie Datenverarbeitungssystem damit
TWI470410B (zh) 電子系統及其電源管理方法
CN105892629A (zh) 基于多内核的屏幕唤醒方法、装置和移动终端
CN105159722B (zh) Rtc唤醒系统的方法及计算机
DE69320417T3 (de) Verfahren und Gerät zur Änderung der Taktfrequenz eines Prozessors
CN106814840A (zh) 用于处理器的低电力状态保持模式
CN210072612U (zh) 一种物联网芯片系统
DE112013001356T5 (de) Dynamische Wärmesensorabschaltung
WO2020140500A1 (zh) 一种模拟看门狗装置及其控制方法
DE102017110582A1 (de) Halbleitervorrichtung, Halbleitersystem und Verfahren zum Betreiben der Halbleitervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final