Die meisten modernen Mikrocontroller-Designs funktionieren mit jedem Muster an ihrem Takteingang, vorausgesetzt, kein hoher Impuls liegt unter einer bestimmten Mindestlänge, kein niedriger Impuls liegt unter einer bestimmten Mindestlänge und kein Niedrig-Hoch-Niedrig oder Hoch-Niedrig-Hoch Das Impulspaar liegt unter einer bestimmten Länge. Im Wesentlichen geschieht Folgendes: Nachdem der Chip alle mit einer bestimmten Taktflanke verbundenen Aktionen ausgeführt hat, befindet er sich in einem Zustand, in dem er nur auf die nächste Taktflanke wartet. Wenn die nächste Taktflanke zehn Tage lang nicht eintrifft (es sei denn, der Chip verfügt über einen externen Watchdog), befindet sich der Chip in demselben Zustand, als wäre die Flanke in dem Moment angekommen, in dem der Chip dafür bereit war.
Beachten Sie, dass das Anhalten der Uhr auf einem Mikrocontroller im Allgemeinen den Stromverbrauch erheblich reduziert, jedoch nicht so stark wie das Verwenden der Funktion "Ruhezustand". Der Stromverbrauch der meisten Mikrocontroller im "Run" -Modus kann ziemlich gut als ein konstanter Ruhestrom zuzüglich einer bestimmten Strommenge pro Zyklus pro Sekunde (was natürlicher ausgedrückt als Ladung pro Zyklus sein könnte) geschätzt werden. Beispielsweise kann ein Chip einen Ruhestrom von 10 uA plus einen Strom von 0,1 mA / MHz (100 pC / Zyklus) aufweisen. Wenn ein solcher Chip mit 10 MHz betrieben wird, ergibt sich ein Strom von 1,01 mA. Wenn Sie es mit 1 MHz betreiben, erhalten Sie 0,11 mA. Ein Betrieb mit 100 kHz würde 0,02 mA ergeben. Läuft es bei 1Hz, ergibt es 0.0100001mA. Andererseits könnte der Chip einen Ruhestrom von 1 uA bieten. Allgemein, Wenn Sie in den Ruhemodus wechseln, werden Bereiche des Chips, die im Ruhemodus nichts Nützliches bewirken, vollständig abgeschaltet, wodurch eventuelle Leckströme in diesen Bereichen vermieden werden. In einigen Fällen wird auch die Spannung in Bereichen wie Registerdateien auf ein Niveau reduziert, in dem die Registerdateien ihren Inhalt enthalten können, aber nicht sehr schnell darauf zugreifen können (da auf sie überhaupt nicht zugegriffen werden kann, spielt die Zugriffsgeschwindigkeit keine Rolle). .
Einige ältere Mikroprozessoren, Mikrocontroller und andere Geräte hatten maximale Zeiten für hohe und / oder niedrige Takte. Solche Prozessoren verwendeten dynamische Logik, um Schaltungen einzusparen. Betrachten Sie als Beispiel für eine dynamische Logik ein Schieberegister: Ein typisches statisches Registerbit erfordert eine Zwei-Transistor-Schaltung, um den Wert zu halten, während ein dynamisches Registerbit den Wert am Gate eines Auslesetransistors hält. Ein zweiphasig getaktetes dynamisches Schieberegister kann im NMOS unter Verwendung von vier NFETs und zwei Widerständen pro Bit realisiert werden. Ein statisches Schieberegister würde acht NFETs und vier Widerstände pro Bit erfordern. Dynamische Logikansätze sind heute bei weitem nicht mehr so verbreitet. In den 1970er Jahren war die Gatekapazität beträchtlich und konnte nicht beseitigt werden. Es gab also keinen besonderen Grund, davon keinen Gebrauch zu machen. Heute, Die Gatekapazität ist im Allgemeinen viel geringer, und die Chiphersteller versuchen aktiv, sie weiter zu reduzieren. Um die dynamische Logik zuverlässig arbeiten zu lassen, muss häufig bewusst gearbeitet werden, um die Gate-Kapazität zu erhöhen. In den meisten Fällen könnte die zusätzliche Chipfläche, die zum Erhöhen der Kapazität benötigt wird, genauso effektiv verwendet werden, um mehr Transistoren hinzuzufügen, um die Kapazität unnötig zu machen.