- Messaggi: 5
- Ringraziamenti ricevuti 0
EUSART: BaudRate e SPBRG con PIC18F2550
10 Anni 2 Mesi fa #1
da zimbolo
EUSART: BaudRate e SPBRG con PIC18F2550 è stato creato da zimbolo
Salve a tutti!
Ho un quesito riguardo il settaggio della EUSART ed el valore SPBRG.
Vi illustro...
Ho necessità di comunicare con un dispositivo (è un display touch con controller) via rs232 a un baudrate di 115200.
Spulciando i sacri testi leggo che, con SYNC = 0 BRGH = 1 BRG16 = 0, per ottenere un baudrate di 115200 dovrei impostare SPBRG a 10.
Ho fatto dei test di colloquio col pc (sw tera term) e in realtà riesco a dialogare a 115200 solo se setto SPBRG a 25 e questo fatto mi incuriosisce e vorrei approfondire.
Di seguito una piccola "anamnesi" e lo stralcio di codice per l'apertura della porta.
Qualcuno sa dove mi sto incartando?
hardware:
micro Pic18F2550
quarzo 20Mhz
Serial Adapter RS232/TTL basato su MAX3232 (scheda: www.microbot.it/documents/mr002-001_datasheet.pdf)
stralcio di fw per il C18:
OpenUSART( USART_TX_INT_OFF & // disables transmission
// interrupt
USART_RX_INT_OFF & // disables reception
// interrupt
USART_ASYNCH_MODE & // sets it in asynchronous mode
USART_EIGHT_BIT& // sets to use 8-bit data mode
USART_CONT_RX & // sets the port in continues
// receive mode
USART_BRGH_HIGH, // uses the high sped Baud rate
// formula
25 );
Avete idea del perchè?
Valerio
Ho un quesito riguardo il settaggio della EUSART ed el valore SPBRG.
Vi illustro...
Ho necessità di comunicare con un dispositivo (è un display touch con controller) via rs232 a un baudrate di 115200.
Spulciando i sacri testi leggo che, con SYNC = 0 BRGH = 1 BRG16 = 0, per ottenere un baudrate di 115200 dovrei impostare SPBRG a 10.
Ho fatto dei test di colloquio col pc (sw tera term) e in realtà riesco a dialogare a 115200 solo se setto SPBRG a 25 e questo fatto mi incuriosisce e vorrei approfondire.
Di seguito una piccola "anamnesi" e lo stralcio di codice per l'apertura della porta.
Qualcuno sa dove mi sto incartando?
hardware:
micro Pic18F2550
quarzo 20Mhz
Serial Adapter RS232/TTL basato su MAX3232 (scheda: www.microbot.it/documents/mr002-001_datasheet.pdf)
stralcio di fw per il C18:
OpenUSART( USART_TX_INT_OFF & // disables transmission
// interrupt
USART_RX_INT_OFF & // disables reception
// interrupt
USART_ASYNCH_MODE & // sets it in asynchronous mode
USART_EIGHT_BIT& // sets to use 8-bit data mode
USART_CONT_RX & // sets the port in continues
// receive mode
USART_BRGH_HIGH, // uses the high sped Baud rate
// formula
25 );
Avete idea del perchè?
Valerio
Si prega Accedi o Crea un account a partecipare alla conversazione.
- zimbolo
- Autore della discussione
- New Member
Riduci
Di più
10 Anni 2 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic EUSART: BaudRate e SPBRG con PIC18F2550
Ciao Valerio,
benvenuto nel Forum
Decisamente i conti non tornano.
Sospetto che hai il PLL attivo.
Quali sono le impostazioni del modulo clock?
...e perche' non usi RS232 Terminal ?
Saluti,
Mauro
benvenuto nel Forum
Decisamente i conti non tornano.
Sospetto che hai il PLL attivo.
Quali sono le impostazioni del modulo clock?
...e perche' non usi RS232 Terminal ?
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 2 Mesi fa #3
da zimbolo
Risposta da zimbolo al topic EUSART: BaudRate e SPBRG con PIC18F2550
Mauro,
i tuoi sospetti sono fondati.
Effettivamente ho inserito il codice per la USART all'interno di un fw più ampio che è nato per la USB full speed... Sicchè è da considerare nella formula per lo SPBRG un clk di 48Mhz... is it correct?
Valerio
i tuoi sospetti sono fondati.
Effettivamente ho inserito il codice per la USART all'interno di un fw più ampio che è nato per la USB full speed... Sicchè è da considerare nella formula per lo SPBRG un clk di 48Mhz... is it correct?
Valerio
Si prega Accedi o Crea un account a partecipare alla conversazione.
- zimbolo
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 5
- Ringraziamenti ricevuti 0
10 Anni 2 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic EUSART: BaudRate e SPBRG con PIC18F2550
Ciao,
considerando che ti lavora con SPBRG = 25 sospetto che hai un cock a 48MHz, ovvero l'uscita del PLL e' divisa per 2.
Saluti,
Mauro
...PS,
non hai risposto alla mia domanda!
considerando che ti lavora con SPBRG = 25 sospetto che hai un cock a 48MHz, ovvero l'uscita del PLL e' divisa per 2.
Saluti,
Mauro
...PS,
non hai risposto alla mia domanda!
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 2 Mesi fa - 10 Anni 2 Mesi fa #5
da zimbolo
Risposta da zimbolo al topic EUSART: BaudRate e SPBRG con PIC18F2550
Mauro,
allora... per prima cosa rispondo alla tua domanda...
Non ho ancora usato "RS232 Terminal" semplicemente perchè non lo conoscevo...
Di sicuro ora lo installo e lo provo!
Riguardo al clock è in effetti a 48Mhz con uscita PLL/2.
Per toglierci ogni dubbio posto anche il frammento di fw relativo alla configurazione:
#pragma config PLLDIV = 5 // 20Mhz external oscillator
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2 // Clock source from 96MHz PLL/2
#pragma config FOSC = HSPLL_HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOR = ON
#pragma config BORV = 3
#pragma config VREGEN = ON
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
// #pragma config CCP2MX = ON
#pragma config STVREN = ON
#pragma config LVP = OFF
// #pragma config ICPRT = OFF
#pragma config XINST = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
// #pragma config CP2 = OFF
// #pragma config CP3 = OFF
#pragma config CPB = OFF
// #pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
// #pragma config WRT2 = OFF
// #pragma config WRT3 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
// #pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
// #pragma config EBTR2 = OFF
// #pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
//PWM
#pragma config CCP2MX = ON
allora... per prima cosa rispondo alla tua domanda...
Non ho ancora usato "RS232 Terminal" semplicemente perchè non lo conoscevo...
Di sicuro ora lo installo e lo provo!
Riguardo al clock è in effetti a 48Mhz con uscita PLL/2.
Per toglierci ogni dubbio posto anche il frammento di fw relativo alla configurazione:
#pragma config PLLDIV = 5 // 20Mhz external oscillator
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2 // Clock source from 96MHz PLL/2
#pragma config FOSC = HSPLL_HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOR = ON
#pragma config BORV = 3
#pragma config VREGEN = ON
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
// #pragma config CCP2MX = ON
#pragma config STVREN = ON
#pragma config LVP = OFF
// #pragma config ICPRT = OFF
#pragma config XINST = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
// #pragma config CP2 = OFF
// #pragma config CP3 = OFF
#pragma config CPB = OFF
// #pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
// #pragma config WRT2 = OFF
// #pragma config WRT3 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
// #pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
// #pragma config EBTR2 = OFF
// #pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
//PWM
#pragma config CCP2MX = ON
Ultima Modifica 10 Anni 2 Mesi fa da zimbolo.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- zimbolo
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 5
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.