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

Pull-up sur PORTB, PIC18



  1. #1
    amoniaque

    Pull-up sur PORTB, PIC18

    Bonjour,

    J'utilise un 18F14K50 sous MPLAB avec C18.

    Je dois configurer le port B en entrées (utilisées pour des switch) et activer les pull up.

    Voici une partie de mon code :
    Code:
    //configuration du PIC (aller dans "help/Topics/PIC18 config settings/"
    #pragma config CPUDIV = NOCLKDIV, USBDIV = OFF	// CONFIG1L
    #pragma config FOSC = HS, PLLEN=OFF, PCLKEN = ON, FCMEN = OFF, IESO = OFF	// CONFIG1H
    #pragma config PWRTEN = OFF, BOREN = OFF, BORV = 30					// CONFIG2L
    #pragma config WDTEN = OFF, WDTPS = 32768                                     // CONFIG2H
    #pragma config MCLRE = OFF, HFOFST = OFF				        // CONFIG3H
    #pragma config STVREN = ON, LVP = OFF, BBSIZ=OFF, XINST = OFF	// CONFIG4L
    #pragma config CP0 = OFF, CP1 = OFF						                    // CONFIG5L
    #pragma config CPB = OFF, CPD = OFF                                    			    // CONFIG5H
    #pragma config WRT0 = OFF, WRT1 = OFF						                // CONFIG6L
    //#pragma config WRTB = ON, WRTC = OFF                            			// CONFIG6H
    // Disabled WRTB for debugging.  Reenable for real.
    #pragma config WRTB = OFF, WRTC = OFF                            			// CONFIG6H
    
    #pragma config EBTR0 = OFF, EBTR1 = OFF							           	// CONFIG7L
    #pragma config EBTRB = OFF                                                  // CONFIG7H
    
    void Inits(void)
    {
    	TRISC  =0x00;	//portC en sorties (LED collisions, LED IR, Moteurs)
    	TRISB = 0xF0;	//portB en entrées (switch)
    	INTCON2bits.RABPU = 0;	//activation des pullup
    
    	WPUB = 0xF0;	//pull up sur RB4-7
    	//...
    }
    Mon problème est que les résistances de tirages sont bien activées mais uniquement sur RB5, RB6 et RB7 (je peux voir 5V sur les pattes) mais RB4 est à 0.1V (donc la pull up n'est pas activée)...
    Bien sûr je n'ai rien branché sur ces entrées, elles sont "nues".

    Je n'arrive pas à comprendre le pourquoi du comment !

    Help me !

    Merci par avance .

    -----


  2. Publicité
  3. #2
    thundertom

    Re : Pull-up sur PORTB, PIC18

    Salut,

    je n'ai pas vérifier les condition après reset, mais il arrive fréquemment que par défaut, une pin soit assigner à une entrée analogique, ou à une autre de ses fonctions auxiliaire, c'est donc une bonne habitude de désactiver les entrée analogiques et autre fonction quand on ne les utilises pas...
    Fabricando fit faber

  4. #3
    Forhorse

    Re : Pull-up sur PORTB, PIC18

    +1
    Si la serie 18F à herité des attributs des 16F, sur cette serie les fonctions analogique étaient active par defaut.

  5. #4
    amoniaque

    Re : Pull-up sur PORTB, PIC18

    En effet c'est bien indiqué qu'après un POR les entrées sont configurées en analogiques.

    Voilà ce que j'ai mis pour mon code (je n'ai pas changé les fusibles) :
    Code:
    void Inits(void)
    {
    	ADCON0bits.ADON = 0;	//éteindre le ADC
    	ANSELHbits.ANS10 = 0;	//RB4 en entrée numérique
    	ANSELHbits.ANS11 = 0;	//RB5 en entrée numérique 
    	TRISC =0x00;	//portC en sorties (LED collisions, LED IR, Moteurs)
    	TRISB = 0x70;	//portB en sorties (RB7 : TX RS232), en entrées (RB<4:6> : switch, récepteur IR)
    	INTCON2bits.RABPU = 0;	//activation des pullup
    
    	WPUB = 0x50;	//pull up sur RB4 et RB6 (switchs)
    	//.......
    }
    Le souci est que ça ne change rien ... Je n'arrive toujours pas à avoir 5V sur RB4.

  6. #5
    inoxxam

    Re : Pull-up sur PORTB, PIC18

    Salut,
    C'est peut-être un truc de C18 que je ne connais pas mais tu es sur que la fonction Inits s'exécute toute seule comme ça, sans l'appeler?

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

    Re : Pull-up sur PORTB, PIC18

    Inits() est une fonction que j'ai déporté du main !

    En gros mon code non tronqué donnerait quelque chose du genre :

    Code:
    //configuration du PIC (aller dans "help/Topics/PIC18 config settings/"
    #pragma config CPUDIV = NOCLKDIV, USBDIV = OFF	// CONFIG1L
    #pragma config FOSC = HS, PLLEN=OFF, PCLKEN = ON, FCMEN = OFF, IESO = OFF	// CONFIG1H
    #pragma config PWRTEN = OFF, BOREN = OFF, BORV = 30					// CONFIG2L
    #pragma config WDTEN = OFF, WDTPS = 32768                                     // CONFIG2H
    #pragma config MCLRE = OFF, HFOFST = OFF				        // CONFIG3H
    #pragma config STVREN = ON, LVP = OFF, BBSIZ=OFF, XINST = OFF	// CONFIG4L
    #pragma config CP0 = OFF, CP1 = OFF						                    // CONFIG5L
    #pragma config CPB = OFF, CPD = OFF                                    			    // CONFIG5H
    #pragma config WRT0 = OFF, WRT1 = OFF						                // CONFIG6L
    //#pragma config WRTB = ON, WRTC = OFF                            			// CONFIG6H
    // Disabled WRTB for debugging.  Reenable for real.
    #pragma config WRTB = OFF, WRTC = OFF                            			// CONFIG6H
    
    #pragma config EBTR0 = OFF, EBTR1 = OFF							           	// CONFIG7L
    #pragma config EBTRB = OFF      
    
    void main (void)
    {
    	//initialisation des variables et du µC
    	Inits();
    
            //.........
    }
    
    
    void Inits(void)
    {
    	ADCON0bits.ADON = 0;	//éteindre le ADC
    	ANSELHbits.ANS10 = 0;	//RB4 en entrée numérique
    	ANSELHbits.ANS11 = 0;	//RB5 en entrée numérique 
    	TRISC =0x00;	//portC en sorties (LED collisions, LED IR, Moteurs)
    	TRISB = 0x70;	//portB en sorties (RB7 : TX RS232), en entrées (RB<4:6> : switch, récepteur IR)
    	INTCON2bits.RABPU = 0;	//activation des pullup
    
    	WPUB = 0x50;	//pull up sur RB4 et RB6 (switchs)
    	//.......
    }

  9. Publicité
  10. #7
    amoniaque

    Re : Pull-up sur PORTB, PIC18

    Problème trouvé : RB4 est relié à un potar est j'ai oublié de retirer le cavalier ... Erreur bête !

Sur le même thème :

Discussions similaires

  1. [PIC18] - Reset sur Watchdog
    Par jorg1n dans le forum Électronique
    Réponses: 3
    Dernier message: 20/12/2010, 10h00
  2. Réalisation d'un chronomètre sur PIC18
    Par Pilou81 dans le forum Électronique
    Réponses: 5
    Dernier message: 18/06/2010, 06h26
  3. Pb de PORTB sur PIC18F4520 et PICDEM2 plus
    Par ch4mp dans le forum Électronique
    Réponses: 5
    Dernier message: 02/03/2010, 18h03
  4. Comment gener que le front montant sur PortB
    Par c_po_simple dans le forum Électronique
    Réponses: 2
    Dernier message: 17/04/2008, 17h53
  5. pull up, pull down et courant consommé
    Par meliokan dans le forum Électronique
    Réponses: 28
    Dernier message: 07/10/2007, 21h05