PIC18F6390/6490/8390/8490
16.1
EUSART波特率发生器
( BRG )
BRG是一个专用的8位或16位发生器
同时支持异步和同步
在EUSART模式。默认情况下, BRG工作
在8位模式;将BRG16位( BAUDCON1<3> )
选择16位模式。
在SPBRGH1 : SPBRG1寄存器对控制期
的自由运行的定时器。在异步模式下,
BRGH ( TXSTA1<2> )和BRG16 ( BAUDCON1<3> )位
也控制波特率。在同步模式下, BRGH
被忽略。表16-1所示的公式计算
波特率为不同EUSART模式的,只有
适用于主控模式(内部时钟) 。
鉴于所需的波特率和F
OSC
,最近
SPBRG1寄存器可以:为SPBRGH1整数值
使用表16-1中的公式计算。从
这一点,可以判断波特率的误差。一个应试
PLE计算方法见例16-1 。典型的波特
不同异步率和误差值
模式示于表16-3 。它可以是advanta-
geous使用高波特率( BRGH =
1)
或16位
BRG降低波特率误差,或实现一个缓慢
波特率快速振荡频率。
写一个新值到SPBRGH1 : SPBRG1寄存器
TER值会导致BRG定时器复位(或清零) 。这
确保BRG无需等待定时器溢出
之前输出新的波特率。
16.1.1
操作电源管理
模式
器件的时钟被用于产生期望的波特
率。当电源管理模式之一是
进入,新的时钟源可以在一个被操作
不同的频率。这可能需要调整
在SPBRG1寄存器对的值。
16.1.2
采样
上RX1引脚的数据是由一个采样三次
多数检测电路,以确定是否一个高或低
电平是存在于RX1引脚。
表16-1:
波特率公式
BRG / EUSART模式
波特率计算公式
F
OSC
/[64 (n + 1)]
F
OSC
/[16 (n + 1)]
F
OSC
/[4 (n + 1)]
CON组fi guration位
SYNC
BRG16
BRGH
0
0
0
8-Bit/Asynchronous
0
0
1
8-Bit/Asynchronous
0
1
0
16-Bit/Asynchronous
0
1
1
16-Bit/Asynchronous
1
0
x
8-Bit/Synchronous
1
1
x
16-Bit/Synchronous
图例:
x
=不关心, SPBRGH1的N =价值: SPBRG1寄存器对
例16-1:
计算波特率误差
对于使用F装置
OSC
为16 MHz ,目标波特率为9600 ,异步模式, 8位BRG :
所需的波特率
= F
OSC
/ (64 ( [ SPBRGH1 : SPBRG1 〕+ 1))的
求解SPBRGH1 : SPBRG1 :
X = ( (F
OSC
/目标波特率) / 64 ) - 1
= ((16000000/9600)/64) – 1
= [25.042] = 25
计算波特率= 16000000 / ( 64 ( 25 + 1 ) )
= 9615
错误
= (计算波特率 - 目标波特率) /目标波特率
= (9615 – 9600)/9600 = 0.16%
表16-2:
名字
TXSTA1
RCSTA1
与波特率发生器相关的寄存器
第7位
中国证监会
SPEN
第6位
TX9
RX9
第5位
TXEN
SREN
4位
SYNC
CREN
第3位
SENDB
ADDEN
第2位
BRGH
FERR
—
第1位
TRMT
OERR
WUE
位0
TX9D
RX9D
ABDEN
复位值
在页
—
SCKP
BRG16
BAUDCON1 ABDOVF RCIDL
SPBRGH1
EUSART1波特率发生器寄存器的高字节
SPBRG1
EUSART1波特率发生器寄存器的低字节
图例:
- =未用,读为“0” 。阴影部分未被使用的BRG 。
©
2007 Microchip的技术公司
DS39629C第201页