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

Programmation de PIC IN SITU



  1. #1
    GT22

    Programmation de PIC IN SITU

    Bonjour,
    Encore ce sujet!
    Le principe des signaux à appliquer sur le PIC (16F8xx plus exactement) pour le faire entrée dans le mode programmation est, somme toute, tres simple: Monté à VCC Haut voltage sur MCLR ou, monté à VCC sur RB3.

    Je me pose 2 questions (avant de l'essayer):
    d'abord sur la façon la plus simple de rentrer dans la phase de programmation avec le PIC IN-SITU:

    1/ La PIN MCLR est connecter, via une Resistance de tirage et à l'aide d'un inverseur mécanique, soit au 5v soit au +13v lorsque l'on désire le programmer. Un bouton poussoir de RAZ de cette pin la ramene brievement à Vdd par une breve impulsion qui déclenchera ainsi l'entrée du PIC dans son mode de programmation (Le prgrammateur peut alors etre activé pour la transmission des DATA)

    2/ Dans la transmission des DATA depuis le programmateur, il existe, à mon sens une petite impasse sur la gestion de la bidirectionnalité du Bus RB7. Ce point semble traité par l'utilisation d'un collecteur ouvert sur la ligne PC vers PIC. Mais, pour que cela soit correct il faut que ce buffer soit bloqué pendant la transmission PIC vers PC soit par la mise à "1" du signal allant vers le PIC.
    Est-on certain que le logiciel de programmation (ICPROG) mette ce signal à ce niveau au moment de la réception?

    3/ Pourquoi le logiciel de programmation ne fournit pas un signal supplémentaire pour gerer le sens du bus en utilisant un TRistate. Je trouve que cela est bien dommage car, de plus on aurait pu placer une LED pour nous indiquer si le programmeur est en ecriture ou en lecture.

    Merci de m'avoir lu et qu'en pensez vous?

    Cordialement

    GT22

    -----


  2. #2
    marmotte

    Re : Programmation de PIC IN SITU

    1/ La PIN MCLR est connecter, via une Resistance de tirage et à l'aide d'un inverseur mécanique, soit au 5v soit au +13v lorsque l'on désire le programmer. Un bouton poussoir de RAZ de cette pin la ramene brievement à Vdd par une breve impulsion qui déclenchera ainsi l'entrée du PIC dans son mode de programmation (Le prgrammateur peut alors etre activé pour la transmission des DATA)
    Pour entrer dans le mode de programmation il faut:
    - faire un Reset de la cible en appliquant 0V sur MCLR puis
    - appliquer Vpp (13V) sur la pin MCLR puis
    - appliquer Vdd (5V) = alimenter ta cible (via le programmateur) puis
    - jouer sur les bus Data et Clk pour transfert de data prog>cible et cible>prog

    Je ne vois pas l'utilité d'un bouton poussoir? puisque c'est ton programmateur qui fait entrer la cible automatiquement en mode programmation (pas besoin d'action de l'utilisateur), ou alors je ne comprends pas ta question.


    2/ Dans la transmission des DATA depuis le programmateur, il existe, à mon sens une petite impasse sur la gestion de la bidirectionnalité du Bus RB7. Ce point semble traité par l'utilisation d'un collecteur ouvert sur la ligne PC vers PIC. Mais, pour que cela soit correct il faut que ce buffer soit bloqué pendant la transmission PIC vers PC soit par la mise à "1" du signal allant vers le PIC.
    Est-on certain que le logiciel de programmation (ICPROG) mette ce signal à ce niveau au moment de la réception?
    Une fois de plus c'est TON programmateur qui doit gerer la bidirectionnalité du BUS. C'est lui qui sait quand la ligne Data est en écriture (sur la cible) ou en lecture (depuis la cible), et en effet "materiellement" ceci est réalisé par un jeu de sortie à collecteur ouvert mises tetes beches


    3/ Pourquoi le logiciel de programmation ne fournit pas un signal supplémentaire pour gerer le sens du bus en utilisant un TRistate. Je trouve que cela est bien dommage car, de plus on aurait pu placer une LED pour nous indiquer si le programmeur est en ecriture ou en lecture.
    Un logiciel fournissant un signal? en fait je crois que tu confonds le role du logiciel et du programmateur. C'est encore une fois ton programmateur qui sait quand il doit lire ou ecrire dans la cible, donc c est lui qui place le bus en entrée ou sortie. Concernant la LED, c'est le meme principe, quand il ecrit il actionne la LED Write, et la Read dans l autre cas, mais c'est inutile puisque les cycles de lectures/ecritures lors de la programmation sont tellement courts que tu verrais sans cesse les deux LEDs eteintes ou allumées Cependant elles pourraient servir pour donner une indication sur le mode du programmateur: mode programmation, mode lecture, mode vérification, etc...


    J'espere ne pas avoir répondu trop à coté. En tout cas je te conseille de lire les documents microchip intitulés "programming SPECS" pour les µC que tu desires programmer, parceque pour chaque µC il y a de legeres differences qui font que ton programmateur ne pourra pas etre universel, exemple tu realises ton programmateur pour un 16F876, mais ce programmateur ne pourra pas programmer un 16F84.

    Bonne lecture

  3. #3
    pico03

    Re : Programmation de PIC IN SITU

    Bonjour Marmotte
    Merci pour toutes ces précisions.
    Je suis récemment passé du pic16f84 au pic16f628 (petites retouches mineures sur les .ASM. Puis en lisant les docs programming du constructeur, je me suis aperçu qu'il fallait sur le 628 envoyer le 12volts 5 micro secondes avant le 5volts (vdd), contrairement à ce qui est fait sur le 84. Ne voulant pas rebricoler le petit programme du programmateur, j'ai tenté le coup en essayant tel quel et ... ça marche quand même!! J'ai peur tout de même que cela endommage à force mon 628??
    Merci d'avance pour la réponse.

  4. #4
    GT22

    Re : Programmation de PIC IN SITU

    Bonjour,
    Merci pour vos réponses,
    Tout d"abord, mille excuses pour l'utilisation du terme "logiciel" pour moi la tete pensante assurant la gestion des signaux est le "logiciel" de programmation (ICPROG par ex) situé sur mon PC (c'est donc lui, dans ses instructions de gestions du Port_PC qui connait l'instant de commutation! IN/OUT)
    Quant au nom de "Programmateur" je l'affecte aux qq circuits (CI, Résistances, etc) situés entre le port du PC et mon PIC. Mais peut-etre j'utilise une mauvaise définition des termes.
    En ce qui concerne mon "Bouton poussoir" , il avait pour role de simplifier à l'extreme mon "programmateur" dans la mesure où (et c'est peut etre là que je fais erreur) lorsque l'on décide de placer le PIC en mode programmation, cet état doit resté ainsi jusqu'à la fin de la programmation.
    Pour l'ordre de présence des tensions sur MCLR, Vdd et RB3 (mode BasseTension) pour les PIC 16F8xx, j'ai beau regarder la doc, le moins que l'on puisse dire est que ce n'est pas clair.
    Cordialement
    GT22

Sur le même thème :

Discussions similaires

  1. Programmation PIC...HELP
    Par jorg1n dans le forum Électronique
    Réponses: 19
    Dernier message: 09/11/2007, 08h57
  2. erreur 0X00 programmation PIC plus questions sur les PIC
    Par ROTT dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  3. programmation pic en c
    Par parain dans le forum Électronique
    Réponses: 1
    Dernier message: 20/06/2007, 21h33
  4. Programmation de PIC
    Par behemerre dans le forum Électronique
    Réponses: 15
    Dernier message: 02/02/2007, 09h15
  5. programmation PIC
    Par Mr.Volt dans le forum Électronique
    Réponses: 2
    Dernier message: 18/08/2006, 14h38