本文介绍
SWM系列关于UART/CAN/PLL等时钟相关模块,计算波特率的方法。
01、UART波特率的计算
SWM181系列 、SWM260系列 、SWM320系列
计算公式:
目标波特率 = 系统主时钟 ÷ (16 * (BAUD + 1))
UART通讯波特率初始化:
BAUD的取值为整数为佳。如小数位大于5,串口数据包越大引起的累积误差会随之增大。
SWM190系列、SWM341系列 、SWM201系列
计算公式:
目标波特率 = 系统主时钟 ÷ (BAUD.BAUD x16 +BAUD.FRAC + 1)
UART通讯波特率初始化:
可通过 BAUD 寄存器 FRAC 位进行波特率微调,使波特率的误差在 5%以内,提高波特率精度。
02、CAN波特率的计算
SWM181系列、SWM320系列、SWM341系列
具有CAN通讯模块
计算公式:
BRP = 系统时钟÷2÷目标波特率÷(1+(BS1+1)+(BS2+1)) -1
CAN通讯波特率初始化:
注意
BRP的值要为整数。BS1、BS2的配置值要使得BRP值为整数。
1)确定目标波特率
2)确定系统时钟
3)TEMP为中间值,TEMP = 系统时钟÷2÷目标波特率。
4)SWM181系列、SWM320系列输入BRP的值,取值范围为0 ~ 31。
SWM341系列输入BRP,取值范围在0~1023。
5)输入BS1的值,取值范围为0 ~ 15。
6)B2的值会根据TEMP、BRP、BS1的值进行计算。取值范围为 0 ~ 7。
7)BS1、BS2的值不宜过小。就是采样点设置最好在后半段,即(1+bs1)/(1+bs1+bs2)推荐70%~90%。
8)CAN 初始化配置中SJW的取值建议,SJW小于PBS1和PBS2的最小值,最大值不超过4。
03、PLL时钟的计算
SWM181系列、SWM320系列、SWM341系列
具有CAN通讯模块
PLL输出频率 =
PLL输入时钟 ÷ INDIV x 4 x FBDIV ÷ OUTDIV =
VCO输出频率 ÷ OUTDIV
注意
SWM320 -- VCO输出频率需要在 [600MHz, 1200MHz] 之间。
SWM320的系统时钟不能超过120Mhz。
SWM341 -- VCO输出频率需要在 [600MHz, 1400MHz] 之间。
SWM341的系统时钟不能超过150Mhz。
SWM190系列、SWM260系列,VCO输出频率需要在 [300MHz, 600MHz] 之间。
SWM190、SWM260的系统时钟不能超过60Mhz
1)确定PLL输入时钟。可以是内部RC振荡,也可以是外部晶振
2)确定目标系统时钟
3)确定PLL_IN_DIV,一般设置为6,或是可以被PLL输入时钟源整除的数,取值范围1 ~ 31
4)确定PLL_IN_DIV,需手动输入,一般取值为5或10的倍数,取值范围1 ~ 511
5)自动计算VCO的频率,根据公式自动计算,确定必须在要求范围内。
6)PLL_OUT_DIV值会自动计算,取值必须是2,或4,或8,一般取值为8
7)系统时钟计算值,是用于与 目标系统时钟 进行比较,便于调整PLL_IN_DIV、PLL_FB_DIV、PLL_OUT_DIV。
SYNWIT MCU UART波特率、CAN波特、PLL系统时钟计算应用工具,有助于应用过程中提高对波特率、系统时钟的理解,和取值设置。
文件名:
CAN_UART_波特率 PLL时钟计算_20220314.xlsx。(存放位置在“其它公用资料”)
来源:华芯微特32位MCU
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理
审核编辑 黄宇
-
mcu
+关注
关注
146文章
17141浏览量
351101 -
时钟
+关注
关注
10文章
1733浏览量
131470 -
波特率
+关注
关注
2文章
307浏览量
34131
发布评论请先 登录
相关推荐
评论