FR2790117A1 - Procede de configuration d'un microcontroleur en mode initialisation - Google Patents

Procede de configuration d'un microcontroleur en mode initialisation Download PDF

Info

Publication number
FR2790117A1
FR2790117A1 FR9902117A FR9902117A FR2790117A1 FR 2790117 A1 FR2790117 A1 FR 2790117A1 FR 9902117 A FR9902117 A FR 9902117A FR 9902117 A FR9902117 A FR 9902117A FR 2790117 A1 FR2790117 A1 FR 2790117A1
Authority
FR
France
Prior art keywords
microcontroller
signal
oscillator
initialization
configuration
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
FR9902117A
Other languages
English (en)
Other versions
FR2790117B1 (fr
Inventor
Olivier Plourde
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR9902117A priority Critical patent/FR2790117B1/fr
Priority to US09/489,365 priority patent/US6625731B1/en
Publication of FR2790117A1 publication Critical patent/FR2790117A1/fr
Application granted granted Critical
Publication of FR2790117B1 publication Critical patent/FR2790117B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Abstract

L'invention propose un procédé de configuration d'un microcontrôleur en mode initialisation, le microcontrôleur (MCU) comprenant une unité centrale de calcul (CPU), une mémoire centrale (MEM) et un oscillateur principal (MO), le procédé comprenant les étapes suivantes : a) activation d'un oscillateur auxiliaire (OSC) du microcontrôleur; b) génération d'un signal d'horloge (PHI1ROM) avec ledit oscillateur auxiliaire (OSC); c) lecture d'un mot d'option dans une mémoire (MEM) du microcontrôleur au rythme dudit signal d'horloge (PHI1ROM); d) chargement d'au moins un bit dudit mot d'option dans un registre de configuration d'au moins un circuit interne du microcontrôleur (MCU), notamment un circuit périphérique interne (WDG, LVD, MO).

Description

