[PIC18F46K22] Problème pour configurer l'UART2 --> BAUDCON2
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

[PIC18F46K22] Problème pour configurer l'UART2 --> BAUDCON2



  1. #1
    invite42fe2d4f

    Question [PIC18F46K22] Problème pour configurer l'UART2 --> BAUDCON2


    ------

    Bonjour,

    je suis actuellement en train de coder sur un PIC18F46K22.
    Sur ce projet, je dois gérer deux UART à 9600bauds.

    La première fonctionne sans problème.
    La deuxième, non.
    En regardant rapidement, je vois que les registres BAUDCON ne sont pas configurés de la même manière (visualisation dans Watch MPLAB).
    Malgré une configuration identique (ou du moins il me semble), le bit BRG16 de BAUDCON1 reste correctement configuré à 1 alors que celui de BAUDCON2 ne le reste pas.

    Ci dessous le code d'initialisation de mes UARTS:
    Code:
    void uart1_init(void)
    {
    // UART setup
    // No auto baud
    // Wake-up disabled
    // 16 bit baud rate generator (BRG16=1)
    // Idle state on TX is low
    // Received data are not inverted 
    	BAUDCON1 = 0b01001000;
    	SPBRGH1 = 0x01;
    	SPBRG1  = 0xA0;
    	PMD0 |= 40; // Enable clock of UART1
    // Enable received
    // 8 bit reception
    // Enable Serial Port
    	RCSTA1 = 0b10010000;
    // High speed rate (BRGH=1)
    // Asynchronous mode
    // Transmit enabled
    	TXSTA1 = 0b00100100;
    }
    
    void uart2_init(void)
    {
    // UART setup
    // No auto baud
    // Wake-up disabled
    // 16 bit baud rate generator (BRG16=1)
    // Idle state on TX is low
    // Received data are not inverted 
    	SPBRGH2 = 0x01;
    	SPBRG2  = 0xA0;
    	
    	TRISDbits.RD6 = 1;
    	TRISDbits.RD7 = 1;
    
    	TXSTA2bits.SYNC = 0;
    	PIE3bits.RC2IE = 1;
    
    	RCSTA2bits.SPEN = 1;	
    
    	BAUDCON2bits.CKTXP = 0;
    	BAUDCON2bits.DTRXP = 0;
    	BAUDCON2bits.BRG16 = 1;	
    
    	RCSTA2bits.CREN = 1;
    }
    Un fois l'initialisation terminée, BAUDCON1 reste égal à 0x48 et BAUCON2 est égal à 0x40.
    Je ne comprend pas pourquoi le bit BRG16 ne reste pas à 1.

    Après une recherche de BAUDCON2 dans le projet (Edit -> Find in files), il n'y a pas d'autres accès à BAUDCON2.

    Est-ce que quelqu'un a déjà eu ce genre de soucis ?

    Merci,

    Antoine

    -----

  2. #2
    RISC

    Re : [PIC18F46K22] Problème pour configurer l'UART2 --> BAUDCON2

    Salut,

    Pour pouvoir trouver les registres des PIC18 dans ton projet, il faut ajouter le header file du PIC18F46K22 dans l'arbre des projets dans la rubrique header files.
    Tu le trouveras ici : c:\Program Files (x86)\Microchip\mplabc18\v3.45 \h\p18f46k22.h

    NB : le lien ci-dessus est pour u PC sous Win7 et la version v3.45 du C18 (si tu as une lus vieille version commence par le mettre à jour (tu peux le faire sans désinstaller ta version actuelle.

    Attention à l'UART, il y a un errata (sauf si tu as la dernière version de silicium qui le corrige). Voir erratasheet
    Dans les anciennes versions il faut uniquement utiliser le mode BRGH=1 ET BRG16=1 (les autre combinaisons peuvent louper le bit de start :=(

    a+

Discussions similaires

  1. Problème RS232 et interruption PIC18F46K22
    Par invite831b139b dans le forum Électronique
    Réponses: 5
    Dernier message: 25/12/2012, 11h15
  2. Probléme Pour Configurer le PORTB
    Par invite7cda0f37 dans le forum Électronique
    Réponses: 6
    Dernier message: 06/02/2011, 12h26
  3. probleme spi sur pic18f46k22 ou 46j50
    Par skydarc dans le forum Électronique
    Réponses: 1
    Dernier message: 18/11/2010, 21h49
  4. configurer VNC pour appeler le viewer
    Par invite4f1cafdb dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 08/11/2007, 18h49
  5. problème pour configurer modem speedtouch 530
    Par inviteb88e7c48 dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 12/01/2007, 11h41
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...