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

Registres PCL PCLATH PIC.



  1. #1
    marc.suisse

    Registres PCL PCLATH PIC.


    ------

    Bonsoir Messieurs !

    De nouveau moi avec mon apprentissage des PICs , je pose beaucoup de questions , j'en suis désolé

    Mais au fur et à mesure de mon avancée dans le cours de BIGONOFF, j'aimerais être sûr de ne pas me tromper .

    Dans son cours , il dit ceci :


    Un processeur, quel qu’il soit est un composant qui exécute SEQUENTIELLEMENT une
    série d’INSTRUCTIONS organisées selon un ensemble appelé PROGRAMME.
    Il existe donc dans le processeur un SEQUENCEUR, c’est à dire un compteur qui permet
    de pointer sur la PROCHAINE instruction à exécuter. Ce séquenceur est appelé suivant les
    processeurs « compteur ordinal », « Pointeur de programme » etc. Dans le cas des PICs, il
    s’appelle PC, pour Program Counter. Le PC n’est pas accessible directement par l’utilisateur.
    Le principe de base est toujours le même. Dans les PICs, les registres ne font que 8 bits,
    on ne peut donc stocker qu’une adresse maximale de 255. Il faudra donc 2 registres pour
    accéder à une adresse. Les PICs ont un fonctionnement un peu particulier à ce sujet.
    Nous trouvons tout d’abord un registre qui contient l’adresse basse du PC, c’est à dire les
    8 bits de poids faibles. Ce registre est accessible en lecture et en écriture. Il est appelé PCL
    (PC Low)

    Si je comprends bien , le séquenceur pour pointer sur la prochaine instructions , doit connaître son " adresse " et comme la chose suivante :

    La mémoire programme est constituée de 1K mots de 14 bits. C’est dans cette zone que
    vous allez écrire votre programme. Ceci explique pourquoi vos fichiers sur PC font 2Kbytes

    Cela vient de là donc , que les 8 bits ne suffisent pas ??

    Ou alors à cause de ça :

    Le PC complet étant codé sur 13 bits.

    J'avoue patauger dans la semoule là

    -----

  2. Publicité
  3. #2
    Invité

    Re : Registres PCL PCLATH PIC.

    Citation Envoyé par marc.suisse Voir le message
    La mémoire programme est constituée de 1K mots de 14 bits. C’est dans cette zone que
    vous allez écrire votre programme. Ceci explique pourquoi vos fichiers sur PC font 2Kbytes

    Cela vient de là donc , que les 8 bits ne suffisent pas ??

    Ou alors à cause de ça :

    Le PC complet étant codé sur 13 bits.

    J'avoue patauger dans la semoule là
    Hello,

    concernant l'espace d'adressage programme des pic16 :

    le pic de l'exemple a 1Kmots de ROM pour le programme, soit 1024 mots.
    pour coder 1024 en binaire il faut 10 bits : 2 puissance 10 = 1024.
    le pic étant une architecture de registres de 8 bits, pour accéder à l'espace ROM entier il faut donc un registre de 8 bits qui s'appelle PCL plus des bits supplémentaires qui sont dans le registre PCLATH.
    l'adresse complète PC est formée par PCLATH (bits de poids forts) concaténé à PCL (bits de poids faibles).
    le registre PCLATH comprend 5 bits, PC complet est donc formé de 5 + 8 = 13 bits, dont seulement 10 sont utilisés dans le pic de l'exemple (les trois bits inutilisés servent à adresser des mémoires plus importantes sur d'autres pics).
    la mémoire est donc paginée, car seul PCL est géré par le hardware du pic, et PCLATH doit être géré par le programmeur avant d'utiliser une instruction qui utilise le PC complet (comme un CALL ou un GOTO par exemple) afin de désigner la bonne page de destination.

    concernant maintenant le contenu de la mémoire programme :

    les instructions du PIC sont codées sur 14 bits, la mémoire ROM est donc constituée de mots de 14 bits (alors que sa mémoire RAM et ses registres sont constitués de mots de 8 bits).

    étant donné qu'un PC est basé sur des mots de 8 bits, les mots de 14 bits d'un pic nécessitent pour leur stockage sur PC deux mots (soit 16 bits) dont deux bits sont inutilisés.

    ça semble compliqué à expliquer mais en fait c'est extremement simple et rustique. tout est dit en quelques lignes dans la doc du pic, dont il faut absolument disposer : elle est irremplaçable.

    pour simplifier : ton programme ne peut accéder qu'aux 256 octets d'une même page de code, sauf si tu désigne explicitement une nouvelle page de code avec PCLATH.

    A+,

    Bruno

  4. #3
    Pr Shadoko

    Re : Registres PCL PCLATH PIC.

    D'ailleurs, pour toi qui potasses les cours de Bigonoff (excellents), il prend la peine de bien tout expliquer et il t'a même pondu des macros pour gérer la pagination.
    Je ne sais plus si c'est dans la partie 1 ou 2 de son cours.
    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème !

  5. #4
    invite76a

    Re : Registres PCL PCLATH PIC.

    Citation Envoyé par brunog Voir le message
    Hello,

    concernant l'espace d'adressage programme des pic16 :

    le pic de l'exemple a 1Kmots de ROM pour le programme, soit 1024 mots.
    pour coder 1024 en binaire il faut 10 bits : 2 puissance 10 = 1024.
    le pic étant une architecture de registres de 8 bits, pour accéder à l'espace ROM entier il faut donc un registre de 8 bits qui s'appelle PCL plus des bits supplémentaires qui sont dans le registre PCLATH.
    l'adresse complète PC est formée par PCLATH (bits de poids forts) concaténé à PCL (bits de poids faibles).
    le registre PCLATH comprend 5 bits, PC complet est donc formé de 5 + 8 = 13 bits, dont seulement 10 sont utilisés dans le pic de l'exemple (les trois bits inutilisés servent à adresser des mémoires plus importantes sur d'autres pics).
    la mémoire est donc paginée, car seul PCL est géré par le hardware du pic, et PCLATH doit être géré par le programmeur avant d'utiliser une instruction qui utilise le PC complet (comme un CALL ou un GOTO par exemple) afin de désigner la bonne page de destination.

    concernant maintenant le contenu de la mémoire programme :

    les instructions du PIC sont codées sur 14 bits, la .....

    Bruno
    Il y a en effet de quoi patauger dans la semoule.

    Mais cette semoule est spécifique à microchip, avec les pics16F.
    Sur les µC "normaux", une donnée, c'est 8 bits et une adresse 16 bits (et pas entre 7 et 13)
    http://forums.futura-sciences.com/thread67725.html

    th.

  6. #5
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    Bonjour,

    Le PC n'est pas accessible directement comme il a été dit,
    Mais le PCL lui est accessible adresse (RAM 2).
    PCL = 8 bits bas du PC.
    PCLATH + PCL = PC
    Le PC est donc accessible indirectement grace à 2 registres.

    D'ailleurs il faut définir le concept de saut court et saut long.
    Un saut court sans modif du PCLATH.
    Un saut long avec modif du PCLATH.
    J'entend par saut GOTO ou CALL ou opération sur PCL.

    Il existe aussi les instructions par raport au PC

    exemple:
    movlw 4
    addwf PCL
    ;saut de 4 pas de programme.

    Généralement utilisé pour faire une table de saut.
    Limiter je précise à la taille d'un octet -1 soit 255-1=254 saut possible , -1 car la ligne de code addwf PCL , est contenu dans cette table.

    la particularité de ce genre de sauts est qu'il s'agit toujours de saut long car le PCL n'a que 8 bits donc les 5 bits manquant son pris dans PCLATH.
    Pour un GOTO ou CALL seul 2 bits son pris dans PCLATH, les 3 autres, étant donné dans l'adresse de destination de l'instruction.



    La particularité de Microchip des sauts longs est que le PCLATH lors d'un return, qui lui retourne l'adresse complète , ne modifie pas le PCLATH.
    Ce qui oblige lors du retour après le call de remettre à jour le PCLATH si des sauts courts sont exécutés.
    C'est un peu lourd, et l'on risque de s'y perdre parfois.
    La méthode "bourrin" serait de spécifier à chaque fois le PCLATH , à chaque fois qu'une instruction l'utilise.
    La méthode "élégante" serait de bien gérer ce fameux PCLATH à bonne escient.

    Bon courage.

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

    Re : Registres PCL PCLATH PIC.

    Bonjour,

    http://forums.futura-sciences.com/thread67725.html
    La discussion sur Microchip est fort interessante et ce qui a été dit est pratiquement vrai à 100% pour les arguments négatifs et postifs

    Personnellement ce qui m'a fait choisir Microchip , alors que j'ai fait du Rockwell, Intel, Motorola , Texas , etc..

    1) La doc exeptionnelle et complète et gratuite, quasiment sans aucune erreur.
    2) Les circuits reprogrammables Flash
    3) La taille des composants 8 broches cms 5mm/5mm, Aucun concurent faisait ça à l'époque.
    4) Le prix des composants.
    5) La distribution, on en trouve partout.


    Ces 5 points fort font que les autres concurents ne conviennent pas vraiment à ce que j'attend.


    Les points faibles.
    Quand on vient de la prog de Motorola, la prog Microchip est une prog d'"Extra terrestre".
    La lourdeur de certaines manips , bank , saut sont vraiment découragentes.
    Les bus séparès, pas de stack.


    Il faut essayer de comprendre pourquoi les Microchip sont fait ainsi.
    Les buts d'origes;
    Un processeur simple et rapide. avec peu d'instruction donc RISK.
    Un processeur orienté nano-application ne dépassant guère les 512 octets.
    Les 35 instructions font que le processeur est petit la puce en elle mème est assez simple comparé aux monstres d'Intel, donc cout moins élevé de dévelopement
    Le fait de choisir si peu d'instruction , donne la possibilité de mettre du data dans le code.
    Ainsi un chargement immediat de W prend 1 seule instruction et 1 seule ligne, l'accés au registre.
    Une fonction de transfert simple d'un bus vers un autre par exemple, prend un minimum d'instruction, et donc utilise la vitesse maximum disponible par le chip.

    Cela était des qualités au départ.
    Lorsque la puce était minuscule.


    le fait de mettre une protection de lecture du code.
    Assure le client des royalties de son travail de développement.
    La séparation des Bus étant une des raisons de ce choix.
    De plus la taille modeste augmente sa fiabilité et sa solidité, le nombre de bugs résidents , comme dans tous µp est surement inférieur à ceux d'Intel et Motorola.
    Le chip est aussi d'une solidité électrique déconcertante.
    Microchip a un tendance à sous éstimé ses produits volontairement.
    Ce qui en fait une qualité quasi militaire.

    Mais Microchip devient victime de son succès.
    La reussite des petit µc , a fait que les produits ont évolués vers le haut, se mesurant ainsi au µp standard.
    Les avantages du débuts deviennent alors inconvenients.
    La limitation en RAM est contourné par la création de Bank.
    La limitation en Prog est contourné par la création de PCLATH.
    Cela ressemble un peu à de la bidouille...
    Mais la philosophie Microchip est sans doute des petites procédures tournant presque indépendemment.
    Mais l'usage nous prouve que ce n'est pas vraiment si facile, et la programmation sous Microchip d'application plus grosse relève un peu du cauchemard.
    La programmation était prévu au départ en assembleur, la complexité augmentant le language de développement à tendance à devenir le C.
    Language C basé sur la pile Data, inexistante en Microchip, la programmation devient du surréalisme...

    N'empèche que les points forts font que je m'accomode des points faibles faute de mieux.
    Dernière modification par freepicbasic ; 26/08/2006 à 11h10.

  9. Publicité
  10. #7
    DavidDB

    Re : Registres PCL PCLATH PIC.

    Salut,

    La réponse de Brunog est complète et précise...

    Mais cette semoule est spécifique à microchip, avec les pics16F.
    Sur les µC "normaux", une donnée, c'est 8 bits et une adresse 16 bits (et pas entre 7 et 13)
    Je te rappel que PCL est un registre 8bits et PCLATH est aussi un registre 8bits...

    Donc au niveau du programmeur on travaille sur 16bits pour l'adressage; seulement, dans le registre PCLATH une partie des bits de poids fort reste à zéro en fonction de la grandeur/longueur de la mémoire programme.

    David.

  11. #8
    invite76a

    Re : Registres PCL PCLATH PIC.

    Citation Envoyé par freepicbasic Voir le message
    Bonjour,

    Mais l'usage nous prouve que ce n'est pas vraiment si facile, et la programmation sous Microchip d'application plus grosse relève un peu du cauchemard.
    La programmation était prévu au départ en assembleur, la complexité augmentant le language de développement à tendance à devenir le C.
    Language C basé sur la pile Data, inexistante en Microchip, la programmation devient du surréalisme...

    N'empèche que les points forts font que je m'accomode des points faibles faute de mieux.
    J'approuve à 100% l'analyse de Freepicbasic( et au passage, félicitations pour le compilateur), qui confirme bien que les pics 16F sont très loin d'être un choix idéal pour un amateur (débutant).
    Mais justifier ce choix pour des raisons historiques est loin d'être valable... c'est comme si on achetait un PC IBM sous DOS avec 640K pour débuter en informatique parceque c'est IBM qui a été le premier...

    Je ne suis pas d'accord avec le "faute de mieux", il suffit d'aller voir chez d'autre fabricants (ATMEL, FRESCALE, RENESAS, SILABS, PHILLIPS, etc, etc).
    Actuellement, tous proposent des samples, des IDE gratuits, ..

    thm

  12. #9
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    Je ne suis pas d'accord avec le "faute de mieux", il suffit d'aller voir chez d'autre fabricants (ATMEL, FRESCALE, RENESAS, SILABS, PHILLIPS, etc, etc).
    existe t il des équavalents des version Pic12Fxxx 8 broches et Pic10fxxx 6 broches ?
    et aux prix équivalent bien sur !
    Et surtout peut on télécharger la doc.
    Je cherche toujours une doc complète d'Atmel , avec aussi la partie programmteur de chip.
    tout lien sera le bien venu.

  13. #10
    invite76a

    Re : Registres PCL PCLATH PIC.

    Re-bonjour,

    La version "low-end" 8 pattes des HC908 est la série "QT" ou mieux, "QB"
    http://www.freescale.com/webapp/sps/...de=68HC908QT4A
    http://www.freescale.com/webapp/sps/...?code=MC908QB8
    en SOIC, il fait également 5x5 mm.

    Egalement, pour la famille HCS08 , il y a le MC9S0QG8
    http://www.freescale.com/webapp/sps/...code=MC9S08QG8
    Les HCS08 sont plus puissants, mais il faut une interface spéciale (POD BDM) pour les programmer/debugger.

    Ces 8 pattes on tous le même CPU de la famille HC08 (avec des instructions de multiplication et division).

    th.

  14. #11
    Invité

    Re : Registres PCL PCLATH PIC.

    Hello,

    Il ne faut pas être rebuté par une architecture RISC comme celle du pic, ni effrayé par des longueurs de mot inhabituels, ou par des gestions sophistiquées de pages mémoire : ces difficultés sont réservées à ceux qui compilent leur programme à la main ou qui écrivent des langages.
    N'importe quel bon compilateur ou assembleur se chargera de gérer le bas niveau, afin que le programmeur puisse se concentrer uniquement sur la fonction qu'il désire réaliser.

    Bruno

  15. #12
    marc.suisse

    Re : Registres PCL PCLATH PIC.

    Bonjour Messieurs et encore merci de vos très nombreuses réponses , plus que j'en demandais

    Je vais essayer de résumer , pour être sûr d'avoir bien compris :

    Alors , un PIC travaille avec un jeux de 35 instructions.

    La mémoire programme à une capacité de 1KMot , c'est à dire 1024 mots.

    Un mot = 1 instruction

    Cela veut dire qu'on peut mettre 1024 instructions à la suite dans un programme.

    Pour le PC ( avec seulement le registre PCL ), pour pouvoir pointer sur la prochaine
    instruction , doit connaitre sa position dans les 1024 instructions , donc il doit connaître son adresse .

    Comme avec 8 bits , on peut aller que jusqu'au nombre 255, cela veut dire , qu'on ne peut accéder qu'à la 255ème instructions , donc pour aller plus loin , on a besoin de plus de bits , qu'on prendra dans le registre PCLATH.

    Donc pour résumer , si on doit faire un saut dans le programme , par exemple pour aller de la ligne 3 à la ligne 300 , il faudrat utiliser les 2 registres .

    Après , un truc que je comprends peut être un peu moins :

    Après avoir été chercher cette adresse , par exemple la ligne 300 , il faut bien stocker les données de cette ligne 300 , comme une instruction est codée sur 14 bits , on ne peut pas stocker une instruction de 14 bits , dans un registre de 8 bits , donc c'est pour ça qu'on utilise les 2 registres PCL et PCLATH.

    Donc en fait , les 2 registres servent à pointer sur l'instruction demandée et d'en stocker la valeur .


    Mon résumé tient la route , ou alors je continue à patauger dans la semoule ??

  16. Publicité
  17. #13
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    Il y a encore des confusions.
    Le pic possede des bus séparés adresse et data !
    Le bus data est sur 8 bits
    Le bus programme sur 14 bits pour le 16F84

    Le µp "standard" utilise le meme bus pour le prog et le data
    Cela signifie qu'une instructruction du genre "lda #10" de Motorola se fera sur 2 octets (voire plus) 1 octets de code plus 1 de data immédiate.
    Soit 2 lignes

    Microchip à décider d'utiliser un bus de code plus large ce qui permet de libérer 8 à 12 bits pour mettre une data dans le code.
    Movlw 0x10 s'écrit sur une ligne (8 bits de data, 6 de code)
    Goto 0x0180 s'écrit sur une ligne (12 bits d'adresse, 2 de code)


    Ne pas confondre le code et l'adresse.
    Le bus code est invisible sur Microchip (protection accru contre la copie ), contrairement à Motorola ou le bus data voit passer le code.
    Le fait d'avoir 2 registres pour PC correspond a la longueur possible de prog (1024 pour le 16F84) pas au code qui lui est inacessible ... (sauf pour le µp, bien sur)
    Dernière modification par freepicbasic ; 27/08/2006 à 15h35.

  18. #14
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    j'ai chargé la doc !
    http://www.freescale.com/webapp/sps/...=68HC908Q T4A

    je reprend les point fort de Microchip
    1) La doc exeptionnelle et complète et gratuite, quasiment sans aucune erreur.
    Le datasheet semble comparable au point de vue qualité!
    La doc pour faire un programmateur , je ne l'ai pas trouvé !
    La méthode de programmation parle du bit PGM qui se trouve en interne sur un registre.
    Il s'agit d'une programmation par soft en interne.
    Comment programme t on du PC ?


    2) Les circuits reprogrammables Flash
    Ok, tecnologie comparable , je n'ai pas vu indiquer le nombre d'écriture (j'ai regardé rapidement aussi ...)

    3) La taille des composants 8 broches cms 5mm/5mm, Aucun concurent faisait ça à l'époque.
    OK pareil !


    4) Le prix des composants.
    Comparables bien que un peu plus cher.

    5) La distribution, on en trouve partout.
    Alors là ! 0 pointer.
    Impossible de trouver un prix avec Google.
    Le seul prix trouvé sur un site Asiatique 1.30$ par 1000

    Le processeur semble sympa.
    Quoique gourmand en octets de code et cycles d'instructions.

    Reste donc 2 points ,
    Comment faire un programmateur (hardet soft) ?
    ça devrais se trouver ...
    Comment s'en procurer ?
    Sincèrement je me vois pas en commander 1000 aux US.
    Dernière modification par freepicbasic ; 27/08/2006 à 15h49.

  19. #15
    Invité

    Re : Registres PCL PCLATH PIC.

    Citation Envoyé par marc.suisse Voir le message
    Alors , un PIC travaille avec un jeux de 35 instructions.
    pour les PICs de la famille P12 et P16 oui, il y a plus d'instructions sur les P18 (environ 80)

    Citation Envoyé par marc.suisse Voir le message
    Un mot = 1 instruction

    Cela veut dire qu'on peut mettre 1024 instructions à la suite dans un programme.
    en gros c'est ça, sauf que certaines instructions de la famille PIC18 sont codées sur deux mots

    Citation Envoyé par marc.suisse Voir le message
    Après avoir été chercher cette adresse , par exemple la ligne 300 , il faut bien stocker les données de cette ligne 300 , comme une instruction est codée sur 14 bits , on ne peut pas stocker une instruction de 14 bits , dans un registre de 8 bits , donc c'est pour ça qu'on utilise les 2 registres PCL et PCLATH.

    Donc en fait , les 2 registres servent à pointer sur l'instruction demandée et d'en stocker la valeur .
    Non, juste à pointer sur l'instruction pour la charger dans des registres internes du PIC, en vue de son décodage et de son exécution. ces registres internes ne sont pas accessibles.
    Cette opération est faite en quatre cycles d'horloge, ce qui explique qu'un PIC avec un quartz à 20 Mhz par exemple exécutera 5 millions d'instructions par seconde (5 MIPS).

    A+,

    Bruno

  20. #16
    invite76a

    Re : Registres PCL PCLATH PIC.

    Bonjour, Freepicbasic

    Citation Envoyé par freepicbasic Voir le message
    j'ai chargé la doc !
    http://www.freescale.com/webapp/sps/...=68HC908Q T4A

    je reprend les point fort de Microchip
    1) La doc exeptionnelle et complète et gratuite, quasiment sans aucune erreur.
    Le datasheet semble comparable au point de vue qualité!
    La doc pour faire un programmateur , je ne l'ai pas trouvé !
    La méthode de programmation parle du bit PGM qui se trouve en interne sur un registre.
    Il s'agit d'une programmation par soft en interne.
    Comment programme t on du PC ?
    Je ne connais pas ce bit pgm. Les HC908 contiennent en rom un programme "moniteur" (monitor) qui gère entre autres l'écriture-effecement de secteurs de flash, la communication série sur un fil, etc.. Pour que le µC démarre en mode moniteur, il faut que certaines pin soient à un certain niveau après un reset.
    La prgragrammation/debug s'effectue en mode série par communication avec le "moniteur". C'est décrit dans la partie "development support - Monitor module" de la datasheet.Tout ceci est parfaitement transparent pour l'utilisateur.
    Concrètement, le principe de programmation des hc908 ainsi que plusieurs programmateurs/debugers (8 eur le - cher) sont décrits sur www.68hc08.net.
    Quant aux logiciels PC de programmation/debug/simulation il y existe, principalement (pour ceux que je connais) :
    - ICS08 de P&E micro (uniquement assembleur), téléchargeable sur le site www.pemicro.com
    - CodeWarrior pour HC(S)08, IDE de haut niveau (300Mo) téléchargeable sur le site de Freescale, gratuit dans sa version "Special Edition", illimitée en assembleur et limité à 16K code objet en C. (Ce qui de toutes façons représente 3x plus que ce que l'on ne pourra jamais mettre dans un PIC 16F)
    Il existe d'autres compilteur/assembleurs que je ne connais pas (SDCC, ICC08, ...)


    3) La taille des composants 8 broches cms 5mm/5mm, Aucun concurent faisait ça à l'époque.
    OK pareil !
    Si l'on recherche petit, il y a des versions QFN de 4x4 mm et aussi, à noter que beaucoup de HC908 existent en boitier QFP 7x7mm avec 32 pattes

    5) La distribution, on en trouve partout.
    Alors là ! 0 pointer.
    Impossible de trouver un prix avec Google.
    Le seul prix trouvé sur un site Asiatique 1.30$ par 1000

    Le processeur semble sympa.
    Quoique gourmand en octets de code et cycles d'instructions.

    Reste donc 2 points ,
    Comment faire un programmateur (hardet soft) ?
    ça devrais se trouver ...
    Comment s'en procurer ?
    Sincèrement je me vois pas en commander 1000 aux US.
    Oui, je n'ai jamais nié qu'il ne se trouvera (probablement pas chez le revendeur du coin. Je m'en procure personnellement :
    - Chez Gotronic (pas sur le catalogue mais il faut faire la demande par mail
    - Farnell
    - Digikey
    - Radiospares
    - Electronique diffusion (cher)
    - Il y en a aussi un modèle chez Conrad (cher)
    Et naturellement, ils peuvent être commandés directement sur le site de Freescale et sont également disponibles gratuitement (et qui arrivent en moins d'une semaine) en samples.

    Le "gourmand en nombre d'octets et cycles d'intruction" est bien sûr à relativiser. J'avais démontré dans la discussion "FAQ" que le RISC 16F prenait au moins 2 deux fois plus de mémoire programme et était, au moins deux fois plus lent que le hc908 pour effectuer la même chose.
    "LDA" par exemple prend de 1 à 3 octets mémoire et s'effectue en 2 à 5 cycles suivant l'un des 8 modes d'adressages possibles. Le plus sophistiqué,celui prenant 5 cycles, à savoir l'adressage indexé sur le pointeur de pile avec déplacement 16 bits n'est ... tout simplement pas possible sur un PIC16F) mais il exite bien sur le HC908 8 pattes de 5x5mm.

    J'espère que cela répond aux questions

    th.

  21. #17
    invite76a

    Re : Registres PCL PCLATH PIC.

    Petit complément à mon post précédent: depuis le 1er juillet, les versions RoHs des MC68HC908xx s'appellent MC908xx.
    Le 68HC908QT4A est disponnible chez Farnell.fr sous la référence 1200536 pour le SOIC 8 pattes (MC908QT4ACDWE) à 2,21 eur; la version 2Kflash coute 1,82 eur (réf 1200534 - MC908QT2ACDWE).
    th.

  22. #18
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    [thm] Reponses excellentes

    J'ai charger le datasheet et le programmateur, il y a toute les infos apparement.
    Pour le site de soft c'est apparement un commerçant.
    Je cherche plutot les infos techniques.

    Le soft c'est mon truc, j'aime bien avoir mes propres outils.


    Si j'ai compris le programmteur ;
    Une tension de 9V sur la pin /IRQ (mode monitor)
    Un transmission 1 wire sur PA0 (alias PTA0)
    un quartz de 9,304Mhz (introuvable...) pour faire du 9600baud.

    cela implique pour une prog "in situe" de faire ressortir 3 fils plus alime (+5v facultatif)
    Et de commuter le quartz par un cavalier (j'aime pas !)
    et PA0 s'il est utiliser.


    pour les equivalences Microchip
    si tu connais les références d'équivalent pour les gammes 16F84 16F876 Pic18Fxxx

  23. Publicité
  24. #19
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    autre question comme tu as l'air de bien connaitre;

    En mode protection le debogueur est il ; OFF , et le monitor est il partiellement off aussi ?
    (je pense au piratage...)

  25. #20
    invite76a

    Re : Registres PCL PCLATH PIC.

    Re-bonjour,

    Des infos techniques détaillées sont données dans la datasheet et dans les très nombreuses notes AN de freescale. En fouillant un peu, on trouve tout. Par exemple AN2874 "Using the MC68HC908 ROM-Resident Routines",

    Les compilateurs/assembleurs que j'avais mentionnées sont 100% gratuits.
    Pour la programmation, c'est bien le principe, et en plus, il faut que certaines pins soient à un niveau donné. Une fois que le µC a "démarré" en mode moniteur, les pins peuvent être libéreés à l'exception de celle qui sert à la la com série (PTA0) et celle d'entrée de l'horloge. Oui, c'est vrai, c'est un peu lourd, mais cela offre un débug ICS et une programmation particulièrement performante. Il n'y a pas besoin d'enlever le quartz de l'appli, on peut "forcer" celui-ci à 9,8304 Mhz (voir www.le 68hc908.net , article "principe de programmation des 68HC908)

    C'est vrai que le Qz de 9,8304 Mhz n'est pas facile à trouver. Mais on peut prendre un 4,9152 Mhz (facile à trouver). Dans ce cas, pour certains µC, il faudra programmer à 4800 bauds, ou bien un oscillateur intégré format DIP8 ou DIP14.

    Freescale offre aussi un bootloader série (AN2295) - avec la source.

    Pour les "équivalents PIC" , je conseille de consulter la table http://www.freescale.com/files/micro...CIPRODMPFS.pdf

    A première vue, je dirais (c'est ceux que j'utilise)
    16F84 : familles QY, QB, KX, JL/JK
    16F876 : JL/JK, GP, GT
    18Fxxx : GP,AP, AB,
    mais j'en oublie sûrement

    La nouvelle famille HCS08 (MC9S08xx) est deux fois plus rapide que la HC908, mais elle se programme avec une interface spéciale appelée POD BDM, un peu l'équivalent de l'ICD2 de pic, et qui ne mobilise qu'un seul fil et est en USB. Il y a moyen d'en fabriquer des "maison" ( voir le sujet "BDM maison" sur le 68hc08.net ). Je n'ai pas encore expérimenté. A noter aussi que la majorité des MC9S08 fontionnent en 3,3V.

    Une bonne dépense à faire (50USD+port) est par exemple le kit de démonstration MC9S08QG8 : http://www.freescale.com/webapp/sps/...Code=MC9S08QG8
    qui comprend une interface BDM sur la carte, pouvant être utilisée pour programmer d'autres MC9S08.

    th.

  26. #21
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    Merci pour toutes ces infos

    A+
    pat

  27. #22
    invite76a

    Re : Registres PCL PCLATH PIC.

    Citation Envoyé par freepicbasic Voir le message
    autre question comme tu as l'air de bien connaitre;

    En mode protection le debogueur est il ; OFF , et le monitor est il partiellement off aussi ?
    (je pense au piratage...)
    Re, Non, il y a moyen de lancer le moniteur tout le temps.
    Pour la protection, il y a un code de sécurité généré automatiquement à chaque programmation sur 8 octets, calculé à partir du fichier HEX (.S19) sans lequel il est impossible de relire la flash. C'est très efficace.

    thierry

  28. #23
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    Re, Non, il y a moyen de lancer le moniteur tout le temps.
    Pour la protection, il y a un code de sécurité généré automatiquement à chaque programmation sur 8 octets, calculé à partir du fichier HEX (.S19) sans lequel il est impossible de relire la flash. C'est très efficace.
    le deboggueur permet de tracer le prog donc de lire tout la rom !
    avec un soft qui joue avec le pointeur , on lit tout ...

  29. #24
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    pas de réponse ?
    peut on debogguer une fois en mode protection ?
    et voir le code ligne par ligne...

  30. Publicité
  31. #25
    invite76a

    Re : Registres PCL PCLATH PIC.

    Bonsoir, freepicbasic.

    Non, il n'y a pas moyen de debogguer, car la première chose que fait le moniteur, c'est de contrôler le code de sécurité (8 octets) sans quoi on ne peut pas accéder à la flash (lecture/écriture, mais on peut toujours l'effacer).
    Ceci est illustré expliqué par le logigramme page 145 de la datasheet du QT4A.
    Je pars aussi sur l'hypothèse que les gens de freescale n'étant pas des amateurs, le problème a du être bien étudié.
    Il n'y a pase de mode protection et de mode "non protection", le code de sécurité est toujours demandé.

    th.

  32. #26
    freepicbasic

    Re : Registres PCL PCLATH PIC.

    ok , pour le debug donc la protection est ok !

    Il n'y a pase de mode protection et de mode "non protection", le code de sécurité est toujours demandé.
    Etonnant !
    J'ai cru voir dans la doc que la relecture était possible , pour la verification ça semble indispensable...
    Ils disaient aussi de ne pas reprogrammer une adresse déja programmée, je ne sais pas la raison , et les risques éventuels.

    Peut on programmer un bout de code sur un µc en protection?


    A+
    pat

  33. #27
    invite76a

    Re : Registres PCL PCLATH PIC.

    Bonjour, freepicbasic

    Comme expliqué, il n y a pas de mode "protection" ou de mode "non protection"ou de "fuse" de protection. Si l on veut rentrer en contact avec le µC via le moniteur, il faut TOUJOURS lui envoyer le code de sécurité pour "déverrouiller" la flash, dans tous les cas. Voir l image ci jointe.
    Ceci dit, c est géré d une manière transparente par l IDE (PC) qui retient et génère les codes.
    Donc si qqun récupère un µC programmé, si il n a pas le code de sécurité ou le S19, il ne saura rien faire.. sauf effacer toute la flash (option "ignore security failure" dans l image).

    Pour la deuxième question, je ne comprends pas de quoi il s'agit (ne pas reprogrammer une adresse déjà programmée ?)

    thierry
    Images attachées Images attachées

Sur le même thème :

Discussions similaires

  1. decrementation pcl 16f84
    Par meliokan dans le forum Électronique
    Réponses: 26
    Dernier message: 13/10/2007, 20h47
  2. registres
    Par bilou2007 dans le forum Électronique
    Réponses: 4
    Dernier message: 05/04/2007, 22h36
  3. pcl
    Par artelle dans le forum Physique
    Réponses: 6
    Dernier message: 23/02/2007, 12h43
  4. pcl
    Par artelle dans le forum Physique
    Réponses: 2
    Dernier message: 03/01/2007, 18h54
  5. Registres PIC
    Par Toufinet dans le forum Électronique
    Réponses: 2
    Dernier message: 23/05/2006, 23h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.