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

Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut



  1. #1
    Florian41

    Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Bonjour à tous,

    Travaillant actuellement en tant qu'ingénieur en électronique analogique, je dois réaliser un système de mesure de fréquence et de pilotage pour commander des gradins de résistance de puissance en numérique. Le cœur du système est un microcontrôleur PIC 18F 45K80. Etant moins spécialisé en électronique embarquée j'aurais besoin de vos lumières pour élucider un problème persistant.

    Les 12 fils en sorties sont reliés aux 8 ports de sortie du port C et au 4 bits de poids le plus faible du port D. Avant de passer au programme complet, je teste, sous le logiciel MPLAB X IDE un programme très simple déclarant tout les ports ( A B C et D) en sortie et forçant toutes les sorties à 1. Je compile le programme et implante le fichier .hex sur mon IPE de MPLAB, et au final toutes les sorties du port C et D sont à 1, sauf les 2 premières sorties du port C ( RC0 et RC1).

    Je me suis renseigné sur les datasheet, tutoriels et livre associés (Tavernier), et personne ne cite de paramétrage spécifique des sorties pour le PORT C, hormis le fait de mettre le TRISC à 0 pour une sortie. Je suspectait en premier lieu un défaut du point de vue du circuit, et j'ai donc commandé un circuit neuf, que j'ai testé. Même problème, 2 port inactifs.

    Eloignant donc le problème du coté du hard, je me suis renseigné sur les pins associés, en relation avec le Timer 1, sur MPLAB je configure les registres pour configurer le timer afin de libérer mon port RC1 et RC0 ... et c'est là que les choses se compliquent ... à la compilation toujours le même problème. Ma plaquette LABDEC est en très bonne état, le circuit est neuf, les câblages sont corrects et vérifiés par une autre personne.

    J'ai essayé par curiosité d'implanter le même algorithme dans d'autres pics, ( 16f916, 18f26k22 ) ... toujours le même problème, une ou 2 sorties indisponibles, et pourtant dans le monde de la théories et des livres, sont censées être accessibles.

    Je n'arrive pas à joindre mon programme en pièce jointe, voici donc le main :
    Code:
    void main(void)
    {
        
        ANCON0=0;
        ANCON1=0;
        
        
        TRISB=0;
        TRISC=0;
        TRISA=0;
        TRISD=0;
        
        PORTB=0b00000000;
        PORTC=0b00000000;
        PORTA=0b00000000;
        PORTD=0b00000000;
        
        while(1)
        {
            PORTB=0b11111111;
            PORTC=0b11111111;
            PORTA=0b11111111;
            PORTD=0b11111111;
        }
    }
    Donc toujours le même problème : aucune erreur à la compilation, mais sur le hard toujours au moins 2 pin inactives : la 15 et la 16 du pic 18F45K80.

    Quel est votre diagnostic?

    -----

    Dernière modification par Antoane ; 29/05/2017 à 10h04. Motif: ajout balises code

  2. Publicité
  3. #2
    antek

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Pour que les répondeurs potentiels n'aient pas à chercher, donne un lien vers la datasheet.

  4. #3
    Florian41

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    http://pdf1.alldatasheet.fr/datashee...C18F45K80.html

    Le problème est sur les pin 15 et 16 du pic 18f45k80

  5. #4
    jiherve

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Bonjour
    dans la data sheet il est question de :SOSCSEL
    C'est çà la joie des PICS!
    JR
    l'électronique c'est pas du vaudou!

  6. #5
    Florian41

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Certes, sauf que dans MPLAB X la ligne d'instruction #pragma config SOSCEL = DIG n'est pas reconnue par le compilateur... Y'aurais-il une bibliothèque supplémentaire à ajouter au départ? Pour moi de mon coté j'ai xc.h (avec la stdio et stdlib)

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

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Salut,

    Une chose importante dans les PICs sont les bits de configuriation (voir le chapitre "Special Features").
    Ces bits permettent de configurer le PIC (choix oscillateur, watchdog, ....)
    Il faut impérativement choisir l'état de ces registres pour être sûr que le PIC démarre avec les conditions que tu souhaites, notamment au niveau du choix de l'oscillateur (interne ou externe = quartz).

    Ensuite, concernant ton PB c'est probablement lié aux broches analogiques du PIC. Par défaut, si une broche peut être analogique ou digitale au reset elle est toujours en analogique....
    Il faut donc changer ce choix si tu veux utiliser les broches en digital. Lis le chapitre sur le convertisseur A/N et tu trouveras sans doute la solution à ton PB...
    Par défaut je crois que l'oscillateur secondaire (SOSC) est désactivé, donc ton PB ne vient pas de là.
    Tu trouveras des tutoriels sur MPLAB X et les PICs ici.

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

  9. Publicité
  10. #7
    Florian41

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Désolé mais en cherchant un peu partout je ne trouve pas la solution à mon problème, et j'ai l'impression d'être le seul à qui ce problème de port inactif arrive, à croire que je suis maudit ... bref! J'ai choisit de détourner le problème en choisissant de "rediriger mon port RC0 et RC1 sur les broches RA0 et RA1, qui elles fonctionnent sans problème. J'ai donc, sur mon code source, déclarer un tableau "intermediaire" qui va prendre la valeur destinée à aller sur le port C pour l'inscrire sur les 2 bits de poids le plus faible sur le port A et tout le reste sur le port C.

    Sur mon code source je force toutes les entrées à 1, donc pour un port à 8 bits j'inscrit 255 ( pour le port C et A et a coté la même chose pour le port D)

    Voici mon code :

    #include <stdio.h>
    #include <stdlib.h>
    #include <xc.h>

    #define _XTAL_FREQ 8000000

    /*# define LATCbits.LATC7 TabPortC[7]
    # define LATCbits.LATC6 TabPortC[6]
    # define LATCbits.LATC5 TabPortC[5]
    # define LATCbits.LATC4 TabPortC[4]
    # define LATCbits.LATC3 TabPortC[3]
    # define LATCbits.LATC2 TabPortC[2]
    # define LATAbits.LATA1 TabPortC[1]
    # define LATAbits.LATA0 TabPortC[0]

    # define LATDbits.LATD3 TabPortD[3]
    # define LATDbits.LATD2 TabPortD[2]
    # define LATDbits.LATD1 TabPortD[1]
    # define LATDbits.LATD0 TabPortD[0]
    */

    int TabPortC[8];
    int TabPortD[8];

    void main(void)
    {

    ANCON0=0;
    ANCON1=0;

    TRISB=0;
    TRISC=0;
    TRISA=0;
    TRISD=0;

    PORTB=0b00000000;
    PORTC=0b00000000;
    PORTA=0b00000000;
    PORTD=0b00000000;

    while(1)
    {

    LATCbits.LATC7 = TabPortC[7];
    LATCbits.LATC6 = TabPortC[6];
    LATCbits.LATC5 = TabPortC[5];
    LATCbits.LATC4 = TabPortC[4];
    LATCbits.LATC3 = TabPortC[3];
    LATCbits.LATC2 = TabPortC[2];
    LATAbits.LATA1 = TabPortC[1];
    LATAbits.LATA0 = TabPortC[0];

    LATDbits.LATD3 = TabPortD[3];
    LATDbits.LATD2 = TabPortD[2];
    LATDbits.LATD1 = TabPortD[1];
    LATDbits.LATD0 = TabPortD[0];

    TabPortC[] = 255;
    TabPortD[] = 255;
    }
    }

    Mais à la simulation mon IDE n'aime pas mes 2 dernières lignes... comment écrire correctement la valeur dans un tableau? Excusez moi encore pour cette question qui pour d'autres paraîtra un peu triviale.

  11. #8
    jiherve

    Re : Microcontrolleur PIC 18F : Sorties inactives en configurant par défaut

    Re

    Citation Envoyé par Florian41 Voir le message
    Certes, sauf que dans MPLAB X la ligne d'instruction #pragma config SOSCEL = DIG n'est pas reconnue par le compilateur... Y'aurais-il une bibliothèque supplémentaire à ajouter au départ? Pour moi de mon coté j'ai xc.h (avec la stdio et stdlib)
    N'y a t il pas moyen d'inserer un bout de code en assembleur :_asm titi toto _endasm
    JR
    l'électronique c'est pas du vaudou!

Sur le même thème :

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2016, 09h38
  2. Réponses: 7
    Dernier message: 10/02/2014, 09h48
  3. fonctions Win Xp inactives
    Par wakrime dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/12/2007, 17h53
  4. Sorties inactives ? d'un 74HC164
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 19
    Dernier message: 04/12/2007, 08h57
  5. Gènes non inactivés sur le corpuscule de Barr
    Par Vinc dans le forum Biologie
    Réponses: 2
    Dernier message: 07/03/2006, 21h50