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

PIC18F452 : plantage avec watchdog



  1. #1
    tixmcprods

    PIC18F452 : plantage avec watchdog


    ------

    Bonjour,

    J'ai un souci avec un plantage de PIC18F452 alors que le watchdog est activé.
    Je travaille avec PICC 4.110 et un programmateur ICD-U40.

    Dans l'atelier, mon projet n'a jamais planté, mais une fois sur place (il s'agit de réguler un groupe froid, avec un moteur de 75kW), il se met à planter à intervalles aléatoires. Il s'agit forcément de parasites extérieurs, mais que faire ?
    J'ai testé avec un délai de 3 secondes dans la boucle principale et le watchdog est fonctionnel. Je ne sais plus quoi faire pour éviter ces plantages...

    Merci d'avance.

    Voici mon header (la partie de configuration) :

    Code:
    #include <18F452.h>
    #device adc=8
    
    #FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
    #FUSES HS
    #FUSES PROTECT                  //Code protected from reads
    #FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
    #FUSES NOBROWNOUT               //No brownout reset
    #FUSES BORV20                   //Brownout reset at 2.0V
    #FUSES NOPUT                    //No Power Up Timer
    #FUSES STVREN                   //Stack full/underflow will cause reset
    #FUSES NODEBUG                  //No Debug mode for ICD
    #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
    #FUSES NOWRT                    //Program memory not write protected
    #FUSES NOWRTD                   //Data EEPROM not write protected
    #FUSES NOWRTB                   //Boot block not write protected
    #FUSES NOWRTC                   //configuration not registers write protected
    #FUSES NOCPD                    //No EE protection
    #FUSES NOCPB                    //No Boot Block code protection
    #FUSES NOEBTR                   //Memory not protected from table reads
    #FUSES NOEBTRB                  //Boot block not protected from table reads
    
    #use delay(clock=20000000)
    Voici un extrait de mon code C :

    Code:
    #include "main.h"
    
    #ZERO_RAM
    
    #int_TIMER2
    void TIMER2_isr(void) {
       // Du code sans importance
    }
    
    void main() {
       setup_adc_ports(AN0_AN1_AN3);
       setup_adc(ADC_CLOCK_DIV_32);
       setup_wdt(WDT_ON);
       setup_timer_0(RTCC_INTERNAL);
       setup_timer_1(T1_DISABLED);
       setup_timer_2(T2_DIV_BY_4,30,1);
       setup_timer_3(T3_DISABLED);
       
       enable_interrupts(INT_TIMER2);
       enable_interrupts(GLOBAL);
       
       while(true) {
          restart_wdt();
          // Du code sans importance
       }
    }

    -----

  2. Publicité
  3. #2
    RISC

    Re : PIC18F452 : plantage avec watchdog

    Salut,

    Peux-tu faire voir ton schéma électronique ?

    Pourquoi utilises un si vieux PIC (PIC18F452) ???
    Depuis il y a eu 3 successeurs :
    PIC18F452 -> PIC18F4520 -> PIC18F45K20 -> PIC18F45K22

    Tu utilises apparemment CCS...je vais pas pouvoir t'aider coté soft car j'utilise C18 et MPLAB

    Cependant il semble que tu aies activé certains fusibles que ton logiciel ne traite apparemment pas cette condition (stack overflow/underflow)

    a+
    Ma marotte ? les microcontrôleurs ;=)

  4. #3
    zhal

    Re : PIC18F452 : plantage avec watchdog

    Peux tu nous mettre aussi le code de ton restart_wdt ?

    Pour le code CCS je pourrai t'aider. D'ailleurs je vois que tu utilise en grande pompe ses fonctions

    tu parles de parasite exterieurs d'après toi, c'est a dire ? (Y a t-il un élément perturbateur flagrant la ou fonctionne le PIC ?

  5. #4
    jiherve

    Re : PIC18F452 : plantage avec watchdog

    Bonsoir,
    Si tu pense avoir affaire à des parasites externes qui donc doivent perturber ton hardware pourquoi regardes tu le soft, serait ce la seule partie éclairée (presque un oxymore) du projet?
    Si tu désactives le watchdog cela ne plante t il plus (reboot i presume) ou bien cela reste t il coincé(deadlock)?
    JR
    l'électronique c'est pas du vaudou!

  6. #5
    MorpheusPic

    Re : PIC18F452 : plantage avec watchdog

    regarde ce que tu a comme alim sur le pic avec un oscillo ou voir avec un testeur en mode AC

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

    Re : PIC18F452 : plantage avec watchdog

    Bonjour à tous,

    Pour commencer, je ne peux fournir le schéma (secret professionnel).
    J'ai ajouté depuis les condos de découplage (100nF sur les deux VCC) avec un élément perturbateur (variateur de secteur) très près, sans pour l'instant de plantage.

    Mais les perturbations extérieures sont moindres que sur place, car il y a je pense tous les éléments les plus perturbants (vibrations, moteur 75kW, néons, etc.).

    Je viens d'avoir des nouvelles du client, ça plante tous les jours avec le watchdog.

    Pour le code de restart_wdt, c'est celui de CCS, et il ne pose pas de soucis sur d'autres projets, d'où je pense que se sont des éléments extéreurs hardware qui plantent le PIC.

    Je testerai sur place, avec la plaque qui possède les condos de découplage et je vous tiendrai au courant.

    Merci beaucoup.

    ++

  9. Publicité
  10. #7
    Aurélien

    Re : PIC18F452 : plantage avec watchdog

    Comment veux tu qu'on t'aide si tu ne fournis pas le schema !

Sur le même thème :

Discussions similaires

  1. Gestion d'un bus I2C avec un microcontrôleur PIC18F452
    Par Donnelalerte dans le forum Électronique
    Réponses: 6
    Dernier message: 12/09/2010, 09h32
  2. watchdog sur un pic 16f877 avec sourceboost
    Par Stef180 dans le forum Électronique
    Réponses: 1
    Dernier message: 31/03/2010, 15h17
  3. compteur de tour moteur avec un PIC18F452
    Par jipewily dans le forum Électronique
    Réponses: 7
    Dernier message: 28/10/2008, 15h51
  4. Probleme avec PIC18f452 et pickit2
    Par McCorwin dans le forum Électronique
    Réponses: 6
    Dernier message: 19/07/2008, 13h46
  5. vous cherchez un pic18f452 avec bootloader ?
    Par tyro dans le forum Électronique
    Réponses: 0
    Dernier message: 27/03/2007, 09h23