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

Exercice d'électronique sur le Pic16F84



  1. #1
    flo5957

    Exercice d'électronique sur le Pic16F84


    ------

    Je n'arrive pas à faire un exercice sur les pics, je vous joint ici l'énoncé, il faut déterminer l'état sur les broches après exécution de deux instructions ? Je ne comprends pas ce que la fréquence de l'oscillateur vient faire dans l'énoncé ?

    Je vous remercie d'avance

    -----
    Images attachées Images attachées  

  2. #2
    Bigonoff

    Re : Exercice d'électronique sur le Pic16F84

    Salut
    ------

    Cet exercice est plus intéressant qu'il n'y paraît au premier abord.
    Il y a deux façons de voir cet exercice:
    1) La façon "simpliste"
    2) La façon "réelle".

    Pour quelqu'un qui ne lit pas les datasheets, la solution à ce problème est très simple: on ignore carrément toutes les données semblant "inutiles" et ne restent que :

    - Le contenu du registre W
    - Le contenu de TRISB
    - Le contenu de PORTB
    - Les instructions à exécuter.

    Donc, la réponse serait:

    1) J'exécute le "IORWF" et vu que je connais W, TRISB et PORTB, j'obtiens la nouvelle valeur de PORTB

    2) J'exécute ensuite le "XORWF" sur base du nouvel état de PORTB et donc j'ai son état final.

    Ni la charge, ni le quartz, ni rien d'autre n'ont la moindre importance.
    Et donc c'est pour ça que tu ne vois pas ce que la fréquence d'oscillateur vient faire dans l'énoncé (note au passage qu'un énoncé peut fort bien contenir plus de données que nécessaires, dans la vie réelle c'est rare qu'on ne te donne que les données strictement nécessaires).

    Ca, c'est ce que vont faire 90% des utilisateurs, principalement ceux qui considèrent la lecture du datasheet inutile, sans compter ceux qui se fient à leur compilateur de langage évolué.

    MAIS mais mais mais... la réalité est toute autre.

    En fait, lorsqu'on modifie un port d'un PIC via PORTx, l'opération s'effectue en 3 temps :

    1) On lit le port
    2) On modifie la valeur
    3) On ré-écrit le port

    Le datasheet parle de cycle read/modify/write, et c'est très très important de comprendre comment ça fonctionne (surtout si on utilise RA4 en sortie, ou qu'on modifie de façon rapide des ports pilotant des charges complexes).

    Donc, lorsqu'on exécute le "XORWF", ce n'est pas la valeur théorique obtenue lors de l'instruction "IOWF" qui doit être prise en compte, mais la valeur réelle présente sur les sorties du PORTB, puisque ce port est relu de façon hardware.

    Ce serait différent si, avec les PIC pourvus de ce registre, on accédait au buffer en lecture (LATB) et non au port lui-même (PORTB), car on relirait alors la valeur réellement écrite et non la valeur réellement présente.

    Or, sur ce port on a évidemment connecté des charges complexes.
    Partant de là, entre l'exécution du IORWF et du XORWF il s'est écoulé un certain nombre de cycles de quartz (de plus, lecture et écriture ne se font pas au même numéro de cycle de quartz à l'intérieur du cycle d'instruction).

    La question à se poser est donc: Au temps T correspondant à l'instant de relecture de PORB, quels seront les niveaux lus à ce moment sur les pins du PORTB? En d'autres mots, la transition de niveau aura-t-elle eu le temps de se terminer ou la pin sera-t-elle dans un état intermédiraire entre Vss et Vdd? Si oui, quelle valeur, et en fonction de cette valeur, quel niveau détecté?

    Et donc, tout ceci dépend évidemment du temps (donc du quartz), de la charge, et des caractéristiques du PIC.

    Bref, ça se résoud via l'étude du datasheet-> carctéristiques électriques, ainsi que par l'étude du circuit équivalent PIC/charges

    Note qu'une donnée est inutile (c'est un bon exercice), je te laisse deviner laquelle.

    A+
    Bigonoff
    Vive l'Internet libre

  3. #3
    zhal

    Re : Exercice d'électronique sur le Pic16F84

    Roooo bigonoff le grand ! sur le forum

  4. #4
    flo5957

    Re : Exercice d'électronique sur le Pic16F84

    Merci beaucoup pour cette parfaite analyse! Si j'ai donc bien compris, la lecture de la deuxième instruction viendrait lire une valeur erronée ne correspondant pas à l'instruction précédente, qui n'aurait pas encore eu lieu en écriture. Tout cela dû à un retard provoqué par la charge de sortie (fortement capacitive) et par à la fréquence du Pic.

  5. A voir en vidéo sur Futura
  6. #5
    Bigonoff

    Re : Exercice d'électronique sur le Pic16F84

    Salut
    ------

    Si j'ai donc bien compris, la lecture de la deuxième instruction viendrait lire une valeur erronée ne correspondant pas à l'instruction précédente, qui n'aurait pas encore eu lieu en écriture.
    En fait, l'instruction précédente aurait bien validé l'état sur le buffer de sortie et donc aurait bien eu lieu en écriture, mais il se pourrait que la tension de sortie n'ait pas encore atteint une tension telle que la relecture du PORT par l'instruction suivante relise le résultat réellement envoyé dans le buffer.

    Évidemment, "il se pourrait" est à vérifier en fonction des chiffres donnés, et c'est là tout l'intérêt de l'exercice.

    Tout cela dû à un retard provoqué par la charge de sortie (fortement capacitive) et par à la fréquence du Pic.
    C'est ça.
    Et donc, vu qu'une instruction est exécutée en 4 étapes (une par Tosc), ça impose de regarder à quel moment est écrite la valeur de sortie dans le PORT, et à quel moment le port est relu par l'instruction suivante. Le reste est affaire de calcul concernant la montée en tension dans la charge, sachant que le datasheet indique à partir de quelle tension un niveau est considéré haut et à quelle tension il est considéré bas.

    A+
    Bigonoff
    Vive l'Internet libre

Discussions similaires

  1. Help !! Exercice d'Electronique
    Par electro-saf dans le forum Électronique
    Réponses: 17
    Dernier message: 08/01/2011, 12h19
  2. exercice d'electronique
    Par Mysterieux1 dans le forum Physique
    Réponses: 0
    Dernier message: 07/09/2010, 18h41
  3. Exercice d'électronique
    Par boblepave dans le forum Électronique
    Réponses: 0
    Dernier message: 27/05/2009, 16h53
  4. Exercice d'électronique
    Par pipoloupo dans le forum Électronique
    Réponses: 2
    Dernier message: 16/12/2007, 20h32
  5. exercice d'électronique
    Par audreyv06 dans le forum Physique
    Réponses: 13
    Dernier message: 02/03/2007, 21h52
Découvrez nos comparatifs produits sur l'informatique et les technologies.