PROCEDE DE CONFIGURATION D'UN MICROCONTROLEUR EN MODE
INITIALISATION
La présente invention concerne un procédé de configuration d'un microcontrôleur en mode initialisation.
A la figure 1, on a représenté le schéma simplifié d'un microcontrôleur MCU. Ce microcontrôleur comprend notamment: - une unité centrale de calcul CPU (Central Processing Unit, ou Core, en anglais), qui est le coeur du microcontrôleur;
- une mémoire MEM de type ROM, EPROM, EEPROM, ou Flash-
EPROM dans laquelle est mémorisé un programme, appelé programme utilisateur (User Program, en anglais). Ce programme est chargé par l'utilisateur préalablement à l'implantation du microcontrôleur dans l'application; - un circuit MO assurant la fonction d'oscillateur principal du microcontrôleur. Un tel oscillateur génère un signal d'horloge PHIl, dont la fréquence est de l'ordre de la dizaine de mégahertz, qui est utilisé pour activer les circuits internes du microcontrôleur (notamment l'unité CPU) en mode exécution. La fréquence nominale fCPU de ce signal d'horloge PHIl est par exemple de 8 Mhz (mégahertz). Le circuit MO peut être configuré en sélectionnant une source d'oscillations particulière pour l'oscillateur principal, parmi notamment un résonateur externe (quartz) de fréquence déterminée, un circuit RC externe, un circuit RC interne, ou encore un oscillateur externe. A cet effet, il est connecté à deux broches d'accès CKl et CK2 du microcontrôleur; - un circuit de filtrage d'horloge CSS avec un filtre d'horloge et un oscillateur de secours SO. La fonction d'un tel circuit consiste, d'une part, à éliminer les impulsions du signal PHIl 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 l'oscillateur de secours SO, lorsque le signal d'horloge PHIl 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, en mode exécution, un signal d'horloge à l'unité CPU dont la fréquence fcpu reste à l'intérieur d'une plage déterminée comprise entre le second et le premier seuil précités; - un circuit WDG appelé "chien de garde" (Watch-Dog, en anglais); - un circuit LVD de détection d'un niveau trop bas de la tension d'alimentation (Low Voltage Detector, en anglais), qui reçoit une tension d'alimentation et la masse par l'intermédiaire de broches d'accès respectivement ALIM et GND du microcontrôleur; - un circuit RSM, ou séquenceur d'initialisation (reset sequence manager, en anglais), pour la gestion des séquences d'initialisation du microcontrôleur qui sont initiées par des signaux d'initialisation que le circuit RSM reçoit du circuit WDG, du circuit LVD, ou de l'extérieur par l'intermédiaire
d'une broche d'accès RST.
- un (ou plusieurs) convertisseur(s) analogique/numérique et/ou numérique/analogique (non représentés) formant interface avec des entrées et des sorties analogiques du microcontrôleur
(également non représentées).
Le microcontrôleur contient en général d'autres circuits périphériques internes. Par l'expression circuit périphérique interne, on entend un circuit interne du microcontrôleur autre que l'unité CPU et la mémoire centrale MEM (ces deux circuits internes constituant le noyau de base indispensable au
fonctionnement de tout microcontrôleur).
Une séquence d'initialisation (Reset Sequence, en anglais) fait passer le microcontrôleur d'un mode de fonctionnement de départ à un mode exécution (Run, en anglais). Entre ces deux modes, c'est à dire pendant la séquence d'initialisation, on dit que le microcontrôleur est
en mode initialisation (Reset, en anglais).
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).
Le mode de fonctionnement de départ dépend de la manière dont la séquence d'initialisation est initiée: - lorsque la séquence d'initialisation est initiée par la
mise sous tension du microcontrôleur (on parle alors de Power-
On Reset, en anglais) le mode de départ est un mode hors alimentation (Power-Off, en anglais). Dans le mode hors alimentation, tous les circuits internes du microcontrôleur (sauf le séquenceur d'initialisation RSM dédié à la gestion de la séquence d'initialisation) sont inhibés, en sorte qu'ils ne fonctionnent pas. Le microcontrôleur ne passe en mode exécution que lorsque le niveau d'une tension d'alimentation, fournie sur la broche d'alimentation ALIM, est devenu
supérieur à un seuil déterminé appelé seuil d'initialisation.
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... ); - lorsque la séquence d'initialisation est initiée par un signal d'initialisation externe, par un signal d'initialisation provenant du circuit "chien de garde" WDG ou par un signal d'initialisation provenant du circuit de détection LVD, le mode de fonctionnement de départ est le mode exécution. Il s'avère nécessaire d'offrir à l'utilisateur la possibilité de configurer certains circuits internes 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 LVD de détection d'un niveau trop bas de la tension d'alimentation, et/ou de choisir le niveau d'un seuil d'initialisation au dessous duquel il génère un signal d'initialisation. De même, il peut être souhaitable d'activer ou de désactiver le circuit " chien de garde " WDG. Dans l'état de la technique, cela est parfois réalisé par une étape de lecture d'un mot d'option qui est mémorisé dans la mémoire du microcontrôleur. Cette étape 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 dans le programme utilisateur. Cependant, cette méthode n'est pas applicable 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 RSM. Ceci implique notamment que la configuration n'est pas possible pour les circuits du microcontrôleur intervenant dans la séquence d'initialisation elle-même, notamment le circuit de détection LVD et
l'oscillateur principal MO.
Or, on comprend qu'il peut être souhaitable de permettre à l'utilisateur la configuration de tels circuits internes du microcontrôleur avant l'entrée en mode exécution et donc le début de l'exécution du programme utilisateur. Par exemple, il peut être souhaitable de permettre à l'utilisateur de choisir la valeur du seuil d'initialisation du circuit de détection LVD. 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. Néanmoins, plus le seuil d'initialisation est élevé, et plus longtemps le microcontrôleur risque de rester en mode hors alimentation. De même, l'utilisateur peut souhaiter configurer l'oscillateur principal MO de manière à
ce qu'il fonctionne avec telle ou telle source d'oscillations.
L'objet de la présente invention est de permettre la lecture, en mode d'initialisation, d'au moins un mot d'option dans le microcontrôleur, ce mot d'option permettant la configuration d'un ou plusieurs circuits internes du microcontrôleur. Ce but est atteint, conformément à l'invention, grâce à un procédé de configuration d'un microcontrôleur en mode initialisation, le microcontrôleur comprenant une unité centrale de calcul, une mémoire centrale et un oscillateur principal qui sont désactivés, procédé comprenant les étapes suivantes: a) activation d'un oscillateur auxiliaire du microcontrôleur; b) génération d'un signal d'horloge avec ledit oscillateur auxiliaire; c) lecture d'un mot d'option dans une mémoire du microcontrôleur au rythme dudit signal d'horloge; d) chargement d'au moins un bit dudit mot d'option dans un registre de configuration d'au moins un circuit interne du microcontrôleur, notamment un circuit
périphérique interne.
Ainsi, la lecture du mot mémoire se fait au rythme d'un signal d'horloge généré par un oscillateur auxiliaire, dédié à cette tâche en mode initialisation. L'oscillateur principal du microcontrôleur n'est activé qu'ultérieurement, éventuellement après avoir été lui-même configuré. Grâce au procédé de l'invention, la configuration du microcontrôleur se fait uniquement avec des moyens internes au microcontrôleur. Aucun circuit ou composant externe ne doit
être prévu à cette fin dans l'application.
Ces avantages, ainsi que d'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à 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à analysée: un schéma simplifié d'un microcontrôleur; - à la figure 2: un schéma des circuits internes d'un microcontrôleur permettant la mise en oeuvre du procédé selon l'invention; - à la figure 3: une courbe de la tension d'alimentation en fonction du temps, dans le cas d'une initialisation à la mise sous tension; - aux figures 4a à 4m, qui se lisent en regard de la figure 3: des chronogrammes de signaux générés lors de
l'initialisation du microcontrôleur.
A la figure 2, on a représenté des circuits internes du microcontrôleur qui permettent la mise en oeuvre du procédé selon l'invention. Sur cette figure, les même éléments qu'à la
figure 1 portent les mêmes références.
Le circuit RSM, déjà présenté à la figure 1, comprend un séquenceur SEQ comportant une entrée d'horloge CK et une entrée de démarrage SET. Le séquenceur SEQ génère des signaux READOPT, INITROM, OPTDRIVE1, OPTDRIVE2, OPTLOAD1 et OPTLOAD2
dont le séquencement sera explicité plus loin.
Le signal READOPT est transmis sur une première entrée d'une porte OR1 de type OU à trois entrées. Cette porte reçoit également des signaux RSTWDG et RSTLVDU sur ses deuxième et troisième entrées. ces signaux sont, respectivement le signal d'initialisation délivré par le circuit << chien de garde >" WDG et le signal d'initialisation délivré par le circuit de détection LVD. La sortie de la porte OR1 délivre un signal RESIN. Le signal RESIN est transmis sur une entrée d'activation R de l'oscillateur principal MO, pour maintenir ce circuit périphérique interne désactivé tant que le signal
RESIN est à 1.
En outre, le signal RESIN est transmis, d'une part sur une première entrée d'une porte OR2 de type OU à deux entrées, et d'autre part sur la grille d'un transistor TR1 de type NMOS. Le drain du transistor TR1 est relié à la broche d'accès RST du boîtier du microcontrôleur MCU. Cette broche est une broche d'entrée/sortie, c'est à dire qu'elle reçoit ou délivre un signal EXTRST/ selon les cas. Une résistance RON est connectée entre une borne recevant la tension VDD et la broche RST. De manière connue, cette résistance est par exemple réalisée par la résistance de canal d'un transistor de type PMOS. La fonction d'une telle résistance est d'éviter que la broche RST soit flottante. On parle à cet effet de résistance de "pull-up" en anglais. La broche RST est en outre connectée à la seconde entrée de la porte OR2 à travers un inverseur
INV1 (Trigger de Schmitt).
La sortie de la porte OR2 est reliée à l'entrée de
démarrage SET d'un compteur CNT qui est un compteur 16 bits.
Dit autrement, le compteur CNT peut compter jusqu'à 4096. Une entrée d'horloge CK de ce compteur est reliée à la sortie d'une porte AND1 de type ET à deux entrées. La première entrée de la porte AND1 est connectée à la sortie de comptage du compteur CNT, et sa seconde entrée reçoit le signal d'horloge PHI1 délivré par l'oscillateur principal MO du microcontrôleur. La sortie de comptage du compteur CNT délivre
un signal INTRST.
Le fonctionnement du compteur CNT est le suivant: - lorsque l'entrée de démarrage SET passe de 0 à 1 (i.e., sur un front montant du signal délivré par la sortie de la porte OR2), le signal INTRST passe à 1 (i.e., à l'état logique haut) et la valeur du compteur est initialisée à zéro; - la valeur du compteur est incrémentée de une unité à chaque impulsion du signal d'horloge PHI1 à travers la porte AND1 qui agit comme un interrupteur commandé par le signal PHI1 (du fait que INTRST est à 1); - après 4096 cycles du signal d'horloge PHI1, le signal INTRST repasse à 0 (i.e., à l'état logique bas), en sorte que la porte AND1 agit comme un interrupteur ouvert quelque soit la valeur du signal d'horloge PHI1. Comme on l'aura compris, la porte AND1 permet de désactiver le compteur CNT jusqu'au prochain front montant sur l'entrée de démarrage SET du compteur. Le signal INTRST est transmis sur une entree d'activation R du circuit WDG, ainsi que sur une entrée d'activation R de l'unité centrale de calcul CPU. Comme il sera explicité par la suite, le signal INTRST a pour effet de maintenir ces circuits
désactivés (i.e., inhibés) en mode initialisation.
Le signal READOPT délivré par la sortie du séquenceur SEQ est également transmis sur une entrée d'activation d'un oscillateur auxiliaire OSC du microcontrôleur. Dans un mode de réalisation préféré, cet oscillateur auxiliaire est l'oscillateur de secours SO du circuit de filtrage d'horloge CSS (voir figure 1) non représenté à la figure 2. De cette manière, le même oscillateur SO remplit la fonction d'oscillateur de secours en mode exécution et la fonction d'oscillateur auxiliaire selon l'invention en mode initialisation. L'oscillateur auxiliaire OSC génère un signal d'horloge OSCOPT qui est transmis sur une première entrée d'une porte AND2 de type ET à deux entrées. On note fOSCOPT la fréquence du signal d'horloge OSCOPT. Ce signal d'horloge est un signal basse fréquence, c'est à dire que la fréquence fOSCOpT est de l'ordre de quelques dizaines ou centaines de kilohertz. Dans un exemple, cette fréquence est égale à 225kHz (kilohertz). La seconde entrée de la porte AND2 reçoit le signal READOPT délivré par la sortie du séquenceur SEQ. L'entrée de démarrage SET du séquenceur SEQ est reliée à la sortie d'une porte OR3 de type OU à deux entrées. La première entrée de la porte OR3 (qui n'est pas une entree inverseuse) reçoit le signal INTRST délivré par la sortie du compteur CNT précité. La seconde entrée de la porte OR3 (qui est une entrée inverseuse comme l'indique le petit rond représenté sur cette entrée de la porte) reçoit un signal RSTLVDO délivré par le circuit de
détection LVD.
En ce qui concerne la génération du signal READOPT, le fonctionnement du séquenceur SEQ est le suivant: - lorsque l'entrée de démarrage SET passe de 0 à 1 (i.e., sur un front montant du signal délivré par la sortie de la porte OR3), le signal READOPT passe à 1 et la valeur du compteur est initialisée à zéro. Le signal READOPT active l'oscillateur auxiliaire OSC qui délivre alors le signal d'horloge OSCOPT; - la valeur d'un compteur du séquenceur SEQ (qui peut compter jusqu'à 6) est incrémentée de une unité à chaque
impulsion du signal d'horloge OSCOPT à travers la porte AND2.
Celle-ci agit comme un interrupteur commandé par le signal d'horloge OSCOPT (du fait que READOPT est à 1); - après 6 cycles du signal d'horloge OSCOPT, le signal READOPT repasse à 0, en sorte que la porte AND2 agit comme un interrupteur ouvert quelque soit la valeur du signal d'horloge OSCOPT. Comme on l'aura compris, la porte AND2 permet de désactiver le compteur du séquenceur SEQ jusqu'au prochain front montant sur l'entrée de démarrage SET. On peut se passer de la porte AND2 lorsque l'oscillateur auxiliaire OSC est désactivé par le passage à 0 du signal READOPT (i.e., par un
front descendant du signal READOPT).
En ce qui concerne la génération des autres signaux, le fonctionnement du séquenceur SEQ sera explicité plus loin. On notera toutefois que les signaux OPTDRIVE1 et OPTDRIVE2 sont transmis sur des entrées de commande de la mémoire centrale MEM. Le signal OPTLOAD1 est transmis sur une entrée de chargement LOAD du circuit "chien de garde" WDG et de l'oscillateur principal MO. Le signal OPTLOAD2 est transmis
sur une entrée de chargement LOAD du circuit de detection LVD.
Le signal INITROM est transmis sur une entrée d'activation R
de la mémoire centrale MEM.
Le bus de donnée DB du microcontrôleur relie la mémoire centrale MEM et l'unité centrale de calcul CPU. En outre, les circuits périphériques internes tels que le circuit "chien de garde" WDG, le circuit de détection LVD et l'oscillateur principal MO sont également reliés au bus de données DB. Ceci leur permet de charger, par l'intermédiaire d'une entrée OPT, un ou plusieurs bits présents sur le bus de données DB lorsque les signaux respectivement OPTLOAD1 ou OPTLOAD2 passent à 1 (i.e. sur un front montant de ces signaux). Ce ou ces bits sont chargés dans un ou des registres de configuration de ces circuits. L'opération consistant à modifier l'état de ces registres constitue l'essence de la configuration de ces
circuits internes du microconrôleur.
Le signal d'horloge OSCOPT est également transmis sur une première entrée d'un multiplexeur MUX à deux entrées. La seconde entrée du multiplexeur MUX reçoit le signal d'horloge PHIl. Le signal READOPT est en outre transmis sur l'entrée de commande du multiplexeur MUX. Ainsi, ce dernier délivre sur sa sortie un signal d'horloge PHIlROM qui est le signal PHIl lorsque le signal READOPT est à 0 et qui est le signal OSCOPT lorsque le signal READOPT est à 1. Le signal d'horloge PHIlROM est transmis sur une entrée d'horloge CLK de la mémoire centrale MEM du microcontrôleur. Une entrée d'horloge CLK de l'unité centrale de calcul CPU reçoit le signal d'horloge PHIl
délivré par l'oscillateur principal MO.
Le déroulement du procédé selon l'invention va maintenant être décrit en regard de la figure 3 et des chronogrammes des figures 4a à 4m. Ces figures concernent un premier cas s'agissant d'une initialisation initiée à la mise sous tension du microcontrôleur. Les cas d'une initialisation initiée par l'un des trois signaux d'initialisation envisagés plus haut seront ensuite décrits succinctement, dans la mesure o ils se
différencient dudit premier cas.
A la figure 3 on a représenté la courbe de la tension d'alimentation VDD en fonction du temps lors d'une mise sous tension du microcontrôleur. Cette tension est appliquée entre les broches ALIM et GND du microcontrôleur MCU. Elle met un certain temps à passer de la valeur nulle à sa valeur nominale VDDnominal, qui dans un exemple est égale à 5 v (volt). Les signaux RSTLVDO et RSTLVDU sont initialement à l'état 1 (figures 4d et 4e) du fait que le niveau de la tension VDD est inférieur, respectivement à un premier seuil VLVDopt et à un
second seuil VLVDr.
Tant que le niveau de la tension VDD est inférieur au seuil VLVDoPT, c'est à dire tant que le signal RSTLVDO est à 1, le microcontrôleur est maintenu dans le mode hors alimentation. Tous les circuits internes du microcontrôleur sont alors désactivés (i.e., tous les circuits logiques sont inhibés). Notamment, la mémoire centrale MEM est désactivée car le signal INITROM (figure 4a) est à 1; l'oscillateur principal MO est désactivés car le signal RESIN (figure 4c) est à 1; l'unité centrale de calcul CPU et le circuit WDG sont désactivés car le signal INTRST est à 1. Seul fonctionne le circuit de détection LVD, de nature analogique ou essentiellement analogique. Dès que le niveau de la tension VDD devient supérieur au seuil VLVDopt, le signal RSTLVDO passe à 0. Le microcontrôleur MCU n'est plus en mode hors alimentation mais en mode initialisation. Le circuit RSM
exécute une séquence d'initialisation.
Cette séquence comprend quatre phase distinctes. Une première phase Il (figure 3), dite phase de configuration, est une phase au cours de laquelle sont exécutées les étapes du
procédé selon l'invention.
La phase Il comprend tout d'abord une étape d'activation de l'oscillateur auxiliaire OSC. En effet, le passage à zéro du signal RSTLVD0 engendre un front montant sur l'entrée de démarrage SET du séquenceur SEQ du circuit RSM. Par suite, le signal READOPT passe à 1, ce qui active l'oscillateur
auxiliaire OSC. Celui-ci délivre le signal d'horloge OSCOPT.
Dit autrement, la première étape du procédé selon l'invention consiste à activer l'oscillateur auxiliaire OSC. Le signal OSCOPT est un signal basse fréquence, c'est à dire de l'ordre de quelques dizaines ou centaines de kilohertz. De la sorte, le séquencement de la lecture du mot d'option n'est pas pénalisé par le fait que la tension d'alimentation VDD peut être basse, c'est à dire inférieure à 3 v (volt) pendant
l'initialisation.
Au lieu d'activer un oscillateur auxiliaire tel que l'auxiliaire OSC représenté à la figure 2, il est possible d'activer l'oscillateur de secours SO du microcontrôleur (voir figure 1) lorsque celui-ci comporte un tel oscillateur. En effet un oscillateur de secours est dimensionné pour délivrer un signal basse fréquence. Dit autrement, l'oscillateur activé à la première étape de la phase Il peut être l'oscillateur de secours SO du microcontrôleur de la figure 1. On évite ainsi la présence d'un oscillateur spécifique, dédié à la phase de
configuration Il.
La phase Il comprend ensuite une étape de génération du signal d'horloge PHIlROM à l'aide de l'oscillateur auxiliaire OSC délivrant le signal OSCOPT. En effet, comme le signal READOPT est à 1, le signal PHIlROM en sortie du multiplexeur MUX est le signal OSCOPT (voir figure 4g). On rappelle que le signal OSCOPT, et donc le signal PHIlROM pendant la phase Il, est un signal basse fréquence. On notera que, dans un exemple, la phase Il dure 6 cycles (c'est à dire 6 périodes) du signal
d'horloge PHIlROM, comme on le voit à la figure 4g.
La phase Il comprend ensuite une étape de lecture d'au moins un mot d'option dans une mémoire du microcontrôleur (par exemple la mémoire centrale MEM du microcontrôleur MCU), au rythme du signal d'horloge PHIlROM. A cet effet, le signal INITROM généré par le séquenceur SEQ, qui était initialement à 1, passe à 0 après le premier cycle du signal d'horloge PHIlROM de la phase Il (voir figure 4a). Ce signal permet d'activer la mémoire MEM bien que le microcontrôleur soit toujours en mode initialisation. Après un temps d'attente de deux cycles du signal d'horloge PHIlROM destinés à permettre le positionnement des circuits de lecture de la mémoire, le séquenceur SEQ délivre une impulsion à 1 du signal OPTDRIVE1 (figure 4h). Cette impulsion ne dure qu'un cycle du signal d'horloge PHIlROM. Elle est interprétée comme un ordre de lecture d'un mot d'option à une première adresse particulière de la mémoire. Par suite, le mot d'option correspondant est
placé sur le bus de données DB (figure 4m).
Dans un mode de réalisation préféré (seul représenté à la figure 2), la mémoire dans laquelle est (ou sont) mémorisé(s) le (ou les) mot(s) d'option mémoire est la mémoire centrale MEM du microcontrôleur, c'est à dire celle dans laquelle est aussi mémorisé le programme utilisateur. Avec une mémoire centrale de 8 Ko (kilooctet) organisée en mots de huit bits, un mot d'option est préférentiellement un mot de huit bits. On veillera simplement à ce que les mots d'option soient mémorisés dans une zone de la mémoire différente de la zone
réservée pour le stockage du programme utilisateur.
Toutefois, la mémoire peut être une mémoire dédiée, par
exemple un petit plan mémoire ROM, EPROM, EEPROM ou Flash-
EPROM prévu à cet effet. Dans ce cas, le signal INITROM n'est pas obligatoire puisque la mémoire dédiée peut ne pas être désactivée en mode initialisation. La phase Il comprend enfin une étape de chargement d'au moins un bit dudit mot d'option dans un registre de configuration d'un ou de plusieurs circuits périphériques internes du microcontrôleur tels que le circuit " chien de garde " WDG et/ou l'oscillateur principal MO. En effet, le séquenceur SEQ génère une impulsion à 1 du signal OPTLOAD1 (figure 4i). Cette impulsion ne dure qu'une demi- période du signal d'horloge PHIlROM. Le signal OPTLOAD1 a pour effet de charger un ou plusieurs bits du mot d'option qui se trouve sur le bus de données DB dans un ou plusieurs registres de configuration du circuit " chien de garde " WDG et/ou de
l'oscillateur principal MO.
Les étapes de lecture et de chargement ci-dessus peuvent être répétées pour lire plusieurs mots d'option successivement et charger un ou plusieurs autres registres de configuration du ou (des) même(s) circuit(s) périphérique(s) interne(s). Ce sera le cas si huit bits ne suffisent pas pour la configuration de tous les circuits internes du microcontrôleur qu'on souhaite pouvoir configurer. De plus, ces étapes peuvent être répétées pour la configuration d'un autre circuit périphérique interne du microcontrôleur ou de plusieurs autres tels circuits. Il faut simplement prévoir des signaux spécifiques générés par le séquenceur SEQ. Ainsi, aux figures 4j et 4k, on a représenté les signaux OPTDRIVE2 et OPTLOAD2 générés par le séquenceur SEQ pour la configuration du circuit de détection LVD. Une impulsion à 1 du signal OPTDRIVEZ est interpretée comme un ordre de lecture d'un second mot
d'option, à une seconde adresse particulière de la mémoire.
Le signal OPTLOAD2 provoque le chargement d'un ou plusieurs bits de ce mot d'option dans des registres de configuration
des circuits de detection LVD.
Bien entendu, les étapes décrites ci-dessus pour les circuits périphériques internes WDG, MO et LVD, sont exécutées de la même façon pour charger des registres de configuration
de tout autre circuit interne du microcontrôleur MCU, notamment le circuit de filtrage CSS de la figure 1. Là encore, il faut à cet effet prévoir des signaux spécifiques5 générés par le séquenceur SEQ. En fait, le procédé décrit ci-
dessus permet le cas échéant de configurer tous les circuits périphériquesinternes du microcontrôleur en mode initialisation. Selon un avantage de l'invention le procédé permet notamment de configurer des circuits internes du microcontrôleur intervenant dans la suite de la séquence d'initialisation (i.e., après la phase Il). C'est le cas par exemple de l'oscillateur principal MO. Cela peut aussi être le cas du circuit de détection LVD, dont on peut ainsi configurer le second seuil VLVDr, pour qu'il soit ou non pris en compte,
et/ou pour lui donner une valeur déterminée.
Dans le cas o les mots d'option sont mémorisés dans la mémoire centrale du microcontrôleur, un mot d'option n'est accessible en écriture que selon un mode de fonctionnement particulier du microcontrôleur, appelé mode de programmation.20 Il s'agit aussi du mode qui permet le chargement du programme
utilisateur dans la mémoire centrale du microcontrôleur.
Normalement, un mot d'option n'est programmé qu'une seule fois par l'utilisateur, de même que le programme utilisateur. Mais, si la mémoire est reprogrammable, rien ne s'oppose à ce que le
mot d'option soit ultérieurement modifié.
Comme on l'aura compris, la durée de la phase de configuration Il dépend du nombre de mots d'option à charger
et du nombre de circuits périphériques internes à configurer.
L'exemple ci-dessus d'une phase Il durant 6 cycles du signal d'horloge ESCOPT n'est donc pas limitatif. On adaptera le circuit RSM en choisissant un séquenceur SEQ avec un compteur approprié (i.e. pouvant compter jusqu'à n, o n est un nombre entier désignant la durée de la phase de configuration
exprimée en nombre de cycles du signal d'horloge OSCOPT).
Une phase I3 de la séquence d'initialisation (figure 3) démarre lorsque le niveau de la tension d'alimentation VDD devient supérieur au second seuil VLVDr précité. Elle comprend une étape de temporisation pendant laquelle l'oscillateur principal MO du microcontrôleur est activé, en sorte qu'il commence à osciller. Cette activation de l'oscillateur principal MO est réalisée par le passage à 0 du signal RESIN 5 qui est transmis à cet effet sur l'entrée d'activation R de l'oscillateur principal MO. Celui-ci génère alors le signal d'horloge PHIl (figure 4f). On notera que le circuit WDG (et tout autre circuit périphérique interne tel qu'un circuit de filtrage d'horloge comme le circuit CSS de la figure 1, ainsi également que l'unité centrale de calcul CPU, restent
désactivés du fait du signal INTRST qui est toujours à 1).
La phase I3 a pour fonction de permettre l'activation et la stabilisation du signal PHIl à se fréquence d'oscillation nominale (qui est une haute fréquence). Pour cette raison, on parle de phase de stabilisation du signal d'horloge PHIl ou de phase d'activation et de stabilisation de l'oscillateur principal MO pour désigner la phase I3. La durée de cette phase est fixe et correspond à un temps jugé nécessaire pour permettre cette stabilisation. Cette durée correspond aux 4096 cycles du signal d'horloge PHIl qui sont comptés par le
compteur CNT de la figure 2, ainsi qu'on l'a dit plus haut.
Pendant cette phase, l'oscillateur principal MO n'est plus inhibé. Par contre, les autres circuits périphériques internes
restent inhibés.
En fait, une phase d'attente I2 peut séparer la phase de
configuration Il et la phase d'activation de stabilisation I3.
A la figure 2, cette phase est comprise entre le moment o le signal READOPT passe à zéro (ce qui marque la fin de la phase de configuration Il) et le moment o le signal RSTLVDU passe à zéro (ce qui marque le fait que le niveau de la tension VDD est devenu supérieur au seuil VLVDr. La phase d'attente I2 n'est pas systématiquement et se rencontre surtout dans le cas d'une initialisation initiée à la mise sous tension du microcontrôleur. Elle n'existe pas, en règle générale, dans les autres cas. En effet, c'est une phase pendant laquelle la phase de configuration étant terminée, on attend que la condition d'ouverture de la phase de stabilisation se réalise, c'est à dire que la tension d'alimentation VDD devienne
supérieure au seuil VLVDr.
Selon une caractéristique de l'invention, la phase d'activation et de stabilisation I3 peut débuter avant la fin de la phase de configuration Il. Ceci résulte du fait que le signal READOPT est porté en entrée de la porte ORl pour maintenir le signal RESIN à 1. De la sorte, l'oscillateur principal MO n'est pas activé avant la fin de la phase Il même si la condition d'ouverture de la phase I3 est antérieurement o10 réalisée (i. e., même si le signal RSTLVDU passe à O pendant la phase Il). On notera que dans ce dernier cas, o il n'y a pas de phase d'attente I2, la phase d'activation de stabilisation I3 débutant dès la fin de la phase de configuration Il. On notera également que le signal READOPT étant repassé à O à la fin de la phase Il (figure 41), le signal PHIlROM délivré en sortie du multiplexeur MUX à partir de la phase I3 est le
signal PHIl (figure 4g).
La séquence d'initialisation comprend enfin une phase I4 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 intervient à la fin de la phase I3 d'activation et de stabilisation de l'oscillateur principal. Elle termine la séquence d'initialisation, et le microcontrôleur passe en mode
exécution pour l'exécution du programme utilisateur.
La fonction du transistor TRl et de la résistance RON est de faire passer le signal EXTRST/ à 0 au début de la séquence d'initialisation, c'est à dire au début de la phase de configuration. Ce signal, agissant en signal de sortie, peut ainsi être utilisé par l'application comme un signal d'initialisation d'autres circuits externes au microcontrôleur. Ces circuits doivent à cet effet être reliés à la broche RST. On notera que le signal RESIN a pour effet de maintenir le signal EXTRST/ à 0 pendant toute la phase de configuration, et le cas échéant pendant la phase d'attente I2. On s'intéresse maintenant aux cas d'une initialisation initiée par le signal d'initialisation RSTLVDU délivré par le circuit de détection LVD (lorsque le niveau de la tension VDD devient inférieur au seuil VLVDr) ou par le signal RSTWDG délivré par le circuit " chien de garde >" WDG ou encore par le
signal extérieur EXTRST/ agissant en signal d'entrée.
Ces cas se distinguent du cas d'une initialisation initiée à la mise sous tension par deux aspects: - d'une part l'état initial de certain signaux, notamment les signaux RSTLVDU et RSTLVDO (ce dernier étant d'ailleurs toujours à 0 tant que le niveau de la tension VDD reste supérieur au seuil VLVDO); d'autre part, par le fait qu'il n'y a pas en général de phase d'attente I2, la phase I3 débutant dès la fin de la phase Il, sauf en général dans le cas d'une initialisation initiée par
le signal d'initialisation RSTLVDU délivré par le circuit LVD.
Concernant le second aspect, on notera en effet que le temps que met la tension d'alimentation VDD à atteindre sa valeur nominale VDDnominal, 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 de détection LVD en raison de l'évolution non contrôlée du niveau de la tension
d'alimentation VDD.
On notera toutefois que le circuit de détection LVD peut être tel (soit par conception, soit de fait de sa configuration selon le procédé de l'invention) qu'il n'y a pas de second seuil VLVDr. Tout se passe alors comme si le signal RSTLVDU était toujours à 0. Dans ce cas, il n'y a jamais de
phase d'attente I2.

Claims (6)

REVENDICATIONS
1. Procédé de configuration d'un microcontrôleur en mode initialisation, le microcontrôleur (MCU) comprenant une unité centrale de calcul (CPU), une mémoire centrale (MEM) et un oscillateur principal (MO), procédé caractérisé en ce qu'il comprend les étapes suivantes: a) activation d'un oscillateur auxiliaire (OSC) du microcontrôleur; b) génération d'un signal d'horloge (PHIlROM) avec ledit oscillateur auxiliaire (OSC); c) lecture d'un mot d'option dans une mémoire du microcontrôleur au rythme dudit signal d'horloge (PHIlROM); d) chargement d'au moins un bit dudit mot d'option dans un registre de configuration d'au moins un circuit interne du
microcontrôleur (MCU).
2. Procédé selon la revendication 1, caractérisé en ce que les étapes c) et d) sont répétées pour lire plusieurs mots d'option successivement et charger d'autres registres de
configuration.
3. Procédé selon l'une des revendications précédentes,
caractérisé en ce que le signal d'horloge (OSCOPT) délivré par
l'oscillateur auxiliaire (OSC) est un signal basse fréquence.
4. Procédé selon l'une des revendications précédentes,
caractérisé en ce que, le microcontrôleur (MCU) comprenant un circuit de filtrage d'horloge (CSS) avec un oscillateur de secours (SO), l'oscillateur activé à l'étape a) est ledit
oscillateur de secours (SO).
5. Procédé selon l'une des revendications précédentes,
caractérisé en ce que, la mémoire dans laquelle est lue le mot d'option étant la mémoire centrale (MEM) du microcontrôleur (MCU), l'étape c) comporte la génération d'un signal (INITROM)
d'activation de cette mémoire.
6. Procédé selon l'une des revendications précédentes,
caractérisé en ce que à l'étape d), un bit du mot mémoire lu à l'étape c) est chargé dans un registre de configuration de l'oscillateur principal (MO) pour le configurer avant son
activation (I3).
FR9902117A 1999-02-19 1999-02-19 Procede de configuration d'un microcontroleur en mode initialisation Expired - Fee Related FR2790117B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9902117A FR2790117B1 (fr) 1999-02-19 1999-02-19 Procede de configuration d'un microcontroleur en mode initialisation
US09/489,365 US6625731B1 (en) 1999-02-19 2000-01-21 Method of configuring a microcontroller during reset mode by generating auxiliary oscillator signal as supply voltage ramps up to read option word from central memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9902117A FR2790117B1 (fr) 1999-02-19 1999-02-19 Procede de configuration d'un microcontroleur en mode initialisation

