Curso Básico – Microcontrolador PIC – Parte 7

USART

TX

USART do PIC - Diagrama do bloco TX

RX

USART do PIC - Diagrama do bloco RX

Cálculo do Baud Rate

Valor ideal e valor real do SPBRG

Como exemplo, vamos calcular o valor ideal do SPBRG, pensando no modo assíncrono de baixa velocidade (SYNC = 0 e BRGH = 0), para um Baud Rate de 9600 Bps, usando cristal de 4 Mhz:

BR=\frac{F_{OSC}}{64 \cdot \left ( SPBRG + 1\right )} \Rightarrow SPBRG=\frac{F_{OSC}}{64 \cdot BR}-1 SPBRG=\frac{4000000 hz}{64 \cdot 9600}-1 \Rightarrow SBBRG=6,5104-1 \Rightarrow SPBRG=5,5104

Aí aparece um grande problema: para obter a taxa ideal (9600 Bps) seria necessário colocar um valor não inteiro no registrador SPBGR (5,5104), o que é impossível. Temos que escolher, então, o valor inteiro mais próximo, o que irá ocasionar um erro na taxa de transmissão. O valor mais próximo escolhido é:

SPBRG=6

Temos que refazer o cálculo para saber se o erro obtido é muito grande:

BR=\frac{F_{OSC}}{64 \cdot \left ( SPBRG + 1\right )} \Rightarrow BR=\frac{4000000 hz}{64 \cdot \left ( 6+1 \right )} \Rightarrow BR=8928,571

Note que a taxa desejada era de 9600 Bps, mas o valor obtido foi de 8928,571 Bps. O erro é de:

Erro \left ( \% \right )=\frac{BR_{desejada}-BR_{obtida}}{BR_{desejada}} \cdot 100 \Rightarrow Erro \left ( \% \right )=\frac{9600-8928,571}{9600} \cdot 100 \Rightarrow Erro \left ( \% \right )=6,99 \%

Em muitos equipamentos de comunicação serial um erro acima de 5 % inviabiliza a comunicação. Neste caso, a opção é trocar o modo de transmissão de baixa velocidade (BRGH = 0) para o modo de alta velocidade (BRGH = 1) e refazer os cálculos. Vamos lá:

BR=\frac{F_{OSC}}{16 \cdot \left ( SPBRG + 1\right )} \Rightarrow SPBRG=\frac{F_{OSC}}{16 \cdot BR}-1 SPBRG=\frac{4000000 hz}{16 \cdot 9600}-1 \Rightarrow SBBRG=26,0416-1 \Rightarrow SPBRG=25,0416

O problema persiste: para obter a taxa ideal (9600 Bps) seria necessário colocar um valor não inteiro no registrador SPBGR (25,0416), o que é impossível. Temos que escolher, então, o valor inteiro mais próximo, o que irá ocasionar um erro na taxa de transmissão. Mas note que agora a diferença entre o valor desejado e o que se pode obter é bem menor, o que deve reduzir o erro. Assim, o valor mais próximo escolhido é:

SPBRG=25

Para saber como ficou a taxa real, basta refazer o cálculo:

Recalculando o erro:

Erro \left ( \% \right )=0,16 \%

Agora sim!

Tabelas com valores do SPBRG

Saiba mais

Software serial: Como fazer?

Soft-SPI: Biblioteca para memória SPI-Flash em microcontroladores PSoC-4

Buffer circular para sistemas embarcados

Outros artigos da série

<< Curso Básico - Microcontrolador PIC - Parte 6
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Sistemas Digitais » Curso Básico - Microcontrolador PIC - Parte 7
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 

Soluções inteligentes para acionamento de MOSFETs/IGBTs com família STDRIVE

Data: 08/10 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link