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

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • zimbolo
  • New Member
  • New Member
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

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
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

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • zimbolo
  • New Member
  • New Member
Di più
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! :)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
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
Ultima Modifica 10 Anni 2 Mesi fa da zimbolo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • zimbolo
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login