Problème configuration horloge interne PIC
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Problème configuration horloge interne PIC



  1. #1
    Temp22

    Problème configuration horloge interne PIC


    ------

    Bonjour,
    J'utilise un pic16f819. Le programme est cadencé par sa propre horloge interne, qui elle est configurée via le registre OSCCON. Je configure ce registre pour que la fréquence d'horloge soit de 4Mhz (réel, donc OSCCON=B'01100100'), j'utilise une routine mettant en oeuvre le timer0 avec un prédiviseur de 256 et une variable qui se décrémente de 61 à 0, pour fais en sorte d'avoir un clignotement de LED toutes les 1secondes, mais je m'aperçois en fait que la fréquence du PIC est divisé par 4. A en observer le clignotement de la LED, l'horloge est de 1Mhz réelle.

    J'aimerais avoir des explications, savoir si je configure bien le registre.

    Merci pour vos futures réponses.

    Datasheet 16F819 : http://oap.sourceforge.net/datasheets/PIC16F819.pdf
    Cours Bigonoff : http://www.abcelectronique.com/bigon...fd0c&fic=part1

    PS : La routine mettant en oeuvre le tmr0 utilise les mécanismes d'interruptions, repris dans le cours de bigonoff.
    En utilisant sa routine (qui elle est configurée pour obtenir 1 clignotement par seconde avec un quartz de 4Mhz MAIS prédivisé par 4) en prenant soin de mettre OSCCON à 4Mhz, j'obtiens un clignotement de led par seconde, ce qui n'est pas logique normalement, sachant que je n'ai pas la même horloge que lui....

    Pourquoi mon horloge est prédivisée par 4, je ne vois rien l'indiquant dans la datasheet.

    -----

  2. #2
    thundertom

    Re : Problème configuration horloge interne PIC

    Salut,
    en faite les PIC travail à la fréquence d'horloge divisé par 4. Leur architecture leur impose qu'il faille 4 coup de clock pour effectuer une instruction. Donc quartz à 4Mhz ou horloge interne à 4Mhz..pas de différence fréquence d'exécution = 1Mhz.

    De plus si tu regarde le bloc TIMER0 dans ta datasheet, tu véras que le clock du Timer0 est la fréquence d'horloge divisé par 4. (voir pièce jointe)
    Images attachées Images attachées  
    Fabricando fit faber

  3. #3
    Temp22

    [Résolu] Problème configuration horloge interne PIC

    Voilà qui me rassure, merci pour ces précisions, je pensais que la prédivision était effective que pour les clock externe. Merci thundertom.

  4. #4
    Temp22

    Re : [Résolu] Problème configuration horloge interne PIC

    Je pensais que l'architecture des PIC était de type RISC, et comme énoncé dans le cour de bigonoff, un seul cycle d'horloge suffit à éxecuter la plupart des instructions (sauf sauts, etc). Du coup, ça m'est un peu confu...

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

    Re : [Résolu] Problème configuration horloge interne PIC

    Oui excuse moi je me suis mal exprimé. L'instruction est en effet effectuée en un seul cycle d'horloge. Mais le PIC à chaque instruction à 4 chose à faire, je me rappel plus exactement, mais c'est du style:
    - Lire l'instruction
    - Exécuter l'instruction
    - ...
    - Incrémenter le programme counter

    Je n'arrive plus à retrouver la procédure exacte dans la datasheet, mais je crois qu'elle y est
    Dernière modification par thundertom ; 11/05/2010 à 18h37.
    Fabricando fit faber

  7. #6
    kronanberg

    Re : [Résolu] Problème configuration horloge interne PIC

    Salut !!

    Ben moi je pensais justement que l'instruction était exécuté en 4 cycles :
    => Lecture Instruction
    => Decodage de l'instruction
    => Execution
    => Rangement Resultat

    Et du coup le fait d'utiliser une architecture de type RISC ramenait pour le cas des PIC toutes les instructions à 4 cycles. Mais on reduit ainsi le jeu d'instruction (aux instructions les plus simples)

    Et qu'ensuite le but est de "pipeliner" tout ça pour augmenter la rapidité !!
    Y me semble que j'avais compris ça de mes cours architecture !!

    Mais il faudrait d'autres avis sur le sujet, je ne suis pas sur non plus de ce que je dis

  8. #7
    RISC

    Re : [Résolu] Problème configuration horloge interne PIC

    Salut,

    Les PIC ont une architecture RISC c'est à dire que la plupart des instructions s'effectuent en 1 cycle de la fréquence instruction Fcycle qui est :
    Fcycle = Fosc / 4 pour les PIC 8 bits (PIC10/12/16/18) et les dsPIC30
    Fcycle = Fosc / 2 pour les 16 bits (PIC24F/24H) et dsPIC33
    Fcycle = Fosc pour les PIC32

    Coté pipeline : tous les PIC ont un pipeline à 2 niveaux, sauf les PIC32 qui possèdent un pipeline à 5 niveaux.
    On ne peut rien faire de spécial. Le pipeline fonctionne en background et l'utilisateur ne peut pas influer dessus (cela ne présenterait d'ailleurs aucun intérêt).
    Si on regarde les TIMERs, je crois que la plupart des PICs peuvent utiliser en interne Fcycle comme fréquence max.

    Sur les PIC16 le TIMER1 fait 16 bits donc il permet de générer des tempos plus longues ;=)

    a+

  9. #8
    ftorama

    Re : Problème configuration horloge interne PIC

    J'avais déjà débattu du fait que les PIC sont des RISC ou non sur un autre sujet.

    Je persiste à dire qu'une horloge divisée par 4 montre bien que ce n'est pas une vraie archi RISC.

    Dans ce cas, je prends un 8051, je divise sa fréquence par 12, et le 8051 devient un RISC à 1/12ème de la fréquence externe, c'est ridicule et mensonger....

    Un microcontrôleur qui n'est pas capable de tourner au moins à la vitesse de son horloge externe, PLL désactivée, ne mérite pas l'appellation de RISC
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Discussions similaires

  1. horloge interne de PIC sous flowcode
    Par inviteaf4e6f31 dans le forum Électronique
    Réponses: 4
    Dernier message: 05/05/2010, 18h27
  2. Horloge interne PIC16f88
    Par Monpseudo dans le forum Électronique
    Réponses: 13
    Dernier message: 16/07/2009, 08h11
  3. Horloge interne
    Par invite65ebd984 dans le forum Psychologies (archives)
    Réponses: 0
    Dernier message: 04/01/2009, 10h58
  4. Problème de configuration PIC 18F4431
    Par invite469cf7a5 dans le forum Électronique
    Réponses: 2
    Dernier message: 21/05/2008, 21h23
  5. PIC 16F628-20, horloge interne 4 ou 20 Mhz
    Par maho dans le forum Électronique
    Réponses: 2
    Dernier message: 22/01/2005, 19h01
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...