OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3034|回复: 2

STM32F411CEU6的重大硬件bug

[复制链接]

3

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-9-7
在线时间
7 小时
发表于 2019-6-27 18:22:56 | 显示全部楼层 |阅读模式
STM32F411CEU6现在很便宜,才10块多,ROM/RAM也大,有512K/64K,看起来性价比不错,不过...

有没有人用DWT_CYCCNT做精确延时?听说ucOS就是。
然后你就中招了,STM32F411CEU6的DWT_CYCCNT很不稳定,基本不能使用。

是这样的,DWT_CYCCNT是一个3位的时钟计数寄存器,每一个时钟周期+1,溢出后归0,可以直接启动这个计数器,然后读取当前值,用来做延时。

问题来了:理论上到达是2^32后,计数器归0,但是STM32F411CEU6的DWT_CYCCNT,有些片无法达到32位,甚至31位都没有,而且每片都不一样。
这样说吧:如果100MHz,计数器+1就是10ns,32位的计数器,循环一次可以去到42秒多。

然后我有10片STM32F411CEU6做测试,结果是这样的:
1、只有1片可以达到32位,但是也不稳定,几分钟就出现了到31位就归0,或者说第31位不会变动,就是到了4294967295,理论上下一个就是0,但是这个片变成了2147483648,然后再增长。

2、有几片是直接31位,无法超越到32位;
3、按照时间来说,有些5秒直接归0,有些10秒,有些2秒,数字是随机的;

然后我在网上找了外国的一个文章:https://stackoverflow.com/questi ... yccnt-counter-width
看来是STM32F411CEU6的硬伤啊,所以STM32F411CEU6这么便宜是因为这个原因吗?

如果不使用DWT_CYCCNT,那就没有关系了。

后来我换了STM32F410C8U6,没有这个问题,看来只有STM32F411CEU6才有这个问题。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2019-6-27 19:19:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2019-5-30
在线时间
4 小时
发表于 2019-6-28 14:06:18 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 04:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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