请教STM32F103的CAN总线速度和系统时钟之间关系的问题?

LIKEY   2009-3-12 11:26 楼主
偶在调试STM32F103VBT6的CAN总线的时候,外部使用晶体为8MHz,
当设置系统时钟=8MHz,APB1=4MHz,BS1=8tq,BS2=7tq,Prescaler=5,得到波特率为50K,两个板子之间CAN收发完全正常。

当设置系统时钟使用PLL,设置为72Mhz,APB1=36Mhz,BS1=6tq,BS2=5tq,Prescaler=3,理论上波特率应该为1Mhz,两个板子之间的CAN通信却无法完成,总是提示出错。

我把系统时钟设置为36Mhz,APB1=18Mhz,BS1=6tq,BS2=5tq,Prescaler=3,理论上波特率应该为500Khz,两个板子之间的CAN通信同样无法完成,总是提示出错。

请问使用CAN通信的时候对时钟有要求么??

回复评论 (15)

can速度问题

各位路过的能帮忙看一下,分析一下原因么?
先谢了。
点赞  2009-3-12 15:31

CAN速度问题

请各位帮忙看看,

1、板子在8M的系统时钟下,当CAN总线时钟为4M或8M的时候,在CAN波特率设置为50k,100k,125k的情况下,通信都正常。

2、板子在72M的系统时钟下,当CAN总线时钟为36M的时候,在波特率为任何情况下,通信都不能正常完成。

请各位路过的帮忙看一下,问题出在哪里,我用的CAN收发器时Mcp2551,总线上只连接了2个节点。
点赞  2009-3-12 17:01

一点提示

                                   一点提示,当APB时钟为36M时,会有不能整除的问题,我前几天碰到过,要注意一下。另外,波特率不对,应该用示波器看。
点赞  2009-3-12 17:18

CAN问题

我把APB1时钟设为36M的时候,BS1=6tq,BS2=5tq,Prescaler=3,是可以整除的,而且可以方便的1MHz,500KHz,250KHz等不同频率。

波特率我看过了,没有问题的,

就是不知道问题出在哪里?不知道与硬件是否有关系??

点赞  2009-3-13 15:44

6楼 jer 

CAN问题

                                 4楼的哥们,能不能说的仔细些,如果方便,能不能把您的关于时钟和CAN部分设置发给我看看,谢谢!邮箱时daliqi@yahoo.com.cn
点赞  2009-3-13 15:49

MS还有个参数你没提到!

                                  
点赞  2009-3-13 20:12

楼主忘了加终端电阻

                                  
点赞  2009-3-13 20:31

CAN问题

回7楼的,我看了你的关于波特率的参数设置,谢谢!

回8楼的,你说的“MS”这个参数是关于什么的,在数据手册中找不到,望指教。

回9楼的,的确没有加终端电阻,我加上再试试。

继续测试。
点赞  2009-3-14 09:40

CAN问题

刚测试过,把2个节点的120欧姆终端电阻焊接上后,测试从1M的速度到10K的速度,通信全部正常。

谢谢大家。
点赞  2009-3-14 10:50

不错,准备用STM32上的CAN,正可以参考一下

                                 谢谢分享~~
点赞  2009-3-18 16:53

我也遇到了同样的问题。测试一下看看

                                  
点赞  2009-7-17 17:09
                                 关注ING
点赞  2009-8-6 15:50
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-8-23 20:03
CAN的120欧终端电阻

一般一个CAN网络最多用2个120欧终端电阻。
点赞  2009-8-24 09:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复