USART
TX
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:
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 é:
Temos que refazer o cálculo para saber se o erro obtido é muito grande:
Note que a taxa desejada era de 9600 Bps, mas o valor obtido foi de 8928,571 Bps. O erro é de:
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á:
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 é:
Para saber como ficou a taxa real, basta refazer o cálculo:
Agora sim!
Tabelas com valores do SPBRG
Saiba mais
Soft-SPI: Biblioteca para memória SPI-Flash em microcontroladores PSoC-4













