Pic18 -rs232
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Pic18 -rs232



  1. #1
    asirem

    Pic18 -rs232


    ------

    Bonjour


    j arrive pas a communiquer avec le pic via le module UART :et je pense que c'est un probléme de baud

    ma config
    pic18f4550+quartz(20Mhz)

    PLLDIV: Divide by 5
    CPUDIV: [primary OSC src :/1][96MHZ PLL src /2]

    les deux pins RC6 et RC7 configuré en entré suivant datasheet !! ( bit TRISC<7> must be set (= 1)
    • bit TRISC<6> must be set (= 1) )



    OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE &USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 77);

    le pic ne reçois pas les caractére et m affiche des caractére bizard ( utilisé avec isis en simulation )

    qlq1 voit l erreur ? parceque là je suis perdu !

    -----

  2. #2
    cubitus_54

    Re : Pic18 -rs232

    Bonjour,

    Je n'ai pas compris tes paramètres... mais peu importe...

    Sous ISI tu mets l'oscilloscope et tu mesures la durée d'un bit et tu sauras à quelle vitesse ton système communique..

  3. #3
    asirem

    Re : Pic18 -rs232

    Merci pour cette repense
    pouvez vous me dire comment calculé la vitesse sous isis j ai mesuré un bit pratiquement 5ùs

  4. #4
    asirem

    Re : Pic18 -rs232

    j ai refait âs mal de fois les calcules
    FSC=48Mhz // ( plldiv=5, cpudiv, quartz 20mhz)
    donc
    USART_BRGH_HIGH ce qui donne

    ((48000000/9600)/64)-1=77
    je suis perdu là

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

    Re : Pic18 -rs232

    svp quelqu'un peut m aider sur cette config ?
    config
    quartz 20mhz +pic18F4550
    #pragma config PLLDIV = 5
    #pragma config CPUDIV = OSC1_PLL2

    donc la frequence est 48Mhz
    USART_BRGH_HIGH
    donc
    ((48000000/9600)/16)-1=311

    j initialise le module
    Code:
    OpenUSART (USART_TX_INT_OFF &
    USART_RX_INT_OFF &
    USART_ASYNCH_MODE &
    USART_EIGHT_BIT &
    USART_CONT_RX &
    USART_BRGH_HIGH,311);
    et lorsque je fait un test de lecture :
    Code:
    	
                           char test;
    			test = '1';
    			WriteUSART(test);
    il m'affiche pas 1 ou 0x31

  7. #6
    paulfjujo

    Re : Pic18 -rs232

    bonjour,


    Attention aux bits de configuration
    Code:
    //Avec une config par defaut et seulement
    #pragma config MCLRE = ON   // pour profiter du BP Reset sur le module
    //Désactiver Low Power Voltage pour activer RB5
    #pragma config LVP = OFF
    //Watch dog off
    #pragma config WDT = OFF
    //Clock externe : quartz 20MHz
    #pragma config FOSC = HS    
     
    #define BAUDS 9600
    unsigned int BRG_REG;
    
    
    void Init_UART1(void)
    {
    // voir para 18.5 spec sheet DS41159B page 186
    // 9600   130 @ 20MHz      sinon  3900 bauds a 8Mhz
    // 19200  64 @ 20MHz 
    // 38400  32 @ 20MHz 
    // 115200  10 @ 20MHz 
    switch ( BAUDS)
    {
        case 9600: BRG_REG=130;break;
        case 19200: BRG_REG=64;break;
        case 38400: BRG_REG=32;break;
        case 115200: BRG_REG=10;break;
        default: 
        BRG_REG=130;
         break;
    
    }
    OpenUSART( USART_TX_INT_OFF &
    USART_RX_INT_ON &
    USART_ASYNCH_MODE &
    USART_EIGHT_BIT &
    //USART_CONT_RX &
    USART_SINGLE_RX &
    USART_BRGH_HIGH,BRG_REG 
    ); //130 pour 9600 bds @20Mhz
    IPR1bits.RCIP=1;  // high priority for UART
    RCONbits.IPEN = 1;     // Enable High interrupt priority model.
    RCIE = 0;
    PEIE = 0 ; // autorisation des IT des périphériques
    GIE = 0 ; // autorisation globale des IT
    }

  8. #7
    asirem

    Re : Pic18 -rs232

    Merci pour votre repense mais ca marche pas
    voilà mes configs

    Code:
    #pragma config PLLDIV = 5 
    #pragma config CPUDIV = OSC1_PLL2 
    #pragma config USBDIV = 2 
    
    #pragma config FOSC = HS 
    //#pragma config FCMEM = OFF 
    #pragma config IESO = OFF 
    
    #pragma config PWRT = OFF 
    #pragma config BOR = ON 
    //#pragma config BORV = 28 
    #pragma config VREGEN = ON 
    
    #pragma config WDT = OFF 
    #pragma config WDTPS = 1 
    
    #pragma config MCLRE = ON 
    #pragma config LPT1OSC = OFF 
    #pragma config PBADEN = OFF 
    #pragma config CCP2MX = OFF
    
    #pragma config STVREN = OFF 
    #pragma config LVP = OFF 
    #pragma config ICPRT = OFF 
    #pragma config XINST = OFF 
    #pragma config DEBUG = OFF 
    
    #pragma config CP0 = OFF 
    #pragma config CPB = OFF 
    #pragma config WRT0 = OFF 
    #pragma config WRTB = OFF 
    #pragma config EBTR0 = OFF 
    #pragma config EBTRB = OFF
    
    
    
    void UserInit(void)
    {
    	TRISC =0b10111100 ;
    
            TRISB =255;
            PORTB = 0; 
    	TRISD = 0;
            PORTD = 0;
           BRG_REG=311;
           OpenUSART( USART_TX_INT_OFF &
    USART_RX_INT_ON &
    USART_ASYNCH_MODE &
    USART_EIGHT_BIT &
    //USART_CONT_RX &
    USART_SINGLE_RX &
    USART_BRGH_HIGH,BRG_REG 
    ); 
        
    }
    311 puisque mon pic tourne a 48mhz
    je trouve pas le probléme tjr !!!!

  9. #8
    asirem

    Re : Pic18 -rs232

    aidez moi je suis a court d idée là je trouve pas
    j ai meme refait un autre programme ou j ai mis que le uart

    Code:
    #include <p18cxxx.h>
    #include "usart.h"
     char test ;
     char BRG_REG   ;
    
    #pragma config PLLDIV = 5 
    #pragma config CPUDIV = OSC4_PLL6 
    #pragma config USBDIV = 2 
    //#pragma config FOSC=HSPLL_HS
    #pragma config FOSC = HS 
    //#pragma config FCMEM = OFF 
    #pragma config IESO = OFF 
    
    #pragma config PWRT = OFF 
    #pragma config BOR = ON 
    //#pragma config BORV = 28 
    #pragma config VREGEN = ON 
    
    #pragma config WDT = OFF 
    #pragma config WDTPS = 1 
    
    #pragma config MCLRE = ON 
    #pragma config LPT1OSC = OFF 
    #pragma config PBADEN = OFF 
    #pragma config CCP2MX = OFF
    
    #pragma config STVREN = OFF 
    #pragma config LVP = OFF 
    #pragma config ICPRT = OFF 
    #pragma config XINST = OFF 
    #pragma config DEBUG = OFF 
    
    #pragma config CP0 = OFF 
    #pragma config CPB = OFF 
    #pragma config WRT0 = OFF 
    #pragma config WRTB = OFF 
    #pragma config EBTR0 = OFF 
    #pragma config EBTRB = OFF
    
    void UserInit(void)
    {
    ADCON1 |= 0x0F;     
    	TRISC =0b10111100 ;
    	PORTC =0;
        TRISB =255;
        PORTB = 0; 
    	TRISD = 0;
        PORTD = 0;
    	BRG_REG=103;
    OpenUSART( USART_TX_INT_OFF &
    USART_RX_INT_ON &
    USART_ASYNCH_MODE &
    USART_EIGHT_BIT &
    //USART_CONT_RX &
    USART_SINGLE_RX &
    USART_BRGH_HIGH,BRG_REG 
    ); //130 pour 9600 bds @20Mhz
    
        
    }
    
    
    
    
    void main(void)
    {
        UserInit();
       
    	
    
        while(1)
    
        {
    
    
    
    
    
    if (PORTCbits.RC2 == 0) {
    while (BusyUSART());
    			test = '1';
    			WriteUSART(test);
    }
    
    
    
    }
    }
    au principe là je suis a 16Mhz et le BRG_REG=103 { (1600000/9600/16)-1=103}
    et ca marche pas en plus j ai pleins d erreurs sur et il crash alors k avec MicroC ca marche !
    svp qlq1 a une idée

  10. #9
    RISC

    Re : Pic18 -rs232

    Salut,

    Dans les exemples de code ( http://www.microchip.com/CodeExamplesByFunc.aspx) tu trouveras un ou plusieurs exemples pour initialiser l'UART (sans utiliser les librairies).
    A priori ton setup des bits de configurations à l'air correct.
    Si tu utilises un quartz de 20MHz, il faut diviser par 5 et utiliser la PLL (HS_PLL) pour avoir 20 / 5 * 4 = 16MHz.
    Relis le chapitre sur les I/O. Si jamais les broches que tu utilises pour l'UART sont multiplexées avec des entrées analogiques (ANx) il faut absolument initialiser le registre ADCON (ou ANSEL) en mode DIGITAL pour ces broches.

    a+

  11. #10
    paulfjujo

    Re : Pic18 -rs232

    bonjour,



    BRG_REG=103 { (1600000/9600/16)-1=103}et ca marche pas
    as tu le radix decimal par defaut. sinon l'ecriture de 103 donne 103H = 259
    et meme 03 dans ton cas...
    car de plus BRG_REG doit etre un int (16 bits) , et non pas un char .

Discussions similaires

  1. [PIC18]-Mode SPI
    Par jorg1n dans le forum Électronique
    Réponses: 20
    Dernier message: 06/04/2009, 16h31
  2. Dérive PIC18
    Par invitee4b44406 dans le forum Électronique
    Réponses: 18
    Dernier message: 12/09/2008, 15h31
  3. jeu d'instruction pic18
    Par invite9293de6d dans le forum Électronique
    Réponses: 3
    Dernier message: 11/09/2008, 19h32
  4. pic18 et clef USB
    Par invite91a05f0b dans le forum Électronique
    Réponses: 11
    Dernier message: 05/09/2008, 09h46
  5. programmation PIC18
    Par invite69ee2a36 dans le forum Électronique
    Réponses: 1
    Dernier message: 22/03/2007, 16h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.