Brevet FR2788145A1 — publié le 20000707

PROCEDE D'INITIALISATION D'UN MICROCONTROLEUR La présente invention concerne un procédé d'initialisation d'un microcontrôleur, comprenant une séquence d'initialisation (Reset Sequence, en anglais) pour faire passer le microcontrôleur d'un mode hors alimentation (Power-Off, en anglais) à un mode exécution (Run, en anglais) lorsque le niveau d'une tension d'alimentation devient supérieur à un seuil. Entre ces deux modes, on dit que le microcontrôleur est en mode initialisation (Reset, en anglais). On rappelle qu'un microcontrôleur est un circuit électronique comprenant une unité centrale de calcul (CPU, ou Core en anglais), une mémoire EPROM ou EEPROM, un oscillateur principal, un (ou plusieurs) convertisseur(s) analogique-numérique, des interfaces entrées-sorties, et éventuellement des circuits périphériques. L'avantage des microcontrôleurs par rapport aux microprocesseurs réside dans le fait que les microcontrôleurs peuvent être utilisés de façon pratiquement autonome. En effet pratiquement aucune circuiterie extérieure n'est nécessaire à leur fonctionnement. C'est pourquoi leur utilisation est très répandue dans les applications simples (petits produits électroniques). Une initialisation du microcontrôleur est effectuée à la mise sous tension (on parle alors de Power-On Reset, en anglais). Elle peut aussi être provoquée par un signal d'initialisation externe, par un signal d'initialisation provenant d'un circuit interne du microcontrôleur appelé "chien de garde" (Watch-Dog, en anglais) ou par un signal d'initialisation provenant d'un circuit de détection d'un niveau trop bas de la tension d'alimentation (Low Voltage Detector, en anglais) Le mode hors alimentation est particulièrement important dans le dernier cas ci-dessus, dans les applications o le niveau de la tension d'alimentation n'est pas stable. En effet, dans le mode hors alimentation, tous les circuits internes du microcontrôleur sont inhibés (sauf un séquenceur d'initialisation dédié à la gestion de la séquence d'initialisation), en sorte qu'ils ne fonctionnent pas. On évite ainsi les inconvénients qui pourraient résulter d'un fonctionnement du microcontrôleur avec une tension d'alimentation trop faible (corruption ou pertes de données, mauvais séquencement des instructions dû à un signal d'horloge défectueux, etc... ). Le microcontrôleur ne passe en mode exécution que lorsque le niveau de la tension d'alimentation fournie sur une entrée d'alimentation est devenu supérieur au seuil précité. Le mode exécution est le mode de fonctionnement normal, dans lequel est exécuté le programme chargé par l'utilisateur dans la mémoire du microcontrôleur, appelé programme utilisateur (User Program, en anglais). La séquence d'initialisation démarre lorsque le niveau de la tension d'alimentation devient supérieur au seuil précité. Elle comprend une phase de temporisation pendant laquelle l'oscillateur principal du microcontrôleur est libéré, en sorte qu'il commence à osciller et se stabilise à sa fréquence d'oscillation nominale. La durée de cette phase est fixe et correspond à un temps jugé nécessaire pour permettre cette stabilisation. Pendant cette phase, le séquenceur d'initialisation et l'oscillateur principal sont les seuls circuits internes du microcontrôleur qui ne sont pas ou plus inhibés. La séquence d'initialisation comprend en outre une phase de chargement du bus d'adresse avec l'adresse de la mémoire (appelée Fetch vector, en anglais) à laquelle se trouve le début du programme utilisateur. Cette phase termine la séquence d'initialisation, et le microcontrôleur passe en mode exécution. Il s'avère nécessaire d'offrir à l'utilisateur la possibilité de configurer certains circuits du microcontrôleur pour les adapter aux besoins de l'application. Cette configuration ne doit pas être confondue avec le chargement du programme utilisateur dans la mémoire du microcontrôleur. La configuration vise à activer ou désactiver certaines fonctions du microcontrôleur, ou à les personnaliser. Il s'agit donc d'une configuration matérielle, par opposition à la nature logicielle du chargement du programme utilisateur. De plus, au contraire du chargement du programme utilisateur, cette configuration est renouvelée à chaque initialisation. Par exemple, il peut être souhaitable de permettre à l'utilisateur d'activer ou de désactiver le circuit de détection d'un niveau trop bas de la tension d'alimentation, et/ou de choisir le niveau du seuil au dessous duquel il génère un signal d'initialisation. Dans l'état de la technique, cela est parfois réalisé par une phase de lecture d'un mot d'option qui est mémorisé dans la mémoire du microcontrôleur. Cette phase intervient en mode exécution. Les valeurs des bits de ce mot d'option lu provoquent le positionnement de registres dédiés du microcontrôleur. Le mot d'option peut être lu de façon statique (c'est-à-dire en permanence) par des moyens spécifiques du microcontrôleur, ou être lu de façon dynamique, par exemple grâce à une instruction spécifique que l'utilisateur doit faire figurer au début du programme utilisateur. Cependant, cette méthode n'est pas appliquée pour la configuration des circuits du microcontrôleur intervenant dans la séquence d'initialisation, comme le séquenceur d'initialisation et l'oscillateur principal. Ceci provient sans doutes du fait que, jusqu'ici, on ne pensait pas qu'il soit possible de le faire avant que le microcontrôleur soit en mode exécution. En effet, pendant la séquence d'initialisation, tous les circuits internes du microcontrôleur sont inhibés à part le séquenceur d'initialisation lui-même et, pendant la phase de temporisation, également l'oscillateur principal. Or, il peut être souhaitable de permettre à l'utilisateur de choisir la valeur du seuil d'initialisation. En effet, l'utilisateur peut préférer choisir lui- même cette valeur compte tenu des impératifs propres à l'application. Il est évident que plus le seuil d'initialisation est élevé et plus le fonctionnement du microcontrôleur est sûr. En effet, un seuil d'initialisation élevé garantit que le microcontrôleur ne se trouve dans le mode exécution que lorsque la tension d'alimentation est très suffisante pour assurer le fonctionnement correct de ses circuits internes. A l'inverse plus le seuil d'initialisation est élevé, et plus longtemps le microcontrôleur peut rester en mode hors alimentation. Dans l'état de la technique, la seule solution connue pour obtenir un seuil d'initialisation configurable par l'utilisateur est d'utiliser une circuiterie externe au microcontrôleur, le plus souvent analogique, que l'utilisateur est libre d'adapter à ses besoins. De tels moyens de configuration externes sont néanmoins pénalisant dans la mesure o ils rendent plus complexe et plus coûteuse l'implantation du microcontrôleur dans une application. La présente invention vise à pallier ces inconvénients de l'état antérieur de la technique. A cet effet, l'invention propose un procédé d'initialisation d'un microcontrôleur du type précité, dans lequel la séquence d'initialisation comprend, dans cet ordre: a) une phase de lecture d'un mot d'option mémorisé dans une mémoire programmable par l'utilisateur, pour la configuration de circuits internes du microcontrôleur; b) une phase de temporisation pour le démarrage et la stabilisation de l'oscillateur principal du microcontrôleur; c) une phase de chargement du bus d'adresse avec l'adresse de début d'un programme utilisateur mémorisé dans la mémoire du microcontrôleur. Ainsi, grâce à l'invention, même les circuits internes du microcontrôleur intervenant dans la séquence d'initialisation sont configurables par l'utilisateur au moyen d'une programmation d'un mot d'option déterminé dans la mémoire du microcontrôleur. Selon d'autres caractéristiques de l'invention: - la phase a) débute lorsque le niveau de la tension d'alimentation devient supérieur à un seuil de configuration; - le seuil de configuration n'est pas configurable; - la configuration comprend la spécification de la valeur d'un seuil d'initialisation supérieur au seuil de configuration, et la phase b) débute lorsque le niveau de la tension d'alimentation devient supérieur à ce seuil d'initialisation mais pas avant la fin de la phase a); - la phase b) débute à la fin de la phase a); - la phase a) est effectuée au rythme d'un oscillateur de secours basse fréquence; - la configuration comprend la sélection d'une source d'oscillations pour l'oscillateur principal du microcontrôleur, parmi notamment un ou plusieurs résonateurs externes de fréquences différentes, un circuit RC externe, un circuit RC interne ou une horloge externe; - la configuration comprend l'activation ou non d'un circuit de filtrage d'horloge; - le mot d'option est mémorisé dans la mémoire du microcontrôleur. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée 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: le schéma simplifié d'un microcontrôleur pour la mise en ouvre du procédé selon l'invention; - aux figures 2a et 2d: des modes de connexion de deux broches d'entrée du microcontrôleur de la figure 1; - à la figure 3: une courbe de la tension d'alimentation en fonction du temps; - à la figure 4: un diagramme montrant le déroulement de la séquence d'initialisation selon l'invention; - aux figures 5, 6 et 7: un schéma et des tableaux montrant le contenu et la fonction d'un mot d'option selon l'invention. A la figure 1 on a représenté, le schéma simplifié d'un microcontrôleur mettant en oeuvre le procédé selon l'invention. Ce microcontrôleur comprend une unité centrale de calcul CPU, ainsi qu'une mémoire MEM de type EPROM ou de type EEPROM dans laquelle est mémorisé un programme utilisateur. Il comprend en outre un circuit MO assurant la fonction d'oscillateur principal du microcontrôleur. Un tel oscillateur génère un signal d'horloge fCPU utilisé par l'unité CPU en mode exécution. La fréquence nominale de ce signal est par exemple de 8 Mhz (mégahertz). Selon l'invention il est possible de configurer le circuit MO en sélectionnant une source d'oscillations particulière pour l'oscillateur principal, parmi plusieurs sources possibles. Notamment, la source d'oscillations peut être un résonateur externe (quartz) de fréquence déterminée, un circuit RC externe, un circuit RC interne, ou un oscillateur externe. Aux figures 2a à 2d, on a représenté la connexion de deux broches d'entrée CK1 et CK2 du microcontrôleur qu'il convient d'adopter dans chacun des cas ci-dessus. Le circuit MO est connecté à ces broches CK1 et CK2 (figure 1). La figure 2a correspond au cas d'un circuit RC interne. Les broches CK1 et CK2 sont alors connectées à la masse. La figure 2b correspond au cas d'un circuit RC externe. La broche CK1 est alors connectée à la masse à travers une résistance Re, et la broche CK2 est connectée à la masse à travers un condensateur Ce. Les valeur de Re est de Ce déterminent la fréquence de l'oscillateur. La figure 2c correspond au cas d'un résonateur externe. Un résonateur ou quartz Q est connecté entre les broches CK1 et CK2, la broche CK1 étant en outre connectée à la masse à travers un condensateur Cl, et la broche CK2 étant alors connectée à la masse à travers un condensateur C2. La fréquence de résonance du quartz détermine la fréquence de l'oscillateur. Selon l'invention, il est possible de configurer le circuit MO en sélectionnant plusieurs fréquences différentes selon différentes valeurs de la fréquence de résonance du quartz disposé entre les broches CK1 et CK2. La figure 2d correspond au cas d'un oscillateur externe. La broche CK1 reçoit alors le signal d'horloge fext généré par cet oscillateur externe, et la broche CK2 est connectée à la masse. Un tel oscillateur externe peut être de tout type connu (à résonateur, à pont de Wien, RC ou autres). De retour à la figure 1, le signal d'horloge fCpu est fourni en entrée d'un circuit CSS appelé circuit de filtrage d'horloge. La fonction d'un tel circuit consiste, d'une part, à éliminer les impulsions du signal fCPU qui se produisent à une fréquence supérieure à un premier seuil déterminé. D'autre part, elle consiste aussi à fournir à l'unité CPU un signal basse fréquence délivré par un oscillateur de secours SO, lorsque le signal d'horloge fCPU est absent ou de fréquence inférieure à un second seuil, inférieur audit premier seuil. Dit autrement le circuit CSS permet de délivrer en permanence, et en mode exécution, un signal d'horloge à l'unité CPU dont la fréquence reste à l'intérieur d'une plage déterminée comprise entre le second et le premier seuil précités. Le microcontrôleur comprend en outre un circuit LVD de détection du niveau de la tension VDD. Un tel circuit est connecté aux broches ALIM et GND du microcontrôleur qui reçoivent respectivement cette tension d'alimentation VDD et la masse. Il s'agit d'un circuit essentiellement analogique, comprenant plusieurs seuils de détection et générant différents signaux en fonction du niveau de VDD par rapport à ces seuils de détection. Le microcontrôleur comprend encore un circuit "chien de garde" dont la fonction est de générer un signal d'initialisation en cas de blocage du microcontrôleur. Un tel circuit est connu en lui même. Le microcontrôleur comprend enfin un circuit RSM ou séquenceur d'initialisation qui gère l'initialisation du microcontrôleur. Ce circuit peut être activé de trois manières différentes: - à la réception d'une impulsion négative sur une une broche RST du microcontrôleur à laquelle il est connecté: c'est le cas d'une initialisation du microcontrôleur provoquée par un signal d'initialisation externe; - à la réception d'un signal d'initialisation généré par le circuit de détection LVD, lorsque le niveau de la tension d'alimentation VDD devient inférieur à un seuil déterminé; - à la réception d'un signal d'initialisation généré par le circuit "chien de garde" WDG. Le fonctionnement du séquenceur RSM selon le procédé de l'invention va maintenant être décrit en regard de la figure 3 et de la figure 4. A la figure 4, on a représenté un diagramme montrant le déroulement de la séquence d'initialisation. A la figure 3 on a représenté la courbe de la tension VDD en fonction du temps. Cette tension met un certain temps à passer de la valeur nulle à sa valeur nominale VDDnominal, qui dans un exemple est égale à 5 V (volt). Ce temps est naturellement très bref dans le cas d'une initialisation par un signal d'initialisation externe ou par le circuit "chien de garde" WDG. Il est un peu moins bref dans le cas de la mise sous tension du microcontrôleur car, dans ce cas, l'établissement de VDD à sa valeur nominale est retardé par la charge capacitive de la broche ALIM. Il peut en outre devenir non négligeable dans le cas d'une initialisation par le circuit LVD en raison de l'évolution non contrôlée du niveau de la tension d'alimentation VDD. Tant que le niveau VDD est inférieur à un premier seuil VLVDopt, le microcontrôleur est maintenu dans le mode hors alimentation. Tous ses circuits logiques sont inhibés. Seul fonctionne le circuit LVD, de nature analogique ou essentiellement analogique. Dès que le niveau de VDD devient supérieur au seuil VLVDopt, le séquenceur RSM est activé par le circuit LVD. On entre alors dans la séquence d'initialisation proprement dite. Ceci est symbolisé par l'étape "DEBUT" à la figure 4. Cette séquence commence par une phase Il de lecture d'au moins un mot d'option dans une mémoire du microntrôleur. La phase Il débute lorsque le niveau de la tension d'alimentation VDD devient supérieur au seuil de configuration VLvDopt, c'est à dire au début de la séquence d'initialisation. On notera que pour des raisons de clarté, l'étape de comparaison "VDD>VLVDopt?" a été incluse dans le diagramme de la figure 4, entre l'étape "DEBUT" et l'étape "Il" correspondant à la phase de lecture du (ou des) mot(s) d'option. La mémoire dans laquelle est mémorisé le (ou les) mot(s) d'option peut être une mémoire dédiée, par exemple un petit plan mémoire EPROM ou EEPROM prévu à cet effet. Toutefois, dans un mode de réalisation préféré (seul représenté à la figure 1), cette mémoire est la mémoire du microcontrôleur, c'est à dire celle dans laquelle est mémorisé le programme utilisateur. Avec une mémoire de 8 Ko (kilooctets) organisée en mots de huit bits, le mot d'option est préférentiellement un mot de huit bits. Les valeurs des bits du mot d'option qui est lu au cours de cette phase, servent à positionner des registres internes du microcontrôleur, de manière à configurer de façon matérielle certains de ces circuits internes. Si huit bits ne suffisent pas pour la configuration de tous les circuits internes du microcontrôleur qu'on souhaite pouvoir configurer, il est bien évident qu'on peut utiliser plusieurs tels mots d'option. On reviendra sur le contenu du mot d'option ci-dessous en regard de la figure 5. Le mot d'option n'est accessible en écriture que selon un mode de fonctionnement particulier du microcontrôleur, appelé mode de programmation. Il s'agit aussi du mode qui permet le chargement du programme utilisateur dans la mémoire du microcontrôleur. Normalement, il n'est programmé qu'une seule fois par l'utilisateur, de même que le programme utilisateur. Mais, si la mémoire est de type EEPROM, rien ne s'oppose à ce qu'il soit ultérieurement modifié. Le seuil de configuration VLVDopt n'est pas configurable, c'est à dire que sa valeur est fixe et ne peut être modifiée de quelque manière que ce soit. Il est déterminé par une circuiterie appropriée du circuit LVD. Dans un exemple, il est égal à 2, 7 V. Cette valeur est suffisamment élevée pour un fonctionnement correct du séquenceur RSM. Dans la mesure o l'oscillateur principal MO du microcontrôleur est inhibé pendant la phase Il, l'opération de lecture du mot d'option (phase Il) est avantageusement effectuée au rythme du signal d'horloge délivré par l'oscillateur de secours SO du microcontrôleur. Comme cet oscillateur délivre un signal d'horloge basse fréquence, de l'ordre de 225 kHz (kilohertzs), l'opération de lecture s'effectue dans de bonnes conditions malgré le bas niveau éventuel de la tension d'alimentation VDD. La phase de lecture Il nécessite six cycles d'horloge de l'oscillateur de secours. La configuration des circuits internes du microcontrôleur, notamment (mais pas forcément uniquement) ceux qui interviennent dans la suite de la séquence d'initialisation, est réalisée à la fin de la phase de lecture Il sous le contrôle du séquenceur RSM. Cette configuration peut comprendre la spécification de la valeur d'un seuil particulier du circuit LVD, appelé seuil d'initialisation VLVDr, qui est supérieur au seuil de configuration VLVDopt. Par le terme spécification employé ci-dessus, on entend à la fois le fait de déterminer si oui ou non ce seuil sera pris en compte dans le circuit LVD et le fait de lui donner une valeur déterminée. Cet aspect de la configuration sera repris dans la suite de la description, en regard de la figure 7. Dans le cas o un seuil d'initialisation est pris en compte dans le circuit LVD, une phase I3 de temporisation pour le démarrage et la stabilisation de l'oscillateur principal (circuit MO) du microcontrôleur débute lorsque le niveau de la tension d'alimentation VDD devient supérieur à ce seuil d'initialisation VLVDr mais pas avant la fin de la phase de lecture Il. Dans la mesure o ceci peut se produire bien après la fin de la phase de lecture Il uniquement, on a fait figurer à la figure 3 une phase d'attente I2 entre la phase de lecture Il et la phase de temporisation I3. L'étape de comparaison "VDD>VLVDr?" (figure 4) est exécutée pendant cette phase d'attente I2. Dans le cas o, compte tenu de la configuration du circuit LVD, aucun seuil d'initialisation VLVDr n'est pris en compte dans ce circuit LVD, la phase I3 débute à la fin de la phase Il. Dit autrement, il n'y a pas de phase d'attente I2. Ceci revient aussi à dire que le seuil de configuration remplit également la fonction du seuil d'initialialisation, à ceci près que la phase I3 ne démarre qu'après la fin de la phase Il et non pas dès que le niveau de VDD devient supérieur au seuil de configuration. La configuration peut également comprendre la sélection d'une source d'oscillations pour l'oscillateur principal MO du microcontrôleur, parmi (notamment) un ou plusieurs résonateurs externes de fréquences différentes, un circuit RC externe, un circuit RC interne ou une horloge externe. L'oscillateur principal, une fois configuré par sélection d'une source d'oscillations déterminée, est démarré au début de la phase de temporisation I3 précitée. L'oscillateur se stabilise à sa fréquence nominale fCPU comprise entre 4 et 16 MHz (mégahertzs) au cours de cette phase. En pratique, cette phase est de durée déterminée. Cette durée est par exemple égale à 4096 cycles d'horloge de l'oscillateur principal (à la fréquence fcPU), ce qui permet de la maîtriser avec un compteur 12 bits. Après la fin de la phase de temporisation I3, la séquence d'initialisation comprend une ultime phase I4 de chargement du bus d'adresse du microcontrôleur avec l'adresse de début d'un programme utilisateur mémorisé dans la mémoire du microcontrôleur. Cette phase de chargement I4 termine la séquence d'initialisation. C'est pourquoi, sur le diagramme de la figure 4, elle est suivie de l'étape "FIN". Les phases de configuration I3 et de chargement I4 sont identiques aux phases correspondantes des séquences d'initialisation connues dans l'état de la technique. La configuration peut enfin comprendre l'activation ou non du circuit CSS de filtrage d'horloge. En effet, cette fonction de sécurité n'est pas toujours souhaitée par les utilisateurs. Dans le cas o le circuit CSS est désactivé du fait de la configuration, le signal fcpU délivré par l'oscillateur principal MO est directement transmis en entrée de l'unité centrale de calcul CPU. A la figure 5, on a représenté le contenu d'un mot d'option de huit bits. Ces bits sont, en partant du bit de poids le plus fort: - un bit CFC qui vaut 0 pour activer le circuit de filtrage d'horloge CSS et qui vaut 1 pour le désactiver; - trois bits OSC2, OSC1, et OSCO dont les valeurs conjuguées déterminent, conformément au tableau de la figure 6, la source d'oscillations sélectionnée pour l'oscillateur principal MO; - deux bits LVD1 et LVD0 dont les valeurs conjuguées déterminent, conformément au tableau de la figure 7, le niveau du seuil d'initialisation VLvDr; on notera que si ces deux bits valent 1, aucun seuil d'initialisation n'est pris en compte par le circuit de détection LVD; - deux bits WDG1 et WDGO destinés à la configuration du circuit "chien de garde" WDG, et sur lesquels il n'est pas utile de s'étendre ici dans la mesure o ce circuit n'intervient pas dans la séquence d'initialisation. L'invention propose aussi un microcontrôleur comprenant une unité centrale de calcul CPU et une mémoire MEM, ainsi que des moyens d'initialisation RSM et LVD pour faire passer le microcontrôleur d'un mode hors alimentation à un mode exécution lorsque le niveau d'une tension d'alimentation VDD devient supérieur à un seuil, qui met en oeuvre un procédé d'initialisation tel que décrit ci-dessus. REVENDICATIONS 1. Procédé d'initialisation d'un microcontrôleur, comprenant une séquence d'initialisation pour faire passer le microcontrôleur d'un mode hors alimentation à un mode exécution lorsque le niveau d'une tension d'alimentation (VDD) devient supérieur à un seuil, caractérisé en ce que la séquence d'initialisation comprend, dans cet ordre: a) une phase (Il) de lecture d'un mot d'option mémorisé dans une mémoire programmable par l'utilisateur, pour la configuration de circuits internes du microcontrôleur; b) une phase (I3) de temporisation pour le démarrage et la stabilisation de l'oscillateur principal du microcontrôleur; c) une phase (I4) de chargement du bus d'adresse du microcontrôleur avec l'adresse de début d'un programme utilisateur mémorisé dans la mémoire du microcontrôleur. 2. Procédé selon la revendication 1, caractérisé en ce que la phase a) débute lorsque le niveau de la tension d'alimentation (VDD) devient supérieur à un seuil de configuration (VLvDopt). 3. Procédé selon la revendication 2, caractérisé en ce que le seuil de configuration (VLVDopt) n'est pas configurable. 4. Procédé selon la revendication 2 ou la revendication 3, caractérisé en ce que la configuration comprend la spécification de la valeur d'un seuil d'initialisation (VLVDr) supérieur au seuil de configuration, et en ce que la phase b) débute lorsque le niveau de la tension d'alimentation (VDD) devient supérieur à ce seuil d'initialisation (VLVDr) mais pas avant la fin de la phase a). 5. Procédé selon la revendication 2 ou la revendication 3, caractérisé en ce que la phase b) débute à la fin de la phase a). 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que la phase a) est effectuée au rythme d'un oscillateur de secours basse fréquence. 7. Procédé selon l'une des revendications précédentes, caractérisé en ce que la configuration comprend la sélection d'une source d'oscillations pour l'oscillateur principal du microcontrôleur, parmi notamment un ou plusieurs résonateurs externes de fréquences différentes, un circuit RC externe, un circuit RC interne ou une horloge externe. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que la configuration comprend l'activation d'un circuit de filtrage d'horloge. 9. Procédé selon l'une des revendications précédentes, caractérisé en ce que le mot d'option est mémorisé dans la mémoire du microcontrôleur. 10. Microcontrôleur comprenant une unité centrale de calcul (CPU) et une mémoire (MEM), ainsi que des moyens d'initialisation (RSM,LVD) pour faire passer le microcontrôleur d'un mode hors alimentation à un mode exécution lorsque le niveau d'une tension d'alimentation (VDD) devient supérieur à un seuil, caractérisé en ce qu'il met en oeuvre un procédé selon l'une des revendications précédentes.