FR2789501A1 - Procede et dispositif de reduction de la consommation d'un microcontroleur - Google Patents
Procede et dispositif de reduction de la consommation d'un microcontroleur Download PDFInfo
- Publication number
- FR2789501A1 FR2789501A1 FR9901517A FR9901517A FR2789501A1 FR 2789501 A1 FR2789501 A1 FR 2789501A1 FR 9901517 A FR9901517 A FR 9901517A FR 9901517 A FR9901517 A FR 9901517A FR 2789501 A1 FR2789501 A1 FR 2789501A1
- Authority
- FR
- France
- Prior art keywords
- microcontroller
- mode
- internal
- signal
- oscillating signal
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
Abstract
L'invention propose un procédé et un dispositif de réduction de la consommation d'un microcontrôleur, permettant la mise du microcontrôleur dans un mode " arrêt actif " (mode ACTIVE-HALT) dans lequel l'unité centrale de traitement (CPU), les circuits périphériques internes (MEM, ADC, DAC, WDG) et un arbre d'horloge (CLKTR) sont désactivés, mais dans lequel l'oscillateur principal (OSC) fonctionne et délivre un signal oscillant (fosc ), une interruption interne qui ramène le microcontrôleur (MCU) en mode " exécution " (mode RUN) étant générée après une temporisation obtenue à l'aide d'un circuit interne (DIV) activé par le signal oscillant (fosc ).
Description
PROCEDE ET DISPOSITIF DE REDUCTION DE LA CONSOMMATION D'UN
MICROCONTROLEUR
La présente invention se rapporte à un procédé et à un dispositif de réduction de la consommation (en courant) d'un microcontrôleur. En se référant à la figure 1, un microcontrôleur MCU est un circuit intégré comprenant différents circuits internes parmi lesquels une unité centrale de traitement CPU, un oscillateur principal OSC, un circuit MCC de génération d'un signal d'horloge fcPu (à partir du signal oscillant délivré par l'oscillateur principal OSC), ainsi que des circuits périphériques internes. Par convention, les mots " interne ", " externe ", " intérieur " et " extérieur " sont utilisés dans la suite du présent exposé par référence au boîtier du
microcontrôleur MCU, celui-ci étant représenté symboliquement à la figure 1 par un cadre en traits discontinus.
Les circuits périphériques internes comprennent par exemple une mémoire MEM de type EPROM ou EEPROM, un circuit WDG appelé circuit de " watchdog " (qui signifie " chien de garde ", en anglais), au moins un convertisseur analogique/numérique ADC et/ou au moins un convertisseur20 numérique/analogique DAC, des compteurs, etc.... La mémoire MEM est chargée par le client avec un programme de pilotage du microcontrôleur (" user program ", en anglais), lors d'une
étape de programmation préalable à l'implantation du microcontrôleur dans l'application.
L'un des objectifs constants des fabricants de circuits intégrés consiste à réduire autant que possible la consommation en courant des circuits. En effet, dans beaucoup d'applications, la source d'alimentation du circuit électronique incorporant le circuit intégré est une batterie ou une pile dont la charge est limitée dans le temps. En outre, réduire la consommation des circuits intégrés limite les problèmes liés à la dissipation de la chaleur produite par effet Joule (pertes Joule). De fait, l'évolution permanente de la technologie des circuits intégrés permet de réduire leur consommation. Il s'agit là d'une réduction " statique ", au sens o elle ne dépend pas de l'utilisation
du circuit intégré.
Néanmoins, les microcontrôleurs sont de plus en plus complexes, c'est à dire qu'ils comprennent de plus en plus de circuits internes pour répondre aux besoins croissants des clients. Il résulte que les efforts faits en matière de technologie pour réduire la consommation en courant des microcontrôleurs, sont bien souvent largement compensés par l'augmentation de la taille et de la complexité de ces circuits intégrés. En effet, la consommation d'un microcontrôleur est largement liée au nombre de transistors (composants élémentaires) qu'il contient, puisqu'elle résulte
essentiellement de la commutation de ces transistors.
C'est pourquoi, en ce qui concerne les microcontrôleurs, on a depuis longtemps proposé de désactiver le circuit intégré pendant les parties du temps o il n'intervient pas dans l'application. On dit parfois que le microcontrôleur est alors " mis en sommeil " (" standby ", en anglais). De même, on a aussi proposé de désactiver certains seulement des circuits internes du microcontrôleur, lorsque ces circuits internes n'interviennent pas dans le fonctionnement du microcontrôleur. Dans les deux cas ci-dessus, on obtient une réduction " dynamique " de la consommation en courant, dans la mesure o l'économie réalisée dépend de l'utilisation du
microcontrôleur.
Ainsi, dans l'état de la technique, on connaît des microcontrôleurs qui peuvent se trouver dans divers modes de fonctionnement, dans lesquels un certain nombre ou la totalité de leurs circuits internes sont désactivés. Dans les deux paragraphes ci-dessus et dans la suite du présent exposé (à moins qu'il n'en soit disposé autrement), les termes " activé " et " désactivé " utilisés en référence à un circuit interne du microcontrôleur signifient, respectivement, que' ces circuit reçoit ou ne reçoit pas le
signal d'horloge fcPu.
Par exemple, pour les microcontrôleurs de la famille ST7 proposés à la vente par la société STMicroelectronics SA, on distingue les modes de fonctionnement suivants: - un mode RUN, ou mode " exécution ", dans lequel tous les circuits internes du microcontrôleur sont activés (figure 1); le mode RUN est le mode de fonctionnement normal, celui dans lequel le programme de pilotage est exécuté; C'est le mode de fonctionnement par défaut, c'est à dire celui dans lequel le microcontrôleur se trouve après son initialisation et après chaque réinitialisation; - un mode SLOW, ou mode " lent ", dans lequel la fréquence du signal d'horloge fcPu est réduite par rapport à sa valeur nominale; le CPU et les circuits périphériques du microcontrôleur sont activés par ce signal d'horloge de fréquence réduite; ce mode permet déjà la réduction de la consommation puisque plus la fréquence fcpu est basse et moins les transistors des circuits internes subissent de commutations par unité de temps; bien entendu, la vitesse de fonctionnement du microcontrôleur s'en trouve corrélativement réduite; - un mode WAIT, ou mode " attente ", dans lequel le CPU est désactivé alors que les circuits périphériques internes sont activés; le microcontrôleur est mis dans ce mode de fonctionnement par l'exécution d'une instruction adaptée du programme de pilotage, appelée instruction d'attente; classiquement, on place ainsi le microcontrôleur dans la mode WAIT pendant le temps consacré à la réalisation d'une opération par un circuit périphérique interne (par exemple une opération de -conversion analogique/numérique réalisée par un circuit ADC), cette opération ne nécessitant pas l'intervention du CPU; le microcontrôleur est ramené du mode WAIT au mode RUN grâce à une interruption interne (générée par ledit circuit périphérique interne du microcontrôleur lorsque ladite opération est terminée); cette interruption permet de " rendre la main " au CPU pour l'exécution de l'instruction suivante pointée par son compteur de programme (" program counter ", en anglais); bien entendu, on peut aussi prévoir que le microcontrôleur est ramené du mode WAIT au mode RUN à réception d'un signal EXT INT interruption externe ou d'un signal RST de réinitialisation externe (" reset signal ", en anglais) sur des broches d'entrée adaptées du boîtier du microcontrôleur; le mode WAIT permet de réduire la consommation en supprimant la contribution du CPU pendant les parties du temps o celui-ci n'intervient pas; - un mode SLOW WAIT, qui est une combinaison des deux modes précédents, respectivement SLOW et WAIT; - un mode HALT, ou mode " arrêt ", dans lequel l'oscillateur principal ne fonctionne plus (c'est à dire qu'il ne génère plus de signal oscillant fosc); de la sorte, le CPU et les circuits périphériques internes du microcontrôleur sont désactivés, puisqu'ils ne reçoivent plus de signal d'horloge fcPu; de la même manière que pour le mode WAIT, le microcontrôleur est mis dans le mode HALT par l'exécution d'une instruction adaptée du programme de pilotage, qu'on appelle instruction d'arrêt; par contre, le microcontrôleur est ramené du mode HALT au mode RUN uniquement à réception par le CPU, via des broches d'entrée adaptées du boîtier du microcontrôleur (voir figure 1), d'un des signaux
EXTINT ou RST précités.
De tous les modes de fonctionnement ci-dessus, le mode HALT est le plus économique (en termes de consommation en courant). Cependant, il présente l'inconvénient d'impliquer un risque de blocage du microcontrôleur. En effet, tous les circuits internes du microcontrôleur sont désactivés en mode HALT (ils ne reçoivent pas de signal d'horloge puisque15 l'oscillateur principal OSC ne fonctionne pas). Sans la génération d'un signal d'interruption externe ou d'un signal
de réinitialisation externe le microcontrôleur pourrait rester indéfiniment bloqué dans le mode HALT. Ces signaux doivent impérativement être prévus dans l'application, ce qui20 constitue une contrainte pour l'utilisateur.
Le mode WAIT peut pallier cet inconvénient, puisque le signal d'horloge fcPu est toujours généré en mode WAIT et qu'une interruption interne peut toujours être générée pour ramener le microcontrôleur en mode RUN. Cependant, le signal25 d'horloge fcPu étant transmis en entrée de chaque circuit périphérique interne du microcontrôleur, il se produit des pertes Joules dans l'ensemble des connexions prévues pour cette transmission (cet ensemble est communément appelé " arbre de distribution du signal d'horloge " ou plus simplement " arbre d'horloge " et est désigné par la référence CLKTR à la figure 1). C'est d'ailleurs la raison pour laquelle le signal d'horloge fcpu doit généralement être fortement amplifié dans le circuit MCC, celui- ci comprenant à cet effet plusieurs circuits tampons (" buffers ", en anglais) non représentés. Ceci est la raison pour laquelle le mode WAIT, bien que plus économique que le mode RUN, est
moins économique que le mode HALT.
L'invention vise à pallier les inconvénients précités
des microcontrôleurs de l'état de la technique.
Ce but est atteint, conformément à l'invention, grâce à un nouveau mode de fonctionnement du microcontrôleur. Dans la suite, ce mode est appelé mode ACTIVE-HALT ou mode " arrêt actif ". L'idée qui est à la base de l'invention consiste à
combiner les avantages du mode HALT et ceux du mode WAIT.
Sur la base de cette idée, on a certes déjà proposé un mode de fonctionnement dans lequel l'oscillateur principal OSC ne fonctionne plus (en sorte qu'on obtient les avantages du mode HALT), mais dans lequel un circuit périphérique interne spécifique génère une interruption interne au bout d'un temps déterminé. Cette interruption interne permet d'activer à nouveau tous les circuits internes du microcontrôleur en ramenant celui-ci dans le mode RUN. Un tel circuit périphérique interne, peut par exemple être constitué par un compteur COUNT tel que représenté à la figure 1. Il a naturellement besoin d'une base de temps spécifique pour fonctionner. Celle-ci peut lui être fournie depuis
l'extérieur par un signal oscillant ou un signal d'horloge25 externe. Elle peut aussi être générée en interne par un oscillateur auxiliaire OSC-AUX visible sur la figure 1.
Toutefois, cet oscillateur auxiliaire OSC-AUX occupe une surface de silicium supplémentaire dans le microcontrôleur,
ce qui n'est pas souhaitable.
C'est pourquoi un microcontrôleur selon l'invention peut fonctionner selon un mode ACTIVE-HALT qui est mis en oeuvre différemment. En effet, l'invention propose un procédé de réduction de la consommation d'un microcontrôleur, le microcontrôleur comprenant une unité centrale de traitement, un oscillateur principal, une mémoire dans laquelle est mémorisé un programme de pilotage du microcontrôleur, au moins un circuit périphérique interne et un arbre d'horloge, le procédé comportant les étapes suivantes: a) le microcontrôleur étant dans un mode exécution dans lequel le programme de pilotage est exécuté par l'unité centrale de traitement, mise du microcontrôleur dans un mode arrêt actif dans lequel l'unité centrale de traitement, les circuits périphériques internes et l'arbre d'horloge sont désactivés, mais dans lequel l'oscillateur principal fonctionne et délivre un signal oscillant; b) temporisation, d'une durée déterminée, à l'aide d'un circuit interne activé par le signal oscillant;
c) génération d'une interruption interne, après ladite temporisation, cette interruption interne ramenant le-
microcontrôleur en mode exécution.
L'invention concerne aussi un dispositif de limitation de la consommation d'un microcontrôleur, le microcontrôleur comprenant une unité centrale de traitement, un oscillateur principal, une mémoire dans laquelle est mémorisé un programme de pilotage du microcontrôleur, au moins un circuit périphérique interne et un arbre d'horloge, lequel dispositif comprend: des moyens pour faire passer le microcontrôleur d'un mode exécution, dans lequel le programme de pilotage est exécuté par l'unité centrale de traitement, à un mode arrêt actif, dans lequel l'unité centrale de traitement, les circuits périphériques internes et l'arbre d'horloge sont désactivés mais dans lequel l'oscillateur principal fonctionne et délivre un signal oscillant; - des moyens de temporisation commandés par ledit signal oscillant; - des moyens pour générer une interruption ramenant le microcontrôleur (MCU) en mode exécution, qui sont
commandés par les moyens de temporisation.
Selon un avantage de l'invention, le microcontrôleur est ramené du mode arrêt actif au mode exécution grâce à des moyens internes. De plus, ceci se produit dans tous les cas, au plus tard après la temporisation. On évite ainsi tout risque de blocage du microcontrôleur dans le mode arrêt actif. Selon un autre avantage, l'unité centrale de traitement et les circuits périphériques internes sont désactivés en mode arrêt actif, en sorte qu'ils ne consomment pas de courant. De même, les pertes Joule dans l'arbre d'horloge
sont évitées.
En outre, les moyens de temporisation utilisent le signal oscillant délivré par l'oscillateur principal en sorte qu'aucun moyen supplémentaire, interne ou externe, n'est
nécessaire pour leur fournir une base de temps.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre.
Celle-ci est purement illustrative et doit être lue en regard des dessins annexés, sur lesquels on a représenté: - à la figure 1, déjà partiellement analysée: le schéma d'un microcontrôleur selon l'art antérieur; - à la figure 2: le schéma d'un microcontrôleur selon l'invention; - à la figure 3 un diagramme comparatif de la consommation d'un microcontrôleur selon l'invention dans ses
différents modes de fonctionnement.
A la figure 1, l'unité centrale de traitement génère un signal HALT Signal à l'état logique 1 lors de l'exécution de l'instruction d'arrêt. Ce signal est transmis sur une entrée de commande de l'oscillateur principal OSC. Celui-ci ne fonctionne pas lorsqu'il reçoit un été logique 1 sur cette entrée de commande et il fonctionne lorsqu'il reçoit un état
logique 0 sur cette entrée de commande.
Le circuit MCC comprend un circuit DIV2 qui est un compteur/diviseur de fréquence par deux, qui permet la remise en forme du signal oscillant fosc. Ce circuit reçoit à cet effet le signal oscillant fosc et délivre, sur une première entrée d'un multiplexeur MUX, un signal carré périodique
ayant la fréquence du signal f0osc divisée par deux.
Le circuit MCC comprend en outre un circuit DIV2/4/8/16 qui est un compteur/diviseur de fréquence programmable. Ce circuit reçoit le signal oscillant fosc et délivre, sur une seconde entrée du multiplexeur MUX, un signal carré périodique ayant une fréquence qui dépend de l' état de deux registres, ou préférablement de deux bits CP1 et CP0 d'un registre huit bits MISCR1. Cette fréquence vaut respectivement la moitié, le quart, le huitième ou le seizième da la fréquence du signal délivré par le circuit DIV2, selon la valeur du 2- uplet constitué par les bits CP1
et CP0.
Le multiplexeur MUX délivre l'un ou l'autre des signaux délivrés par les circuits DIV2 et DIV2/4/8/16 selon l'état d'un registre, ou préférablement d'un bit SMS du registre huit bits MISCR1 précité. Comme on l'aura compris, le signal délivré par le multiplexeur MUX constitue le signal d'horloge
fcpu du microcontrôleur MCU.
La valeur du bit SMS est telle que, par défaut, le signal d'horloge est celui délivré par le circuit DIV2. Elle est modifiée pour mettre le microcontrôleur en mode SLOW, en sorte que le signal d'horloge est celui délivré par le circuit DIV2/4/8/16. Cette modification est réalisée par programmation du registre MISCR1, i.e., par une instruction
adaptée du programme de pilotage.
L'avantage d'un registre huit bits tels que le registre MISCR1, est qu'un tel registre est programmé en une seule opération de programmation avec un mot de huit bits. Or un tel mot constitue la donnée de taille élémentaire dans un microcontrôleur huit bits. A la figure 2, les mêmes éléments qu'à la figure 1 portent Ies mêmes références. Le microcontrôleur selon l'invention se distingue du microcontrôleur de la figure 1 en ce qu'il comporte des moyens pour faire passer le microcontrôleur du mode exécution (mode RUN) à un mode arrêt actif (mode ACTIVE-HALT). On rappelle que dans le mode RUN, le programme de
pilotage est exécuté par l'unité centrale de traitement CPU. Tous les circuits internes du microcontrôleur sont activés.
Dans le mode ACTIVE-HALT au contraire, l'unité centrale de traitement CPU et les circuits périphériques internes MEM, ADC, DAC et autres, ainsi également que l'arbre d'horloge25 CLKTR sont désactivés. De la sorte notamment, l'arbre
d'horloge ne transmet pas de fronts du signal d'horloge Fcpu.
Cependant, dans le mode ACTIVE-HALT, l'oscillateur principal fonctionne et délivre un signal oscillant fosc. Une porte NAND1, de type NON ET à deux entrées, reçoit le signal HALT_Signal précité sur une première entrée. Sur une seconde entrée, qui est une entrée inverseuse, la porte NAND1 reçoit la valeur d'un registre sur lequel on reviendra plus loin. La sortie de la porte NAND1 est reliée à l'entrée Il de commande précitée de l'oscillateur principal OSC, afin de commander le fonctionnement ou le non fonctionnement de cet oscillateur. Les moyens pour faire passer le microcontrôleur du mode RUN au mode ACTIVE- HALT ci-dessus, se combinent avec des moyens de temporisation, activés par le signal oscillant fosc, et avec des moyens pour générer une interruption ramenant le microcontrôleur MCU en mode exécution, ces derniers moyens étant activés par lesdits moyens de temporisation. Tous ces moyens sont de préférence compris dans le circuit MCC (pour des raisons liées à la conception et au test du microcontrôleur), comme il est représenté à la figure 2, mais cela n'est pas obligatoire. Les moyens de temporisation comprennent préférentiellement un circuit compteur/diviseur de fréquence DIV recevant le signal oscillant fosc sur son entrée. Bien entendu, d'autres moyens sont envisageables pour réaliser cette temporisation. Les moyens pour générer une interruption comprennent un premier registre, ou préférentiellement un bit OIF d'un registre huit bits MCCSR, qui est programmable matériellement
par les moyens de temporisation. A cet effet, dans l'exemple, ce registre ou bit OIF est relié à la sortie du circuit DIV. En outre, ce premier registre est effacé par programmation,25 i.e., par une instruction adaptée du programme de pilotage.
Par ailleurs, les moyens pour générer une interruption comprennent en outre un second registre, ou préférentiellement un bit OIE du registre MCCSR. Ce registre ou bit OIE est programmable et effaçable par programmation,30 i.e., par une instruction adaptée du programme de pilotage. Il doit avoir avoir la valeur logique 1 pour que le
microcontrôleur puisse être mis en mode ACTIVE-HALT.
La valeur du registre ou bit OIE est transmise sur l'entrée inverseuse de la porte NAND1 précitée. On notera que, lorsque le registre ou bit OIE a la valeur logique 1, l'instruction d'arrêt du programme de pilotage (qui provoque le passage à l'état logique 1 du signal HALT_Signal) maintient ainsi l'oscillateur principal OSC en fonctionnement (c'est le mode ACTIVE-HALT). A l'inverse, lorsque le registre ou bit OIE a la valeur logique 0 l'instruction d'arrêt du programme de pilotage provoque la mise hors fonctionnement de l'oscillateur principal OSC (c'est le mode HALT, ainsi qu'on
le verra à nouveau plus loin).
Le signal HALT_Signal est transmis sur une entrée de commande du circuit DIV2, pour bloquer le fonctionnement de ce circuit lorsque le signal HALT_Signal a la valeur logique 1. Ceci permet de désactiver l'arbre d'horloge CLKTR, l'unité centrale de traitement ainsi que les circuits périphériques
internes (et ce, aussi bien en mode HALT qu'en mode ACTIVE-
HALT).
Les moyens pour générer une interruption comprennent encore une porte AND1 qui est une porte logique de type ET à deux entrées. Une première entrée de la porte AND1 reçoit la valeur du premier registre ou bit OIF. Une seconde entrée de
la porte AND1 reçoit la valeur du second registre ou bit OIE.
La sortie de la porte AND1 délivre un signal INTINT25 d'interruption interne. Le signal INT INT est transmis en
entrée de l'unité centrale de traitement CPU.
Dans un mode de réalisation préféré, les moyens de temporisation sont programmables, de manière à faire varier la durée de la temporisation, c'est à dire le temps pendant lequel le microcontrôleur est maintenu dans le mode arrêt actif. A cet effet, le circuit DIV reçoit les valeurs de deux registres, i.e. de deux autres bits du registre MCCSR, à
savoir les bits TBl et TB0. En fonction de la valeur du 2-
uplet constitué par ces bits TB1 et TB0, le circuit DIV se comporte comme un compteur modulo 32000, 64000, 160000 ou 400000. Ainsi, avec un signal oscillant fosc ayant une fréquence égale à 8MHz (mégahertz), la durée de la temporisation sera respectivement de 4ms, 8ms, 20ms ou 50ms (milliseconde). De même, avec un signal oscillant fosc ayant une fréquence égale à 16MHz, la durée de la temporisation sera respectivement de 2ms, 4ms, lOms ou 25ms. Ce mode de réalisation étant facultatif, les flèches reliant les registres ou bits TB1 et TB0 au circuit DIV sont représentées
en traits discontinus à la figure 2.
Bien entendu, les moyens de l'invention qui permettent de générer une interruption interne en mode ACTIVE-HALT (cette interruption interne ramenant le microcontrôleur en mode RUN), ne sont pas exclusifs d'une interruption externe ou une réinitialisation externe du microcontrôleur dans ce mode (ramenant également le microcontrôleur en mode RUN). C'est pourquoi, le microcontrôleur selon l'invention comporte aussi, à cet effet, une broche d'entrée pour recevoir un signal EXTINT d'interruption externe, de même qu'une broche d'entrée pour recevoir un signal RST de réinitialisation externe. Le dispositif de limitation de consommation selon l'invention fonctionne de la manière suivante. Le microcontrôleur MCU étant dans le mode exécution, il est mis dans le mode arrêt actif, par exemple par l'exécution d'une instruction adaptée du programme de pilotage, dite instruction d'arrêt. Vient ensuite une étape de temporisation, d'une durée déterminée. Cette étape est mise en oeuvre par un circuit interne qui est activé par le signal oscillant fosc, à savoir le circuit DIV dans l'exemple décrit plus haut. Après cette temporisation une interruption interne est générée (i.e., le signal INT INT commute). Cette interruption interne ramène le microcontrôleur en mode exécution. De préférence, l'interruption interne provoque la poursuite de l'exécution du programme de pilotage, à partir de l'instruction suivant l'instruction d'arrêt. Néanmoins, on peut prévoir que l'interruption interne provoque l'exécution d'une routine particulière, notamment une routine de réinitialisation. Un autre avantage de l'invention réside dans le fait que, lorsque le microcontrôleur est ramené du mode ACTIVE- HALT au mode RUN, il n'est pas nécessaire d'attendre un cycle
de stabilisation de l'oscillateur principal, comme cela est la cas avec le mode HALT. En effet, au contraire du mode HALT, l'oscillateur principal n'est pas mis hors15 fonctionnement dans le mode ACTIVE HALT.
Dans un mode de réalisation particulier, l'exécution de l'instruction d'arrêt provoque, selon l'état du registre ou bit OIE, soit la mise du microcontrôleur dans le mode arrêt- actif (mode ACTIVE-HALT), soit la mise du microcontrôleur20 dans le mode arrêt (mode HALT) ainsi qu'il a déjà été dit plus haut. On rappelle que dans le mode HALT, l'unité
centrale de traitement CPU et les circuits périphériques internes du microcontrôleur et l'arbre d'horloge CLKTR sont désactivés, et l'oscillateur principal ne fonctionne plus25 (c'est à dire qu'il ne génère plus de signal oscillant fosc).
De cette manière, on n'entre dans le mode ACTIVE-HALT que lorsque la valeur du registre ou bit OIE permet la génération de l'interruption interne après la temporisation. On évite ainsi tout risque de blocage du microcontrôleur dans le mode30 ACTIVE-HALT. Bien entendu, cela n'empêche pas de prévoir que le microcontrôleur puisse aussi être ramené en mode exécution à réception sur des entrées adaptées du boîtier du microcontrôleur, soit d'un signal EXT INT d'interruption externe, soit d'un signal RST de réinitialisation externe. Un autre avantage de l'invention réside dans le fait que la mise du microcontrôleur en mode ACTIVE-HALT est possible même lorsque le circuit " chien de garde " (circuit périphérique interne WDG) est activé. Ceci n'est pas le cas
avec le mode HALT des microcontrôleurs de l'état de la technique, dans lesquels l'exécution d'une instruction mettant le microcontrôleur en mode HALT alors que le circuit10 " watchdog " est activé génère une réinitialisation interne du microcontrôleur ou désactive le circuit " watchdog ".
A la figure 3, on a noté les divers modes de fonctionnement du microcontrôleur selon l'invention sur une échelle allant du mode le plus économique (dans lequel le microcontrôleur consomme le moins) au moins économique (dans lequel le microcontrôleur consomme le plus), et ce de la
gauche vers la droite de la figure. On trouve ainsi, dans cet ordre, le mode HALT, le mode ACTIVE-HALT, le mode SLOW WAIT, le mode WAIT, le mode SLOW et le mode RUN. En outre, des20 flèches indiquent les différentes transitions d'un mode de fonctionnement à un autre qui sont possibles.
Claims (13)
1. Procédé de réduction de la consommation d'un microcontrôleur, le microcontrôleur (MCU) comprenant une unité centrale de traitement (CPU), un oscillateur principal (OSC), une mémoire (MEM) dans laquelle est mémorisé un programme de pilotage du microcontrôleur (MCU), au moins un circuit périphérique interne (MEM, ADC,DAC), et un arbre d'horloge (CLKTR), procédé caractérisé en ce que, le microcontrôleur (MCU) étant dans un mode exécution dans lequel le programme de pilotage est exécuté par l'unité10 centrale de traitement, il comporte les étapes suivantes: a) mise du microcontrôleur dans un mode arrêt actif dans lequel l'unité centrale de traitement (CPU) les circuits périphériques internes (MEM,ADC,DAC) et l'arbre d'horloge (CLKTR) sont désactivés, mais dans lequel l'oscillateur
principal fonctionne et délivre un signal oscillant (fosc) -
b) temporisation, d'une durée déterminée, à l'aide d'un circuit interne (DIV) activé par le signal oscillant (fosc); c) génération d'une interruption interne, après ladite temporisation, cette interruption interne ramenant le
microcontrôleur (MCU) en mode exécution.
2. Procédé selon la revendication 1, caractérisé en ce que l'étape a) comprend l'exécution d'une instruction adaptée du programme de pilotage, dite instruction d'arrêt.25
3. Procédé selon la revendication 2, caractérisé en ce que, à l'étape c), l'interruption interne provoque la poursuite de l'exécution du programme de pilotage, à partir de l'instruction suivant l'instruction d'arrêt.30
4. Procédé selon la revendication 2, caractérisé en ce que l'exécution de l'instruction d'arrêt provoque, selon l'état d'un registre (OIE), soit la mise du microcontrôleur dans le mode arrêt actif, soit la mise du microcontrôleur dans un mode arrêt dans lequel l'unité centrale de traitement (CPU) et les circuits périphériques internes du microcontrôleur sont désactivés et dans lequel l'oscillateur principal ne fonctionne plus c'est à dire qu'il ne génère plus de signal oscillant (fosc)
5. Procédé selon l'une des revendications précédentes,
caractérisé en ce que le microcontrôleur (MCU) est ramené en mode exécution à réception sur des entrées adaptées du boîtier du microcontrôleur, d'un signal (EXTINT) d'interruption externe ou d'un signal (RST) de
réinitialisation externe.
6. Dispositif de limitation de la consommation d'un microcontrôleur, le microcontrôleur comprenant une unité centrale de traitement (CPU), un oscillateur principal (OSC), une mémoire (MEM) dans laquelle est mémorisé un programme de pilotage du microcontrôleur (MCU), au moins un circuit périphérique interne (MEM,ADC,DAC), et un arbre d'horloge (CLKTR), dispositif caractérisé en ce qu'il comprend: - des moyens pour faire passer le microcontrôleur d'un mode exécution, dans lequel le programme de pilotage est exécuté par l'unité centrale de traitement (CPU), à un mode arrêt actif, dans lequel l'unité centrale de traitement (CPU), les circuits périphériques internes (MEM,ADC,DAC) et l'arbre d'horloge (CLKTR) sont désactivés mais dans lequel l'oscillateur principal fonctionne et délivre un signal oscillant (fosc); - des moyens de temporisation (DIV) commandés par ledit signal oscillant(fosc); - des moyens pour générer une interruption ramenant le microcontrôleur (MCU) en mode exécution, qui sont activés par les moyens de temporisation (COUNT).
7. Dispositif selon la revendication 6, caractérisé en ce que les moyens de temporisation comprennent un circuit
compteur/diviseur de fréquence (DIV) recevant le signal10 oscillant (fosc) sur son entrée.
8. Dispositif selon la revendication 6 ou la revendication 7, caractérisé en ce que les moyens pour
générer une interruption comprennent un premier registre15 (OIF) qui est programmable matériellement par les moyens de temporisation et effaçable par programmation.
9. Dispositif selon la revendication 8, caractérisé en ce que les moyens pour générer une interruption comprennent en
outre un second registre (OIE) qui est programmable et effaçable par programmation.
10. Dispositif selon la revendication 9, caractérisé en ce que les moyens pour générer une interruption comprennent une porte logique (ANDl) de type ET à deux entrées dont une première entrée reçoit la valeur du premier registre (OIF),
dont la seconde entrée reçoit la valeur du second registre (OIE), et dont la sortie délivre un signal (INTINT) d'interruption interne.
11. Dispositif selon l'une des revendications 6 à 10, caractérisé en ce que les moyens de temporisation sont
programmables, de manière à faire varier le temps pendant lequel le microcontrôleur est maintenu dans le mode arrêt actif.
12. Dispositif selon l'une des revendications 6 à 11,
caractérisé en ce que le microcontrôleur comporte une broche d'entrée pour recevoir un signal (EXT_INT) d'interruption
externe ramenant le microcontrôleur en mode exécution.
13. Dispositif selon l'une des revendications 6 à 12,
caractérisé en ce que le microcontrôleur comporte une broche d'entrée pour recevoir un signal (RST) de réinitialisation
externe ramenant le microcontrôleur en mode exécution.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9901517A FR2789501B1 (fr) | 1999-02-09 | 1999-02-09 | Procede et dispositif de reduction de la consommation d'un microcontroleur |
US09/435,661 US6381705B1 (en) | 1999-02-09 | 1999-11-08 | Method and device for reducing current consumption of a microcontroller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9901517A FR2789501B1 (fr) | 1999-02-09 | 1999-02-09 | Procede et dispositif de reduction de la consommation d'un microcontroleur |
US09/435,661 US6381705B1 (en) | 1999-02-09 | 1999-11-08 | Method and device for reducing current consumption of a microcontroller |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2789501A1 true FR2789501A1 (fr) | 2000-08-11 |
FR2789501B1 FR2789501B1 (fr) | 2001-04-13 |
Family
ID=26234810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9901517A Expired - Fee Related FR2789501B1 (fr) | 1999-02-09 | 1999-02-09 | Procede et dispositif de reduction de la consommation d'un microcontroleur |
Country Status (2)
Country | Link |
---|---|
US (1) | US6381705B1 (fr) |
FR (1) | FR2789501B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2832565A1 (fr) * | 2001-11-20 | 2003-05-23 | St Microelectronics Sa | Circuit integre comprenant un mode arret actif a faible consommation electrique |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7373536B2 (en) * | 2004-08-04 | 2008-05-13 | Kabushiki Kaisha Toshiba | Fine granularity halt instruction |
US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
US7904615B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
ATE475927T1 (de) | 2006-02-16 | 2010-08-15 | Vns Portfolio Llc | Asynchroner stromsparender computer |
US7617383B2 (en) * | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7765417B2 (en) * | 2006-12-22 | 2010-07-27 | Nokia Corporation | External control of a multi-mode controller |
US7555637B2 (en) * | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
US7688245B2 (en) * | 2008-07-11 | 2010-03-30 | Infineon Technologies Ag | Method for quantizing of signal values and quantizer |
US20100023730A1 (en) * | 2008-07-24 | 2010-01-28 | Vns Portfolio Llc | Circular Register Arrays of a Computer |
KR20120028858A (ko) * | 2009-06-26 | 2012-03-23 | 파나소닉 주식회사 | 전자 부품과 그 고장 검지 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0421431A2 (fr) * | 1989-10-06 | 1991-04-10 | Kabushiki Kaisha Toshiba | Système ordinateur avec une fonction de mode dormant |
US5546568A (en) * | 1993-12-29 | 1996-08-13 | Intel Corporation | CPU clock control unit |
WO1997034218A1 (fr) * | 1996-03-14 | 1997-09-18 | Rockwell Semiconductor Systems, Inc. | Methode et appareil de gestion de l'energie par regulation de l'alimentation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0746817B1 (fr) * | 1991-11-12 | 2000-07-05 | Microchip Technology Inc. | Retard de mise sous tension d'un microcontroleur |
JP3468592B2 (ja) * | 1994-08-10 | 2003-11-17 | 富士通株式会社 | クロック信号発生回路 |
US6256746B1 (en) * | 1998-07-31 | 2001-07-03 | Ubicom, Inc. | System and method for multi-input wake up in a microcontroller using a single clock |
-
1999
- 1999-02-09 FR FR9901517A patent/FR2789501B1/fr not_active Expired - Fee Related
- 1999-11-08 US US09/435,661 patent/US6381705B1/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0421431A2 (fr) * | 1989-10-06 | 1991-04-10 | Kabushiki Kaisha Toshiba | Système ordinateur avec une fonction de mode dormant |
US5546568A (en) * | 1993-12-29 | 1996-08-13 | Intel Corporation | CPU clock control unit |
WO1997034218A1 (fr) * | 1996-03-14 | 1997-09-18 | Rockwell Semiconductor Systems, Inc. | Methode et appareil de gestion de l'energie par regulation de l'alimentation |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2832565A1 (fr) * | 2001-11-20 | 2003-05-23 | St Microelectronics Sa | Circuit integre comprenant un mode arret actif a faible consommation electrique |
Also Published As
Publication number | Publication date |
---|---|
FR2789501B1 (fr) | 2001-04-13 |
US6381705B1 (en) | 2002-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2789501A1 (fr) | Procede et dispositif de reduction de la consommation d'un microcontroleur | |
FR2689656A1 (fr) | Procédé et appareil de gestion automatique de puissance dans un dispositif hautement intégré de commande de disque souple. | |
US8301916B2 (en) | Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU | |
US7589564B2 (en) | Method of maintaining input and/or output configuration and data states during and when coming out of a low power mode | |
US20050144492A1 (en) | Processor system and method for reducing power consumption in idle mode | |
EP2063327A1 (fr) | Circuit électronique de gestion du fonctionnement de périphériques d'une montre | |
US20080272830A1 (en) | Variable Power and Response Time Brown-Out-Reset Circuit | |
JP4206151B2 (ja) | クロック発生方法およびシステム | |
US20110123172A1 (en) | Dvd recorder and pvr instant on architecture | |
US6684342B1 (en) | Apparatus and method of dynamic and deterministic changes in clock frequency for lower power consumption while maintaining fast interrupt handling | |
FR2680254A1 (fr) | Systeme a microcalculateur, a consommation electrique reduite. | |
FR3052576A1 (fr) | Cœur de processeur asynchrone et microcontroleur de nœud de capteur communicant comportant un tel cœur de processeur | |
US9710169B2 (en) | Managing wait states for memory access | |
FR2683342A1 (fr) | Circuit d'interface pour carte a circuit integre. | |
US20050144494A1 (en) | Method and apparatus for reducing memory current leakage a mobile device | |
FR2948785A1 (fr) | Terminateur de transaction | |
FR2790117A1 (fr) | Procede de configuration d'un microcontroleur en mode initialisation | |
EP1338956A1 (fr) | Dispositif électronique de traitement de données, en particulier processeur audio pour un décodeur audio/vidéo | |
US20050180233A1 (en) | Software power control of circuit modules in a shared and distributed DMA system | |
EP0999497A1 (fr) | Séquenceur d'actions synchrones dans un système à processeur et circuit intégré comportant un tel séquenceur | |
JP4240657B2 (ja) | 計数装置及びその駆動方法 | |
EP1098525A2 (fr) | Décodeur MPEG utilisant une mémoire partagée | |
FR2772948A1 (fr) | Microcontroleur avec interface perfectionnee et procede d'utilisation | |
FR2832565A1 (fr) | Circuit integre comprenant un mode arret actif a faible consommation electrique | |
CN111142639A (zh) | 一种控制方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20071030 |