Advertisement

STM32F091单片机的配置与波特率计算方式

阅读量:

此前未曾涉及CAN通信相关内容,近期才开始学习相关知识,通过网络查阅了一些资料,对CAN通信的硬件部分有所了解。个人认为,对于CAN硬件知识只需掌握大致内容即可,最关键的部分在于软件代码的实现。因为硬件提供了基础支持,只要掌握如何配置波特率和过滤器等关键参数就足够了。

以STM32F091为例,系统时钟SYSCLK设置为48MHz,CAN模块运行在APB1总线上,同样配置为48MHz。

计算CAN波特率的公式为:波特率 = 48 / (Tbit × PRV)

其中Tbit表示位时间,其值等于TSEG1 + TSEG2 + TSYNC;PRV是分频系数。

TSYNC是位同步时间,其长度等于一个TSCL周期;

而TSEG1与TSEG2分别包含若干个TSCL周期的具体数值,则需要根据所需的波特率以及采样点位置进行计算。目前网络上已有多种计算工具可供下载使用。

关于采样点的设定标准如下:

当目标波特率大于800Kbps时,采样点应设置为75%;

当目标波特率大于500Kbps但不超过800Kbps时,采样点应设置为80%;

当目标波特率小于或等于500Kbps时,则采样点应设置为87.5%;

在实际操作中,输入系统时钟频率(如48MHz)、期望的采样点比例以及目标波特率后,即可得到对应的TSEG1、TSEG2以及PRV参数值。根据这些计算结果选择最符合需求的一组参数进行

全部评论 (0)

还没有任何评论哟~