查看: 1000|回复: 0
打印 上一主题 下一主题

调试记录:时钟总线配置问题

[复制链接]
跳转到指定楼层
沙发
发表于 2015-9-28 00:06:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试记录:时钟总线配置问题
    有两台设备,主芯片都是用的STM32。都使用了TIM2进行数据通讯,其中一台设备的PCLK1配置为HCLK,另一台设备的配置为1/2HCLK。在测试过程中发现通讯不稳定,总会丢数据。于是查了一下数据手册,发现是总线时钟配置引起的。

    解决方法如下:
图1:STM32F101xx medium-density access line block diagram
图1中可以看到TIM2挂载到APB1总线上。
STM32F101xx medium-density access line block diagram.jpg (22.08 KB, 下载次数: 0)
下载附件 保存到相册
STM32F101xx medium-density access line block diagram
2015-4-15 11:10 上传





图2 Clock tree
图2中可以看到TIM2并没有直接使用PCLK1作为实际时钟,而是根据APB1的分频系数时钟进行了调整。
Clock tree.jpg (26.95 KB, 下载次数: 0)
下载附件 保存到相册
Clock tree
2015-4-15 11:10 上传





      当设备的PCLK1设置为1/2HCLK时,APB1时钟也是1/2HCLK。由于APB1的分频系数不为1,TIM2的时钟进行了2倍频,实际运行的频率也就是HCLK了。先进行2分频再2倍频理论上运行频率和HCLK一致,但由于硬件时钟结构将这样得到的结果和直接以HCLK频率运行不完全一致,最终导致设备间通讯不稳定。确定原因后,将两台设备的PCLK1都设置为1/2HCLK,可以正常通信。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表