关于UART/CAN/PLL时钟计算波特率的方法

电子说

1.3w人已加入

描述

本文介绍

SWM系列关于UART/CAN/PLL等时钟相关模块,计算波特率的方法。

01

UART波特率的计算

SWM181系列 

SWM260系列  

SWM320系列

      uart

计算公式:

目标波特率 = 系统主时钟 ÷ (16 * (BAUD + 1))

UART通讯波特率初始化:

uart

       BAUD的取值为整数为佳。如小数位大于5,串口数据包越大引起的累积误差会随之增大。

SWM190系列

SWM341系列 

SWM201系列

      uart

计算公式:

目标波特率 = 

系统主时钟 ÷ (BAUD.BAUD x16 +BAUD.FRAC + 1)

UART通讯波特率初始化:

uart

       可通过 BAUD 寄存器 FRAC 位进行波特率微调,使波特率的误差在 5%以内,提高波特率精度。

02

CAN波特率的计算

SWM181系列

SWM320系列

SWM341系列

具有CAN通讯模块

      uart

计算公式:

BRP = 

系统时钟÷2÷目标波特率÷(1+(BS1+1)+(BS2+1)) -1

CAN通讯波特率初始化:

uart

注意

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通讯模块

      uartuart

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系统时钟计算应用工具,有助于应用过程中提高对波特率、系统时钟的理解,和取值设置。工具文件可以通过百度网盘进行下载应用参考。如下:

链接:

https://pan.baidu.com/s/1atLWlk1_SUR8WjISr-Bfpw

提取码:byv2

文件名:

CAN_UART_波特率&PLL时钟计算_20220314.xlsx。(存放位置在“其它公用资料”)

原文标题:SYNWIT MCU 时钟计算应用工具

文章出处:【微信公众号:华芯微特32位MCU】欢迎添加关注!文章转载请注明出处。

  审核编辑:彭菁
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分