GD32时钟为什么与STM32不一样

[复制链接]
4254|14
 楼主| ziranren 发表于 2016-7-1 23:35 | 显示全部楼层 |阅读模式
    外部6MHz晶体,经过12倍频后,然后配置SYSTICK为7200的重装值,产生100uS中断,原来的代码是在STM32上调试OK的,将芯片换成GD32F101R8T6后,实测中断时间变成了142.5uS,折算出来的时钟频率大约是50.5M。
    不知道是PLL倍频有问题还是SYSTICK有问题?
    有朋友碰到过么?
 楼主| ziranren 发表于 2016-7-1 23:53 | 显示全部楼层
     改用TIM2作为系统Tick时钟后,配置预分频值为71,重载值为99,发现Tick中断还是142.5uS。由此看还是PLL哪里出了问题。
     看来一开始发的贴关于串口波特率的问题也是由于PLL后的时钟频率不是72M造成的。
     https://bbs.21ic.com/icview-1608746-1-1.html
     及求解,产品下周要上线贴片了。
xyz549040622 发表于 2016-7-2 17:01 | 显示全部楼层
时钟不能直接移植,需要进行修改。
 楼主| ziranren 发表于 2016-7-4 10:59 | 显示全部楼层
对比了一下GD和ST的手册,RCC->CR,和RCC-CFG两个寄存器基本一样。CFG中,GD的芯片有一个PLLMF[4]的位,与ST是不一样的。但是该为默认为0,所以对6M晶体进行12倍频,寄存器操作应该是一样的。
wzw2134 发表于 2016-7-4 11:11 | 显示全部楼层
仔细看一下手册,GD32F101系列最大主频是56Mhz
 楼主| ziranren 发表于 2016-7-4 22:31 | 显示全部楼层
wzw2134 发表于 2016-7-4 11:11
仔细看一下手册,GD32F101系列最大主频是56Mhz

是的。好像和这个是有关系的。换用GD32F103R8T6就OK了
 楼主| ziranren 发表于 2016-7-4 22:32 | 显示全部楼层
今天换了GD32F103R8T6,解决了上诉问题。如wzw2134所说,极有可能是GD32F101R8T6的主频不能超过54M。
原来用STM32F101R8T6,直接超频到72M用的。
shenmu2012 发表于 2016-7-5 11:17 | 显示全部楼层
这个看你的时钟设置的是否一样的。
firstblood 发表于 2016-7-5 13:55 | 显示全部楼层
这个跟个人的设计有关系的。
comeon201208 发表于 2016-7-6 11:02 | 显示全部楼层
这个能不一样么?基本是一脉相承的啦
 楼主| ziranren 发表于 2016-7-6 21:09 | 显示全部楼层
实践证明,GD32F101在6M晶体条件下,不能运行到72M。
供应商反馈说是芯片对PLL进行了限制,只能到9倍,如果要用72M,貌似8M晶振可以。可惜手上没有8M的晶体,木有验证一下。
182317716 发表于 2016-7-7 09:03 | 显示全部楼层
GD代理商QQ:182317716 更多样品,中文手册.开发工具支持!
---13686827076-王生
baimiaocun2015 发表于 2016-7-13 20:52 | 显示全部楼层
ziranren 发表于 2016-7-4 10:59
对比了一下GD和ST的手册,RCC->CR,和RCC-CFG两个寄存器基本一样。CFG中,GD的芯片有一个PLLMF[4]的位,与ST ...

这个细节的楼上把我的很好。
zhangbo1985 发表于 2016-7-13 21:47 | 显示全部楼层
这个在晶圆最初的设计封装阶段就决定了的啦。。不知道这样说正确不
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

181

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部