.... sono andato a leggere il datasheet
allora
Fosc=16.000.000
baud Rate = 115.00 = _______________
16( X +1)
per cui
1 16 * X + 16
__________ =__________________
115.200 16.000.000
16.000.000
__________ - 16 = 16 * X
115.200
16.000.000
_____________ - 16
115.200
HBRG X= ___________________ = 7.68
16
ma deve essere un numero intero quindi 8
però in realtà se facciamo gli stessi calcoli usando 4.000.000 e un baud rate di 9600
X = 25,04 che arrotondato con 25 rappresenta un dato quasi esatto, con una differenza meno di 0.06 in questo caso invece abbiamo uno scarto di
0.32 , ben più grande... forse e ripeto fors,e potrebbe essere meglio usare un 20 Mhz magari otteniamo un' arrotondamento meno aggressivo?
faccio una prova...
Citazione:
Originalmente inviato da ElNonino Basta usare la formula appropiata per settare il registro del divisore SPBRG, avendo cura di settare anche il birt BRGH.
la formula è: Baud Rate = FOSC/(16 (X + 1))
risolta per X: X=((FOSC/Baud Rate)/16) - 1
nel caso di FOSC = 16MHz e Baud rate = 115.200 avrai SPBRG = 8 ( errore di br accettabile, divisore teorico sarebbe 7,68)
Se hai FOSC = 4 MHz non puoi usare i 115.200 Baud.  |