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

les PICs



  1. #1
    narakphysics

    les PICs


    ------

    bonjour à tous
    pourquoi l'horloge fournie au PIC est pré divisée par 4??
    merci d'avance

    -----

  2. Publicité
  3. #2
    Lytharan

    Re : les PICs

    Si je me souvient bien c'est une question de fonctionnement interne. C'est 4 cycles pour une instructions de base, je crois bien.

  4. #3
    narakphysics

    Re : les PICs

    merci pour votre réponse
    Mais si on prend le 16F84, chaque instruction est exécutée en un seul cycle d'horloge, et pourtant il y a division par 4 de la fréquence???

  5. #4
    Lytharan

    Re : les PICs

    Oui un cycle interne mais il faut 4 cycles de l'oscillateur pour un cycle interne. Ca tu peux pas faire autrement. C'est qqch comme ça je peux pas exactement te dire pourquoi mais ça tourne dans cette idée. Peut-etre qqun a l'explication exacte. Au pire tu trouvera l'info dans la datascheet, mais faut prendre le temps de chercher, elle est pas petite

  6. #5
    gedonet

    Re : les PICs

    Bonjour
    Cela tient à l'architecture du pic.
    De memoire, dans le premier cycle, le "program counter" est incrementé, dans le second cycle l'instruction (le code) est lu dans la memoire flash, au cycle 3, l'instruction est executée et au cycle 4 le resultat est copié dans le/les registres concernés.
    Si au cycle 3, l'instruction est un saut, on doit modifier le "program counter" et donc cela prend 4 cycles de l'oscillateur.

    Gilles

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

    Re : les PICs

    merci pour vos réponses

  9. Publicité
  10. #7
    narakphysics

    Re : les PICs

    s'il vous plait,une autre quesion.
    dans n'importe quel programme dans MPLAB, au début (avant la main)il faut écrire un code .je voudrais savoir son signification :
    Code:
    ORG     0x000             
    		clrf    PCLATH           
      		goto    main             
    
    		ORG     0x004            
    		movwf   w_temp           
    		movf	STATUS,w          
    		movwf	status_temp       
    
    
    		movf    status_temp,w     
    		movwf	STATUS            
    		swapf   w_temp,f
    		swapf   w_temp,w          
    		retfie
    merci d'avance

  11. #8
    gedonet

    Re : les PICs

    Bonjour
    En premier le ORG 00 corespond au debut du programme dans le pic, c'est a dire que la premiere instruction qui suit ici: clrf PCLATH est la premiere instruction executé par le pic. Dans ton exemple on efface le registre PCLATH qui est le complement d'adresse pour le program counter en regle general cela ne sert à rien car PCLATH vaut 0 au demarrage ou sur un reset, mais comme des petits malins font des goto 00, une manoeuvre risquée si on ne la maitrise pas, on efface PCLATH par securité.

    Ensuite il y a le goto main pour aller au debut du programme ou de l'initialisation des registres.

    Ensuite on a ORG 4, c'est à cette adresse, que vient le programme en cas d'interruption. Dans les interruptions il faut sauvegarder w et STATUS pour récuperer ces deux registres à l'identique à la sortie de l'interruption. Pour plus d'informations sur les instructions de sauvegarde et de restitution des registres w et STATUS lire le cours part1 de Bigonoff.

    Gilles

  12. #9
    Lytharan

    Re : les PICs

    Je confirme les dires de gedonet, pour super résumé tu as :
    • 3 premières lignes : Initialisation ultra sommaire du PIC; puis il se rends a "main".
    • 4 suivantes : L'arrivée d'un interrupt (tu sauves le travail en cours).
    • L'espace blanc te permet de gérer les interrupt (ton propre code).
    • 5 dernières lignes : Sortie de l'interrupt (tu restitues le travail précédemment sauvé)

  13. #10
    Franck-026

    Re : les PICs

    Le blanc entre les sections permet surtout une bonne aeration du programme pour mieux arriver a le lire... Mais n'a aucune action sur le fonctionnement su soft ni du pic...
    Pour toutes les questions sur le fonctionnement, ne pas hesiter d'aller consulter wiki sur les architectures des µC et micropro... Et la datasheet devrait etre apprise "presque" par coeur pour debuter les grandes lignes des µC.
    Dernière modification par Franck-026 ; 06/10/2011 à 08h00.

  14. #11
    ftorama

    Re : les PICs

    Citation Envoyé par achrafkaran Voir le message
    bonjour à tous
    pourquoi l'horloge fournie au PIC est pré divisée par 4??
    merci d'avance
    Les PIC ont besoin de 4 cycles d'horloge pour effectuer une instruction. Evidemment, Microchip entretient le flou entre fréquence de l'horloge et fréquence réelle. Quand ils te présentent fièrement un PIC à 20MHz, c'est l'équivalent chez la plupart des concurrents modernes d'un micro à 5MHz.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  15. #12
    Lytharan

    Re : les PICs

    Citation Envoyé par Franck-026 Voir le message
    Le blanc entre les sections permet surtout une bonne aeration du programme pour mieux arriver a le lire... Mais n'a aucune action sur le fonctionnement su soft ni du pic...
    Oui, bon ca j'imagine que les gens qui font de la programmation le savent, si non... oulalala ! C'était une image pour dire que c'est a cet endroit que tu appelles ta sous routine de gestion d'interrupt

    Si non les PIC sont pratique, peu chère, versatile mais c'est de loin pas de bêtes de calcules Moi je les apprécient, ils sont très bien pour la gestion de systèmes simples (BMS, commande moteurs, électronique de puissance, affichage simple,...). Si on veux du plus puissante faut se tourner vers les STM32 par exemple.

  16. Publicité
  17. #13
    Franck-026

    Re : les PICs

    non c'est pas sur les espacements que tu appelle ta routine d'interruption. La routine s'invite des qu'il y a interruption, et a toi de gerer l'interruption pour ne pas mettre le waï dans le programme...

  18. #14
    tayak

    Re : les PICs

    Bonjour,

    Citation Envoyé par ftorama Voir le message
    Les PIC ont besoin de 4 cycles d'horloge pour effectuer une instruction.
    Vrai

    Citation Envoyé par ftorama Voir le message
    Evidemment, Microchip entretient le flou entre fréquence de l'horloge et fréquence réelle. Quand ils te présentent fièrement un PIC à 20MHz, c'est l'équivalent chez la plupart des concurrents modernes d'un micro à 5MHz.
    Ce serait vrai s'il n'y avait pas d'overlapping.

  19. #15
    Franck-026

    Re : les PICs

    Ce que dit Fto est vrai, a vitesse d'oscillateur egale, les PIC sont 4 fois moins rapides en terme de vitesse d'execution que d'autres familles de µC. Et les PLL sont là pour essayer de corriger ce probleme autant que faire se peut...

  20. #16
    tayak

    Re : les PICs

    Je ne veux pas trop m'engager dans ce type de discussion quand on sait comment cela dégénère habituellement et je précise d'ailleurs que je ne suis pas plus (ni moins) attaché aux PICs qu'à d'autres familles de microprocesseurs.

    Néanmoins, et sans aucun esprit de polémique, j'aimerai savoir ce que vous entendez par "vitesse d'exécution". S'agit-il de la vitesse d'execution d'une instruction et dans ce cas ce que vous dites est exact, ou bien s'agit-il du débit du flot d'instructions et dans ce cas l'overlapping change la donne ?

  21. #17
    Aurélien

    Re : les PICs

    Juste pour éviter de généraliser, certains PIC ne font que diviser la clock par deux (PIC24 par exemple).
    Après, le flou, il est la pour ceux qui ne veulent pas regarder, ou pour ceux qui ne se fient qu'à la fréquence...

    Aurélien

  22. #18
    ftorama

    Re : les PICs

    Citation Envoyé par tayak Voir le message
    Ce serait vrai s'il n'y avait pas d'overlapping.
    Rien à voir....
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  23. Publicité
  24. #19
    ftorama

    Re : les PICs

    Citation Envoyé par tayak Voir le message
    Je ne veux pas trop m'engager dans ce type de discussion quand on sait comment cela dégénère habituellement et je précise d'ailleurs que je ne suis pas plus (ni moins) attaché aux PICs qu'à d'autres familles de microprocesseurs.

    Néanmoins, et sans aucun esprit de polémique, j'aimerai savoir ce que vous entendez par "vitesse d'exécution". S'agit-il de la vitesse d'execution d'une instruction et dans ce cas ce que vous dites est exact, ou bien s'agit-il du débit du flot d'instructions et dans ce cas l'overlapping change la donne ?
    Avec des chiffres, seuls ceux qui veulent polémiquer le veulent. Perso je me contente de faits.
    En gros, la valeur du quartz ne donne quasiment jamais la vitesse d'exécution du code (sauf peut-être sur AVR).

    L'overlapping ne change pas la donne puisque les voisins sont aussi équipés d'une pipeline.

    @aurelien j'allais faire la remarque donc:
    PIC <18: 4 cycles par instruction
    PIC18: 4 cycles par instruction aussi, avec une PLL pour multiplier la fréquence d'horloge
    PIC24: 2 cycles par instruction
    AVR: 1 cycle par instruction
    8051: 10-12 cycles par instruction, mais on en trouve des modernes à 1 cycle par instruction
    68hc08: 3-4 cycles par instruction en moyenne

    Mais il faut aussi prendre en compte la pertinence de l'assembleur (combien d'instructions prend finalement une opération simple) ou les besoins d'opérations internes (changements de banks mémoire, etc) qui ralentissent encore les performances globales....
    Dernière modification par ftorama ; 06/10/2011 à 09h58.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  25. #20
    Tropique

    Re : les PICs

    Un avertissement à tous les participants à cette discussion: au moindre dérapage, elle sera fermée.
    Pas de complexes: je suis comme toi. Juste mieux.

  26. #21
    Franck-026

    Re : les PICs

    pour rester simple, un PIC a 4MHz pourra avoir 1 milions d'instructions par secondes, contre 4 milions pour d'autres types de µC qui n'ont pas le probleme des PICS.
    Je n'aborde pas volontairement le cas des instructions necessitant 2 cycles machine...

    Et je pense avoir ete clair sur le pourquoi du comment, et je redis que chacun utilise le type de µC qu'il veut, tant qu'il en maitrise un mieux que les autres... ou si une famille de µC est specialisee dans un usage specifique

  27. #22
    tayak

    Re : les PICs

    Pourquoi l'overlapping des PICs est-il différent de celui des AVR ? Est-ce que le signal d'horloge des AVR est divisé par 4 et que le Fetch de la seconde instruction intervient 1/4 de signal d'horloge après le Fetch de l'instruction précédente ?
    Merci de bien vouloir éclairer ma lanterne.

  28. #23
    ftorama

    Re : les PICs

    Citation Envoyé par tayak Voir le message
    Pourquoi l'overlapping des PICs est-il différent de celui des AVR ? Est-ce que le signal d'horloge des AVR est divisé par 4 et que le Fetch de la seconde instruction intervient 1/4 de signal d'horloge après le Fetch de l'instruction précédente ?
    Merci de bien vouloir éclairer ma lanterne.
    Je ne connais pas les archis en détail (ça fait certainement partie de leurs secrets industriels), mais les faits sont là. Il ne faut pas oublier que la structure interne des PIC jusqu'à la série 18 commence à dater sérieusement (fin des années 80 si je ne m'abuse) et 4 temps de cycle par instruction n'était pas si mal à l'époque.

    Mais pendant que Microchip restait bloquée à ces timings, la concurrence s'est développée et les micros à 1 temps de cycle sont apparus.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Sur le même thème :

Discussions similaires

  1. Se lancer dans les pics
    Par thomp32 dans le forum Électronique
    Réponses: 16
    Dernier message: 07/07/2010, 14h06
  2. Réponses: 14
    Dernier message: 23/12/2009, 11h58
  3. On connaissait les pics d'hiver...
    Par Tsiledjé dans le forum Environnement, développement durable et écologie
    Réponses: 29
    Dernier message: 07/06/2008, 14h17
  4. Questions sur les PICs
    Par v.vieux dans le forum Électronique
    Réponses: 3
    Dernier message: 12/06/2006, 21h24
  5. Apprendre les pics!!
    Par marc.suisse dans le forum Électronique
    Réponses: 6
    Dernier message: 16/01/2006, 20h48