Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Microcontrôleur PIC registre




  1. #1
    aurelien5

    Microcontrôleur PIC registre

    Bonjour,
    j'ai une question:

    "dans un microcontroleur, quel est le seul registre qui contient obligatoirement à la mise sous tension la valeur 0? A quoi sert-il?"

    Merci par avance

    -----


  2. Publicité
  3. #2
    antek

    Re : Microcontrôleur PIC registre

    Pour répondre à cette question il suffit de consulter les informations "état au reset" de la datasheet du µC concerné.

  4. #3
    Vincent PETIT

    Re : Microcontrôleur PIC registre

    Bonjour Aurelien et bienvenue chez Futura Sciences,

    Comme dit antek il suffit juste de consulter la datasheet du microcontrôleur, peu importe le fabricant.

    Exemple au hasard PIC18F4550
    https://ww1.microchip.com/downloads/...doc/39632c.pdf

    Va directement à la page 51 du document (ou à la page 53 de ton navigateur) et regarde TABLE 4-4: INITIALIZATION CONDITIONS FOR ALL REGISTERS, tu verras l'état des registres à la mise sous tension ou après un reset, ou après un redémarrage après une sous tension etc... Tu noteras qu'il y en a beaucoup qui sont remis entièrement à 0 lors de la mise sous tension.
    Là où il n'y a pas de solution, il n'y a pas de problème.


  5. #4
    Antoane

    Re : Microcontrôleur PIC registre

    Bonjour,

    Je pense que la question porte plutôt sur quel registre doit être à zéro pour que le MCU puisse démarrer. Que les sorties soient configurées en sorties au lieu d'entrée, que l'ADC soit bizarrement configuré, etc, peut être gênant et poser des soucis électriques,
    mais c'est finalement assez dérisoire face au fait que la première instruction exécutée par le MCU soit choisie aléatoirement dans le programme...
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  6. #5
    HULK28

    Re : Microcontrôleur PIC registre

    Il n'y a rien d'aléatoire à la mise sous tension dans un uC.
    Je ne comprends pas ta phrase Antoane.
    Tout est bien qui finit.

  7. A voir en vidéo sur Futura
  8. #6
    Antoane

    Re : Microcontrôleur PIC registre

    > Il n'y a rien d'aléatoire à la mise sous tension dans un uC.
    Certes.

    Si le registre décidant de l'état des sorties était initialisé de manière aléatoire, ce serait galère à gérer, mais pas impossible (utilisation d'interfaces à "relativement" haute impédance par exemple). De même pour le registre contrôlant l'ADC, de même pour le cache data, etc.
    En revanche, si l'Instruction register était initialisé de manière aléatoire, i.e. si le MCU commençait par une instruction quelconque du programme, ce serait ingérable. Il est donc fondamental que l'Instruction register soit correctement initialisé.

    C'est, je pense, ce que veux dire le sujet du TD lorsqu'il parle du "seul registre qui contient obligatoirement à la mise sous tension la valeur 0".
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  9. #7
    Vincent PETIT

    Re : Microcontrôleur PIC registre

    Ahhhhh j'avais pas compris la question initiale mais oui tu as raison ça semble bien être sa question.

    Alors il parle du "program counter"
    Là où il n'y a pas de solution, il n'y a pas de problème.

  10. Publicité
  11. #8
    PA5CAL

    Re : Microcontrôleur PIC registre

    Bonsoir

    Il faut se méfier. Un reset ne met pas forcément le PC à zéro sur toutes les plateformes.

    Par exemple, sur les micro-contrôleurs ATmega, au démarrage le PC peut être chargé avec une adresse proche de la fin de la mémoire programme (Flash), soit parce que le programme doit commencer son exécution dans la section de mémoire Boot Loader (bit BOOTRST=0), soit parce que la table des vecteurs (qui contient du code exécutable, généralement des instructions de saut) est placée à cet endroit (bit IVSEL=1).
    Dernière modification par PA5CAL ; 26/11/2018 à 18h47.

  12. #9
    f6exb

    Re : Microcontrôleur PIC registre

    Bonsoir,
    Sur les 6800 6809 (ça ne nous rajeunit pas) le reset charge le vecteur FFFE-FFFF qui indique où démarrer le programme.
    Seuls les faucons volent. Les vrais restent au sol.

  13. #10
    Antoane

    Re : Microcontrôleur PIC registre

    Effectivement, zéro ou autre, il importe que le vecteur soit certain, et non aléatoire
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  14. #11
    jiherve

    Re : Microcontrôleur PIC registre

    Bonsoir
    ceci dit il existe des µC où certains registres voire certaines fonctions démarrent de façon aléatoire et non prévue, cela fait l'objet des errata qu'il faut toujours lire!
    J'ai le souvenir de trucs assez surprenants.
    JR
    l'électronique c'est pas du vaudou!

  15. #12
    freepicbasic

    Re : Microcontrôleur PIC registre

    Sur les pics les "general purpose register" ne sont pas initialisés.
    Contrairement aux registres spécialisés.

    A la mise sous tension, ils sont donc dans une position aléatoire.
    Lors d'un reset à chaud , ils conservent leur valeur.

    A l'écriture d'un prog en asm ou en C, on doit impérativement initialiser toutes les variables utilisées !
    A+, pat

Discussions similaires

  1. Choix d'un microcontroleur / carte à microcontroleur
    Par bisou10 dans le forum Électronique
    Réponses: 29
    Dernier message: 25/10/2013, 15h33
  2. registre POS
    Par cricricri dans le forum Secourisme spécial Croix-Rouge
    Réponses: 1
    Dernier message: 05/02/2013, 15h51
  3. transfert d'un registre A vers un registre B
    Par codys093 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/01/2013, 20h38
  4. registre
    Par electron78 dans le forum Électronique
    Réponses: 12
    Dernier message: 05/01/2008, 23h53
  5. Clé de registre
    Par Fistos dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 07/04/2006, 19h53