Faire fonctionner un PIC18F252
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Faire fonctionner un PIC18F252



  1. #1
    inviteee2ce2b6

    Faire fonctionner un PIC18F252


    ------

    Bonjour à tous,


    Avant d'expliiter mon problème, je plante le décors:
    - Je suis débutant en µC et j'ai choisi de commencer par un PIC18F252 (je programme en C et la plupart des exemples utilisent ce modèle de µC)
    - Je me suis doté d'un programmateur VELLEMAN K8076 que j'utilise avec le fabuleux logiciel IC-Prog.
    - Je me suis rendu sur le site suivant : http://kudelsko.free.fr/prog_pic_rs232/soft2.htm car le fonctionnement du programmateur est similaire. J'ai donc voulu essayer le programme HEX fourni et j'ai réalisé le montage correspondant au shéma que je fourni ci-joint (idem dans le site).

    Mon problème, c'est que le PIC ne fonctionne pas , sauf si je touche (avec le doigt ou ma sonde d'oscillo, ...) la broche 10 de celui-ci .

    Quelqu'un peut-il me dire pourquoi et ce que je dois faire pour que corriger ce problème.


    Merci d'avance,

    Mikaël.

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

  2. #2
    f6bes

    Re : Faire fonctionner un PIC18F252

    Bjr Plat.....
    La broche 10 et (9) correspond à l'oscilllateur quartz du PIC.
    Apparemment le PIC n'oscille pas, sauf à toucher la broche 10 qui fait démarrer l'oscillateur.
    Probléme à ce niveau donc.
    Les valeurs des condos sont elles correctes ?
    Soudures séches , mal réalisées?
    Cordialement

  3. #3
    invite5637435c

    Re : Faire fonctionner un PIC18F252

    F6bes à raison, tu peux aussi mettre une résistance de 10K entre le MCRL et le + pour assurer un bon reset à ton µC, plutôt que de mettre un condo directement au +.

  4. #4
    inviteee2ce2b6

    Re : Faire fonctionner un PIC18F252

    Bonjour HULK28,

    Citation Envoyé par f6bes Voir le message
    Les valeurs des condos sont elles correctes ?
    Les condos font 23,8µF(au capacimètre)

    Citation Envoyé par f6bes Voir le message
    Soudures séches , mal réalisées
    Le montage est sur une plaque d'essai

    Par contre, et j'ai oublié de le préciser , je n'avais pas de 4MHz, j'ai mis un quartz 6MHZ(acheté récemment). Je voulais juste voir si le µC fonctionnait donc la fréquence n'a pas d'importance (pour moi) dans ce montage. Est-ce la cause du fait qu'il ne démarre pas ?

    Citation Envoyé par HULK28 Voir le message
    tu peux aussi mettre une résistance de 10K entre le MCRL et le + pour assurer un bon reset à ton µC, plutôt que de mettre un condo directement au +.
    A moins que je n'aie pas compris ce que tu dis , mais je ne vois pas où il y a un condo entre MCLR et le +5V, le seul condo (hors oscillateur) est le 100nF et il est entre le + et la masse.
    De plus, si je met une résistence de 10K entre le MCLR et le +5V, le µC ne fonctionne pas.

    Merci de votre aide,

    Mikaël

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

    Re : Faire fonctionner un PIC18F252

    Citation Envoyé par Platipu$ Voir le message
    Les condos font 23,8µF(au capacimètre)
    Si tu as réellement des condensateurs de 23,8 microFarads pour le quartz, il y a une erreur d'à peu près un facteur un million.
    Ces condensateurs devraient faire, à la louche, entre 15 et 33 picoFarads.

  7. #6
    inviteee2ce2b6

    Re : Faire fonctionner un PIC18F252

    Oups, désolé, je voulais écrire 23,8pF...
    je faisait autre chose en même temps.

  8. #7
    invite5637435c

    Re : Faire fonctionner un PIC18F252

    Le MCLR est la borne de reset et doit être reliée au +5V par une résistance de 10K, et un condo à la masse de 100nF pour que le µC soit correctement initialisé quelque soit le temps de monté de l'alim.
    Si le fusible de programmation a été déclaré en XT, le quartz de 6MHz ne pose pas de problème sauf peut-être pour ton programme si tu utilises des timings mais ce n'est pas boquant pour autant.
    Ensuite il faudrait voir ton programme si il est en état de démarrer "normalement".

  9. #8
    inviteee2ce2b6

    Angry Re : Faire fonctionner un PIC18F252

    Bonjour et merci de l'aide,

    J'utilise IC-Prog et que je programme en C avec SDCC.

    Voici le code pour essai:
    Code:
    #define __18F252
    #include <pic18F252.h>
    void main(void) {
    int i;
    TRISBbits.TRISB7=0;
    PORTBbits.RB7=0;
    while(1) {
              PORTBbits.RB7=1;
              for (i=0;i<10000;i++);
              PORTBbits.RB7=0;
              for (i=0;i<10000;i++);
              }
    }
    Comment déclarer le fusible de programmation en XT (ou en une autre config)

    J'ai essayé vos recommendations et toujours rien...
    Je poursuit mes recherches

    @+

  10. #9
    invite5637435c

    Re : Faire fonctionner un PIC18F252

    Ta led va s'allumer et s'éteindre tous les 6,6ms compte tenu que tu as un quartz de 6MHz et que ta boucle compte 10000, je doute qu'en effet tu vois quelque chose bouger...

    Augmente la condition de fin de boucle à par exemple 300000 en déclarant un long int pour i.
    Diminue la résistance de 470 Ohms à 150 Ohms.
    Ta led devrait normalement s'allumer à la fréquence de 5Hz.
    @+

  11. #10
    inviteee2ce2b6

    Re : Faire fonctionner un PIC18F252

    Bonjour HULK28,
    J'ai réalisé ce que tu me préconisais, mais toujours rien. Je me suis donc penché sur la question suivante : "comment configurer le PIC ?".
    J'ai trouvé un site qui donnait un exemple de code pour faire clignoter une led, mais qui contenait en plus des ligne de code pour programmer le pic (fréquence d'horloge, etc...), et maintenant ça marche. Par contre, lorsque je regarde la sortie sur mon oscillo, j'ai l'impression que le rapport cyclique n'est pas constent (-0 à +20%). Je copierais le code dès que je rentrerais chez moi (là je suis en déplacement).
    @+

  12. #11
    inviteee2ce2b6

    Question Re : Faire fonctionner un PIC18F252

    Me revoilou,

    J'ai conservé mon programme de base :
    Code:
    #define __18F252
    #include <pic18F252.h>
    void main(void) {
    int i;
    TRISBbits.TRISB7=0;
    PORTBbits.RB7=0;
    while(1) {
              PORTBbits.RB7=1;
              for (i=0;i<10000;i++);
              PORTBbits.RB7=0;
              for (i=0;i<10000;i++);
              }
    }
    J'ai donc une LED et une résistance en série sur la pate 28 du PIC, je scrute la sortie avec mon oscillo.
    Mais comme je l'ai dis plus haut, ça marchais pas !

    Je me suis donc inspiré d'un bout de code preésent sur le site suivant : http://sjeffroy.free.fr/Prog__PIC/SDCC/sdcc.html:
    Code:
    #define FOSC 10000000L
    Code char at __CONFIG1H _conf0 = _OSC_HS_PLL_1H & _OSCS_OFF_1H;
    Code char at __CONFIG2L _conf1 = _BODEN_OFF_2L & _PUT_ON_2L;
    Code char at __CONFIG2L _conf1 = _WDT_OFF_2H;
    Code char at __CONFIG2L _conf1 = _LVP_OFF_4L & _BACKBUG_OFF_4L & _STVR_OFF_4L;
    Maintenant, ça marche, le LED s'allume et j'ai un signal carré T=25ms sur l'oscillo.

    Cependant, je constate que la période n'est pas stable, à savoir qu'elle augmente par sursauts, passant parfois à 30ms.
    J'ai essayé sur un autre oscillo, mais même problème.
    Celà peut-il venir de ma sonde ?
    celà vient-il du compilateur/assembleur ?
    Du fait que le montage est sur une plaque lab ?

    De plus, je n'arrive pas à trouver la signification exacte de ces lignes de configuration , où puis-je trouver la liste exhaustive de ces codes, pour mieux comprendre comment configurer mon PIC ?

    Merci d'avance de votre aide.

  13. #12
    invite5637435c

    Re : Faire fonctionner un PIC18F252

    Tu utilises un quartz de 6MHz mais la directive donnée au µC est ici de 10MHz, il faut donc corrigé cette valeur à #define FOSC 6000000L.

    Les autres directives sont les fusibles de configuration dont tu trouveras les explications dans la datasheet du µC.

  14. #13
    inviteee2ce2b6

    Red face Re : Faire fonctionner un PIC18F252

    OK HULK28, erreur de débutant en effet
    Pour corriger, j'ai pris un quartz 10MHz, sans changer le code, ça revient au même...
    Pour les bits de config, j'arrive à trouver "CONFIG1H" et autres, mais pas par ex "_OSC_HS_PLL_1H".
    Après avoir bien lu la datasheet, j'arrive à comprendre ce qui est demandé dans le programme ci-dessus, mais je ne parviens pas à trouver comment la reconstruire.

    A par ça, mon problème de stabilité du temps de cycle semble être dû à la synchro de l'oscillo (sachant que c'est la seule application dans laquelle j'ai ce pb), mais je ne parviens pas à trouver la soluce....

Discussions similaires

  1. Néon d'écran plat. Comment le faire fonctionner ? ? ?
    Par invited107f9da dans le forum Électronique
    Réponses: 2
    Dernier message: 24/10/2007, 17h07
  2. comment faire fonctionner un PID???
    Par invite253d7dda dans le forum Électronique
    Réponses: 8
    Dernier message: 20/04/2007, 09h10
  3. Cmt faire fonctionner AV sans ma télécommande
    Par inviteef9d1971 dans le forum Dépannage
    Réponses: 4
    Dernier message: 16/11/2006, 09h29
  4. quelle téléscope et comment le faire fonctionner?
    Par invite01b13237 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 2
    Dernier message: 21/08/2006, 10h11
  5. Besoin d'aide pour faire fonctionner un néon
    Par invitee7a7ad70 dans le forum Électronique
    Réponses: 8
    Dernier message: 21/12/2005, 19h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...