pic 18f452 @ 40Mhz, plantage de temps en temps
Répondre à la discussion
Affichage des résultats 1 à 28 sur 28

pic 18f452 @ 40Mhz, plantage de temps en temps



  1. #1
    nordiste

    pic 18f452 @ 40Mhz, plantage de temps en temps


    ------

    salut, je suis en train de realiser un programme d'un robot suiveur de ligne.
    mon probleme est le suivant :
    de temps en temps, le pic plante et redemarre environ 10 secondes plus tard.
    je l'ai programme en C avec mcc18. je ne fait pas d'interruptions, j'ai desactive le brown out reset, le WDT et le stack overflow reset.

    je realise 5 echantillonnages sur le portA a chaque tours de boucle (1 par capteur) puis je met a jour les valeurs des PWM.
    j'utilise le pwm pour controler mes moteurs.

    j'ai realise mon programme un peu comme un automate avec des else if qui vont donner des vitesses aux moteurs. j'ai donc un 30 aine de conditions else if dans le code.
    avez vous une idee d'ou peux provenir le plantage ?
    merci d'avance, marc

    -----

  2. #2
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Salut le ch'ti,

    Est-ce que tu as mis des condensateurs de découplage, tout près des broches d'alimentation du PIC ? Est-ce que ta masse est assez "généreuse" ? Peut être que les moteurs te pourrissent l'alimentation, en générant des perturbations.

    As-tu la possibilité de regarder à l'oscilloscope ce qu'il se passe sur l'alimentation du PIC ?

  3. #3
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut, je vais voir a l'oscilloscope et je te dis quoi.

    pour ce qui est des pistes, c'est vrai que la masse est assez petite ( elle a fondue sur une autre carte qui a ete court circuitee /partie puissance).
    mais mes moteurs ne depassent pas 800mA
    le pont en H (moins de 1A/phase) ne chauffe meme pas.

    il est vrai que mon robot plante souvant au demarrage ou lors d'un changement de direction.
    pour ce qui est condos de decouplage, il y en a.
    je me demande, par contre si le plus gros condo est suffisant (10uF pour 5led IR +1 led fixe + 2 led commandes par le pic). le regulateur (l7805) chauffe abondamment mais alimente en 16v.
    voila.
    pour la masse, si je fais comme sur les variateurs de modelisme, mettre de la tresse tout le long de la piste, ça peut fonctionner si c'est sa ?
    merci, marc

  4. #4
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Bonjour,

    Est-ce que tu peux faire tomber ton schéma ? De cette façon, on pourrait avoir une meilleure idée du problème. N'hésites pas à utiliser les regitres de ton PIC pour savoir quelle est la cause du RESET (BOR ou POR, etc). En supposant qu'il y ait un RESET ! Et penses à activer _BODEN (RESET en cas de chute de tension de l'alim).

    Mais il est assez clair que si le robot plante lorsqu'il est en train d'actionner un moteur, le problème vient de l'alim.

    Je ne suis pas un pro, mais 10 µF est peut être assez faible. Mais je suppose qu'AVANT le régulateur, il y a un ou plusieurs autres condensateurs ? Si oui, de quelles valeurs : le schéma !!

    Peut être que le routage des alimentations doit être soigné, pour que le PIC ne subisse pas toutes les variations de tensions.

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

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Salut,

    le regulateur (l7805) chauffe abondamment mais alimente en 16v.
    J´aimerais bien savoir ce que tu alimentes avec ce régu, parceque s´il est alimenté en 16V, il va pas pouvoir fournir grand chose en courant!
    Quel est son boitier? As tu un dissipateur thermique?

    Et comme le dit BastienBastien, avec un schéma on pourra t´en dire plus...

  7. #6
    mat64

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Citation Envoyé par nordiste Voir le message
    il est vrai que mon robot plante souvant au demarrage ou lors d'un changement de direction.
    c'est un signe ! ça plaide en faveur des hypotheses de mes petits camarades : découplage, alimentation...

  8. #7
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut,
    apres verif du circuit j'ai remarque quelques problemes :
    1 patte d'alim du pic etait mal soude (3ohm sur la patte) (format CMS, soude a la refusion).
    l'alimentation des 5 LED IR passait avant par l'alim du pic, protege par une petite diode.
    j'ai donc passe un fil pour arriver directement au régulateur.
    j'ai rajoute quelques condos de découplage.
    j'ai aussi etame les pistes d'alimentation du circuit imprime.

    apres un essai avec d'autres batteries, ca a l'air de bien fonctionner.
    visiblement plus de plantage, je poursuis mes tests.

    le schéma est chez moi, je ne peux pas le passer immédiatement.

    au fait les condos sur les pattes d'entree et de sortie du regul sont des 22uF

    pour les 16 volts, c'est la tension que j'envoie a mes moteurs.
    le regulateur est equipe d'un dissipateur pour memoire vive de PC.
    c'est un 7805 en boitier TO-220. il alimente le pic, les 5 LED IR, 1 led pour indique que c'est alimente, 2 led du pic et le driver des moteurs. total, a mon avis, moins de 400mA.

    voila.
    marc

  9. #8
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    bon ben voila, apres d'autres tests avec une batterie de 11.1v, les plantages reviennent.

    voici le schema : http://dl.free.fr/oKwG3SYhp/robot2008.pdf

    pour ce qui est de verifier les registres pour savoir pourquoi ca a plante, comment fait-on en C sous mcc18 ?

    merci d'avance, marc

  10. #9
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Salut,

    As-tu regardé, à l'oscillo, ce qu'il se passe sur l'alim ?

    Pour ce qui est du RESET, regarde le chapitre 9 "Les différents types de reset" du tome 2 de BigOnOff ( http://www.abcelectronique.com/bigonoff/ ).

    Il y est écrit qu'il y a 6 causes possibles de reset :

    * Mise sous tension du PIC
    * Retour de la tension d'alimentation après une chute de tension <---- ???? (POR=1, BOR=0, TO=1, PD=1)
    * Reset par débordement du watchdog
    * Sortie du mode sleep par débordement du watchdog
    * Reset provoqué par la broche MCLR
    * Reset par MCLR durant le mode sleep

    Pour savoir dans quel cas tu te trouves, tu dois tester les bits POR, BOR, TO et PD des registres STATUS et PCON.

    Tu verras, aux pages 105 et 106 du eBook dont je viens de te parler, c'est très bien expliqué.

  11. #10
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut,
    j'observe de tres petites variations sur l'alim 5v. ces variations me rappellent la variation d'une alim a decoupage.
    cette variation n'est pas due au pwm car il n'est pas allume.
    voila.
    marc

  12. #11
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Re,

    quel genre de variations ?? 5V ou 0,1µV ? ou 0,1fV ?

    Tu n'as pas la possibilité de mettre un screenshot de l'oscillo ?

  13. #12
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut,
    voici les releves :
    variations en entree sur le l7805 :
    +-100mv maxi a 100us
    en sortie du l7805 (sur un connecteur d'extension):
    +- 1V maxi a 500ns mais j'obtiens juste des pics, pas de belles courbes(un peu comme une fft). je me demande si la nappe ne ferais pas antenne...
    je pense qu'il faudrais mettre un tres petit condo mais je ne sais pas quoi mettre...

    tout ces tests ont ete effectues moteur tournant. je n'ai pas releve de pic de tension lors d'un changement de sens du moteur.

    le dernier plantage a eu lieu sur une ligne droite donc pas de changement de sens...

    petite question : si une convertion A/N foire, le pic peux t'il planter et et redemarrer de lui meme ?(je realise environ 5000 echantillonages par seconde, tout les 2500, je change l'etat d'une led et dans certains cas, elle reste alumee ou eteinte alors que le pic fonctionne. je n'ai pas de boucles dans le prog sauf le while(1) principal. en bougeant un peu le robot ça repart.)
    voila
    marc.

  14. #13
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Bonsoir,

    Pour résoudre le problème de pic de tension brutal (1V me semble ENORME), faut probablement revoir le schéma et/ou le routage.

    Si la fréquence de clignotement de la LED varie, parfois, c'est probablement que le PIC est en train de gérer des IRQs et que donc, il est occupé à autre chose. Mais ce serait étonnant qu'en étant cadencé à 40 MHz, il n'est pas le temps de finir à temps de traiter cette IRQ. Alors, est-ce qu'il traite une SERIE d'IRQ ? -->> Utilises-tu massivement les IRQ (lesquelles, et à quelle intervale de temps (ENVIRON) sont elles suceptible d'être appelées) ? Ou alors, est-ce que tu mets des TEMPO dans tes traitements d'IRQ ?

    Dans tous les cas, rajouter un condo chimique de capacité assez généreuse AVANT le régulateur ne peut pas faire de mal. Mais on ne peut pas mettre de gros condo APRES le régulateur, sinon, celui-ci va faire nawak. N'hésites pas à mettre des condos MKT 100 nF ou même 1 µF le PLUS PRET possible du PIC.

    Peut être que l'ajout d'une self de choc te permettrait d'avoir une alim plus propre, côté PIC. Rajoutes-en une en série de l'alim du PIC, si tu en a une sous la main. De cette façon, les "hautes" fréquences de la perturbation ne passeront plus.

    Je suis pas sûr de pouvoir t'aider plus que ça. Les pros du forum seront beaucoup plus à la hauteur.

  15. #14
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Citation Envoyé par nordiste Voir le message
    petite question : si une convertion A/N foire, le pic peux t'il planter et et redemarrer de lui meme ?(je realise environ 5000 echantillonages par seconde, tout les 2500, je change l'etat d'une led et dans certains cas, elle reste alumee ou eteinte alors que le pic fonctionne. je n'ai pas de boucles dans le prog sauf le while(1) principal. en bougeant un peu le robot ça repart.)
    voila
    marc.
    Qu'entends-tu par "foirer" ? Si la conversion donne une mauvaise valeur, alors la valeur donnée sera fausse. C'est tout. Ta question me rappelle un thread ou il était question du fait que le CAN faisait planter le PIC. Je ne retrouve plus ce thread. Voilà une autre piste à creuser. "Autre", car les pics de tension SONT à éliminer : faut résoudre le problème à la base.

    Si un pro du forum pouvait donner son avis.. car je me sens dépassé.

  16. #15
    invite74b5b8f7

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Salut,

    Bon ca sera pas moi le pro attendu, mais quelques remarques:

    -22uF en sortie du 7805 ca fait peut-être beaucoup trop!
    Dans la doc tous les schémas d´application sont fait avec du 0,1uF en sortie! Pourquoi mettre si gros? Le taux de rejection du régu est déjà de 68dB avec du 0,1uF (donc en sortie tes 100mV feraient moins de 40uV)

    -Pourquoi avoir mis 2 diodes en entrée (avant le l7805) ?
    Et d´où vient le 12V si tu utilises une batterie de 16V?

    -C´est quoi ce que t´as fait avec C6, C7, C9, R2, D3 et D4 ? Je sais pas si je rate un interet mais pour moi il faut virer tout ca, ca sert à rien...

    -Je ne sait pas quel courant son capablent de délivrer les sorties d´un PIC mais je préfererais alimenter les LED via un transistor plutôt qu´en direct, quelles sont les valeurs de R3, R4, R5, R6 et R7 ?

    C´est quoi la résistance thermique de ton radiateur? parsque si ton 7805 doit fournir 400mA, 0,4*(16-5) = 4,4W! mais aussi 400mA ca me parait beaucoup pour un PIC et des LED !

  17. #16
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Hello,

    nordiste, n'hésites pas à utiliser les remarques de lil-vince.

    Mets un condo de 4700µF/25V (c'est peut être un peu gros, mais ça mange pas de pain) avant le régulateur et un 100 nF en sortie.

    Et vérifies particulièrement ton routage et l'emplacement du L298. Le L298 doit pourrir la masse.

  18. #17
    invite03481543

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Salut,

    quelques remarques en vrac:

    est-ce que 40MHz se justifie dans ton application?
    Cette fréquence est la limite de travail du PIC et le fait consommer au maximum, il vaut mieux utiliser un PIC à 10MHz et activer sa PLL interne.

    Le routage est très important à cette fréquence, il te faut deux plans de masse, un digital et un pour la puissance.
    Les 2 seront reliés en étoile sur l'entrée de masse.
    Sans ça toutes variations sur la puissance aura une incidence sur la conversion A/D, et sur les niveaux du PIC en général.

    Sinon il est tout à fait possible d'alimenter des leds directement par les ports du PIC.

    Si tu mesures des variations sur le 5V dans les proportions décrites c'est qu'il y a probablement un soucis de routage et/ou de découplages.

    Le mieux serait que tu postes ton implantation et ton schéma pour qu'on puisses t'aider à améliorer ton montage.
    @+

  19. #18
    invite74b5b8f7

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Le mieux serait que tu postes ton implantation et ton schéma pour qu'on puisses t'aider à améliorer ton montage.
    Le schéma est en lien message#8...
    (sans commentaire)
    Mais le routage ne serait pas superflu vu comment tu décris tes problèmes.

    Perso, c´est surtout tout ce qu´il y a entre la sortie du 7805 et l´alim du PIC qui me surprend, soit je ne comprend pas l´interet (ce qui est fort possible ) soit c´est inutile!
    (Et je me demande si de mettre du 0,1uF au lieu de 22uF en sortie du 7805 n´ameliorerait deja pas les choses)

  20. #19
    invite03481543

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    En effet, je n'avais pas vu le lien du schéma (pour lequel je rappelle que tout fichier doit être chargé sur le forum en pièce jointe et non par le biais de serveurs externes).

    Bon c'est sûr qu'en l'état il est normal que ça ne fonctionne pas bien...
    Il faut déjà enlever R2,D3,D4,C9 comme certains l'ont mentionné d'ailleurs.

    A la place de D3 mettre une 10K et ajouter un 100nF relié à la masse et mettre une 1N4148 en parallèle sur la 10K (cathode au +5V).
    Il faut découpler l'alim du PIC avec un 100nF et un 10µF céramique (au plus court).
    Sur RB0 il faut mettre une résistance de pull-up puisque RB1 et RB2 sont en sortie (RBPU sera automatiquement désactivé sur l'entrée RB0 même si RBPU=0).
    Le L293 devra être découplé par un chimique de 100µF minimum.
    Sur l'entrée du 7805 une seule diode 1N4004 suffit, et mettre un chimique de 470µF est suffisant avec un 100nF.
    En sortie du 7805 mettre un 10µF ET un 100nF en parallèle au plus près du régulateur.
    Mettre une 1N4004 reliée entre la sortie du regulateur et l'entrée (cathode vers l'entrée).
    C'est un minimum, mais le routage est important aussi.

  21. #20
    invite74b5b8f7

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Ca me rassure, j´hallucinait pas! Parsque je ne voyait vraiment pas pourquoi mettre tout ca!

    Juste une question: pourquoi mettre une 1N4004 entre l´entrée et la sortie du 7805 ? C´est à cause des enroulements des moteurs ?

  22. #21
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut,
    pour en revenir au montage, je suis desole, je suis en ecole d'info, j'ai pas trop de notions de routage.
    pour R2, je pensais qu'il falais le mettre.
    pour d3 et d4, ne faut t-il pas les laisser pour l'ICD2 , sinon, il va alimenter tout le reste du circuit
    c9 est un condo de 4.7uF pres des pattes du pic.
    pour RB0, je pensais que le pull-up restait active.
    pour le l293, je met le decouplage et je vois
    j'ai mis 2 diodes en entree parce qu'elles doivent passer + de 1 ampere (les moteurs passent a travers.).

    pour la vitesse il est a 10Mhz PLL active.
    j'ai essaye de le mettre a 10 Mhz tt court, il plante aussi.
    voila.
    je teste donc la pose de plusieurs condos et je vous tiens au courant.
    pour ce qui est de la diode entre la sortie et l'entree du regul, jamais entendu parler de sa ... ca a un interret reel???
    merci d'avance, marc

  23. #22
    invite03481543

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Citation Envoyé par lil-vince Voir le message
    Ca me rassure, j´hallucinait pas! Parsque je ne voyait vraiment pas pourquoi mettre tout ca!

    Juste une question: pourquoi mettre une 1N4004 entre l´entrée et la sortie du 7805 ? C´est à cause des enroulements des moteurs ?
    Le rôle de la diode est de permettre aux capas chimiques en sortie 5V de se décharger en entrée plutôt que dans l'étage de sortie du régulateur.

  24. #23
    invite74b5b8f7

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Le rôle de la diode est de permettre aux capas chimiques en sortie 5V de se décharger en entrée plutôt que dans l'étage de sortie du régulateur.
    Donc si je mets un "gros condensateur" derriere un régulateur (quel qu´il soit) il est recommandé de mettre cette diode pour "préserver" le régulateur?
    Faut-il le mettre systématiquement ou juste pour des grosses capacité?

    Merci de tes explications

  25. #24
    BastienBastien
    Invité

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Bonjour,

    Je crois que le régulateur ne peut pas bien faire son boulot, s'il a un gros condo en aval. C'est pour ça qu'on met toujours les gros AVANT lui et les petits, de découplage, après lui.

  26. #25
    invite03481543

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Citation Envoyé par nordiste Voir le message

    pour d3 et d4, ne faut t-il pas les laisser pour l'ICD2 , sinon, il va alimenter tout le reste du circuit
    Pas d'inquiétude à avoir, MCLR sert de reset et de patte de programmation (lorsque Vpp=13V) c'est pour cela qu'il faut juste une 10K entre la patte MCLR du PIC et le +5V de ta carte.
    Sinon le Vcc (+5V) du PIC est le même que le Vcc délivré par l'ICD2 (+5V également).
    D'ailleurs tu peux choisir dans MPLAB soit d'alimenter la cible par l'ICD2 soit par la cible elle même.

    c9 est un condo de 4.7uF pres des pattes du pic.
    Dans ce cas tu peux laisser cette valeur.

    pour RB0, je pensais que le pull-up restait active.
    En entrée seulement et aucun autre RB ne doit travailler en sortie sinon RBPU repasse automatiquement à 1.

    j'ai mis 2 diodes en entree parce qu'elles doivent passer + de 1 ampere (les moteurs passent a travers.).
    Si tu souhaites faire une protection contre l'inversion de polarité, préfère plutôt de mettre une diode en parallèle sur le 12V (cathode au +) et ajoute un fusible thermique de 2 ou 3A branché sur l'entrée 12V.
    Pour la diode prends une 1N5400.

    pour la vitesse il est a 10Mhz PLL active.
    j'ai essaye de le mettre a 10 Mhz tt court, il plante aussi.
    Il vaut mieux solutionner d'abord ton problème en mode normal et lorsque tout sera correct repasser en PLL activée.
    Donc si tu mets un quartz de 10MHz place des condos de 22pF au lieu de 10pF.

    pour ce qui est de la diode entre la sortie et l'entree du regul, jamais entendu parler de sa ... ca a un interret reel???
    Dès l'instant qu'il y a des capas d'assez grosses valeurs en sortie c'est fortement conseillé car le régulateur n'aime pas avoir sa sortie à un niveau supérieur à l'entrée (ce qui peut se produire lors de la mise hors tension).

    @+

  27. #26
    invite03481543

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    Citation Envoyé par BastienBastien Voir le message
    Bonjour,

    Je crois que le régulateur ne peut pas bien faire son boulot, s'il a un gros condo en aval. C'est pour ça qu'on met toujours les gros AVANT lui et les petits, de découplage, après lui.
    On place des capas en entrée de régulation pour avoir une ondulation adaptée aux exigences d'entrée du régulateur, et en sortie pour palier aux appels de courant de la charge.
    Il n'est pas rare également d'avoir en sortie de régulation des circuits RC (base de temps) ou des circuits capacitifs à décharge lente qui inévitablement seront encore plus ou moins chargés alors que l'entrée du régulateur sera déjà à 0.

  28. #27
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut, merci pour toutes ces infos.
    je vais tester tout ca aujourd'hui et je vous tiens au courant ce soir.
    je pense que le gros probleme viens du reset.
    pour le probleme du pullup sur le port RB ca m'explique pourquoi le poussoir avais un comportement etrange de temps en temps.
    voila.
    merci pour l'aide, marc.

  29. #28
    nordiste

    Re : pic 18f452 @ 40Mhz, plantage de temps en temps

    salut,
    j'ai mis la resistance de 10Kohm a la place de la diode du mclr,
    ajoute une resistance de pullup sur le bouton.

    le montage a l'air d'etre stable.
    merci d'avoir pris du temps pour resoudre mon probleme.
    merci, marc.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/02/2008, 18h24
  2. J'ai mon pc qui boute tout seul de temps en temps
    Par michelsomers dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 18/05/2007, 14h33
  3. Horloge temps réel + PIC I²C
    Par Toufinet dans le forum Électronique
    Réponses: 9
    Dernier message: 15/11/2006, 16h56
  4. Le Temps Sujet:Le Pneumatique et son influence sur le temps d'arret
    Par inviteb213beb1 dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 27/10/2006, 12h10
  5. PIC et precision du temps
    Par alainav1 dans le forum Électronique
    Réponses: 2
    Dernier message: 28/04/2006, 17h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.