Publications (2)

Publication Number Publication Date
FR2790117A1 true FR2790117A1 (fr) 2000-08-25
FR2790117B1 FR2790117B1 (fr) 2001-09-14

Family

ID=9542313

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9902117A Expired - Fee Related FR2790117B1 (fr) 1999-02-19 1999-02-19 Procede de configuration d'un microcontroleur en mode initialisation

Country Status (2)

Country Link
US (1) US6625731B1 (fr)
FR (1) FR2790117B1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200828002A (en) * 2006-12-26 2008-07-01 Holtek Semiconductor Inc Improved reset method for microcontroller
JP2009302953A (ja) * 2008-06-13 2009-12-24 Toshiba Corp 非接触データ通信装置
US8200954B2 (en) * 2008-07-08 2012-06-12 Texas Instruments Incorporated Multi-stage boot pin sampling
CN104123167B (zh) * 2014-08-06 2017-06-23 无锡中微爱芯电子有限公司 具有配置字自检功能的mcu上电启动方法及其自检方法
BR112019004054A2 (pt) 2016-08-29 2019-05-21 3M Innovative Properties Company protetor auditivo eletrônico com contatos elétricos chaveáveis
CN114301437B (zh) * 2021-12-31 2022-10-28 深圳市赛元微电子股份有限公司 微控制器复位方法以及***
CN114721493B (zh) * 2022-06-10 2022-09-27 深圳市航顺芯片技术研发有限公司 芯片启动方法、计算机设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05268017A (ja) * 1992-03-17 1993-10-15 Sanyo Electric Co Ltd クロック発生装置
EP0606806A1 (fr) * 1993-01-13 1994-07-20 STMicroelectronics S.A. Circuit intégré comprenant un microprocesseur, une mémoire et des périphériques internes configurables
US5544092A (en) * 1994-02-25 1996-08-06 Intel Corporation Method and apparatus for configuring an integrated circuit

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193199A (en) * 1988-04-14 1993-03-09 Zilog, Inc. Device and method for programming critical hardware parameters
JPH0512455A (ja) * 1991-07-08 1993-01-22 Matsushita Electric Ind Co Ltd オプシヨン設定回路
JPH05101200A (ja) * 1991-10-09 1993-04-23 Rohm Co Ltd オプシヨン設定回路
WO1993010492A1 (fr) * 1991-11-12 1993-05-27 Microchip Technology Inc. Microcontroleur autoprogrammable a instruction memorisee permettant de commander un programme a partir d'une memoire externe
US5243233A (en) * 1992-09-24 1993-09-07 Altera Corporation Power on reset circuit having operational voltage trip point
US5598569A (en) * 1994-10-17 1997-01-28 Motorola Inc. Data processor having operating modes selected by at least one mask option bit and method therefor
JP3355879B2 (ja) * 1995-08-01 2002-12-09 株式会社デンソー 制御回路
US5694067A (en) * 1996-05-24 1997-12-02 Microchip Technology Incorporated Microcontroller having a minimal number of external components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05268017A (ja) * 1992-03-17 1993-10-15 Sanyo Electric Co Ltd クロック発生装置
EP0606806A1 (fr) * 1993-01-13 1994-07-20 STMicroelectronics S.A. Circuit intégré comprenant un microprocesseur, une mémoire et des périphériques internes configurables
US5544092A (en) * 1994-02-25 1996-08-06 Intel Corporation Method and apparatus for configuring an integrated circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 018, no. 038 (E - 1495) 20 January 1994 (1994-01-20) *

