工作模式以及设置的注意问题:
LIN-UART有四种工作模式,工作模式通过UART串行寄存器(SMR)的MD0和MD1位选择。模式0与模式2用于双向串行通信,模式1用于主/从通信,模式3用于UART主/从通信
UART串行模式寄存器(SMR)的MD0与MD1位用于选择UART工作模式
MD1 MD0 模式 类型
0 0 0 异步(正常模式)
0 1 1 异步(多处理模式)
1 0 2 同步(正常模式)
1 1 3 异步(LIN模式)
波特率:
LIN-UART波特率生成器寄存器1、0(BGR1、BGR0)分别设置两个15位重载计数器
波特率的计算式如下:
重载值:V=(MCLK/b)-1
v:重载值
b:波特率
MCLK:机器时钟或外部时钟频率
计算实例:
假设机器时钟为10MHz,使用内部时钟且波特率设定为19200bps:
v=(10*1000000/19200)-1=520.83=521
因此:实际的波特率为:b=(10*1000000/521)=19193.8579
异步模式下的通信需要一下顺序设置:
1、LIN-UART波特率生成器1,0(BGR1、BGR0),将专用波特率重载计数器设置为需求值
2、LIN-UART串行模式寄存器(SMR)
SCKE:1--使用专用波特率重载计数器
0--输入外部时钟
SOE: 1--允许发送/接收
0:仅允许接收
3、LIN-UART串行控制寄存器(SCR)
TXE: 1--允许发送
0--禁止发送
RXE: 1--允许接收
0--禁止接收
AD: 1--地址帧
0--数据帧
CL: 1--数据长度选择8位
0--数据长度选择7位
CRE: 1--因错误标志清除,发送/接收停止
0--无效
P: 1--偶校验
0--奇校验
SBL: 1--停止位长2
0--停止位长1
4、LIN-UART串行状态寄存器(SSR)
BDS: 1--MBS优先
0--LBS优先
TIE: 1--允许发送中断
0:禁止发送中断
RIE: 1--允许接收中断
0--禁止接收中断
5、LIN-UART扩展通信控制寄存器(ECCR)
SSM: 1--使用启/停位(扩展功能)
0--未使用启/停位(正常)
MS: 1--串行时钟接收端(从串行时钟的发送端输入)
0--串行时钟发送端(串串行时钟)