Also Published As

Publication number Publication date
US6625731B1 (en) 2003-09-23
FR2790117B1 (fr) 2001-09-14

Similar Documents

Publication Publication Date Title
EP2063328B1 (fr) Circuit électronique de gestion du fonctionnement de périphériques d&#39;une montre
FR2778012A1 (fr) Dispositif et procede de lecture de cellules de memoire eeprom
FR2618579A1 (fr) Circuit integre a memoire comportant un dispositif anti-fraude
FR2790117A1 (fr) Procede de configuration d&#39;un microcontroleur en mode initialisation
FR2633749A1 (fr) Systeme microprocesseur avec une memoire morte programmable effacable electriquement ayant une fonction de prevention des erreurs d&#39;ecriture et circuit de memoire
EP0392932B1 (fr) Procédé et dispositif pour accélérer les accès mémoire, utilisant un algorithme LRU modifié
CH644462A5 (fr) Circuiterie pour l&#39;execution d&#39;un micro-progamme.
EP2073212A1 (fr) Dispositif de lecture d&#39;une mémoire non volatile à basse consommation, et son procédé de mise en action
FR2569287A1 (fr) Dispositif de commande de boucles pour appareil de traitement numerique
EP0394115A1 (fr) Dispositif d&#39;accélération des accès mémoire dans un système informatique
FR2770006A1 (fr) Circuit de remise a l&#39;etat initial synchrone ou asynchrone
FR2788145A1 (fr) Procede d&#39;initialisation d&#39;un microcontroleur
EP1295297B1 (fr) Circuit de detection d&#39;utilisation
EP0872848B1 (fr) Circuit de lecture de mémoire avec dispositif de précharge à commande dynamique.
FR2787597A1 (fr) Procede de conception d&#39;un coeur de microprocesseur
EP0883134B1 (fr) Circuit intégré à mémoire non volatile électriquement programmable avec registre de configuration d&#39;options
FR3047136A1 (fr)
FR2766594A1 (fr) Dispositif de re-initialisation a commande externe pour une memoire non volatile en circuit integre
FR2605447A1 (fr) Memoire non volatile programmable electriquement
FR2758644A1 (fr) Indicateur d&#39;ecriture par page pour memoire non volatile
FR2752993A1 (fr) Dispositif de protection de donnees memorisees utilisant un circuit de temporisation
FR2832565A1 (fr) Circuit integre comprenant un mode arret actif a faible consommation electrique
FR2764135A1 (fr) Procede et dispositif de filtrage d&#39;un signal impulsionnel
FR2764392A1 (fr) Procede d&#39;identification d&#39;un circuit integre et dispositif associe
EP1843355B1 (fr) Procédé d&#39;initialisation d&#39;une mémoire

Legal Events

Date Code Title Description
ST Notification of lapse