也许STM32的RTC晶振真的被误会了...

2019-12-09 19:15发布

本帖最后由 rosicky0301 于 2014-1-4 12:36 编辑

最近在使用STM32做产品,也对它的RTC晶振的选型及外部电容的选择有一些困惑,于是上网搜索。搜索到的结果中,最多的是抱怨STM32的RTC晶振不容易起振,RTC计时不准,或者对晶振的质量很挑。
我大致总结了网上的几种解决方案:
1.在晶振管脚两端并联1M以上电阻,以增加STM32对晶振的驱动能力
2.使用有源晶振
3.使用专用RTC芯片
4.还有一些说换个晶振就行了
5.再有专业一些的说PCB布线有问题

其实,无论是用STM32的RTC晶振还是系统主晶振,大家不妨先仔细阅读STM32官方的关于晶振设计的手册,手册上写的很清楚,选择晶振的要点是什么:
1.增益裕量,通过给定的公式来计算,决定晶振是否起振,计算结果如果>5就可以起振,<5就肯定不会起振。主要相关参数是ESR和CL,至于晶振参数的准确度,肯定大厂晶振会好一些。
2.晶振的负载电容,跟RTC计时的精度有关。通过晶振标称的CL可以求得外部负载电容应该选择什么大小的。6pF的晶振,未必就一定用6pF或10pF的外部电容就可以,这个需要计算。
3.外部电阻,手册里写的是串联电阻来限制驱动能力,其实对于使用杂牌晶振的来说,并联1M以上电阻增加驱动能力还是比较现实的。
4.对于不善计算或懒惰的同学,可以选择手册里推荐的晶振型号,但是外部电容还是需要自己计算求出。

手册里没有着重强调,但是也很关键的是PCB的走线,首先晶振走线不能离STM32太远,其次两根线应该是等长线,再就是晶振周围地线要环绕一圈防止干扰。
至于很多同志们说换个晶振就好了其实是晶振参数不一致造成的,其最根本的原因就是手册里写的增益裕量的计算。
大家能够通过手册明显看到LSE部分的增益裕量都是个位数,而HSE部分的增益裕量都是70+,这也解释了为什么HSE很少有不起振的,而LSE不起振的情况经常发生,大家可以从增益裕量这一最基本的参数来寻找原因。

我也是通过自己的体会来总结一下,未必都对,希望能对深陷STM32的RTC晶振门的同志们有所启发。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
56条回答
xjtyOnly51
1楼-- · 2019-12-13 21:39
mark, 最近一个project是加了电容才好的
physis
2楼-- · 2019-12-14 00:19
252514251 发表于 2014-1-4 13:46
我怀疑可能跟stm32 批次有关,有个片子 在我手上,用32.768k有源晶振,LSI 任然无法使用 ...

+1
最开始用stm32应该是09年,被RTC折腾的生不如死,当时用的是那个文档推荐的型号

现在但同样的板子同一批次的晶振,这两年就再也没见过RTC不起振的问题,甚至都忘了RTC会有问题这回事儿
Grant
3楼-- · 2019-12-14 02:35
68336016 发表于 2014-1-5 23:02
你那帖子很早我也看过

不过话说白了,要求过于苛刻就是以前的STM32自身问题,没有困难也要创造困难给客 ...

对于STM32的这个问题,我也认为是它自身设计考虑的冗余太少导致客户的发挥空间减少。
我们付过学费,虽然不能完全说是ST的原因,但找他们吐槽我还是干过的。
Grant
4楼-- · 2019-12-14 02:41
STM32_Study 发表于 2014-1-5 23:07
请问Grant,现在新出的STM32F1系列的RTC是否有改进的?F2、F3、F4系列的RTC是否跟F1的不同?兼容性如何? ...

有改进,但没觉得有啥好处,反倒是对用户麻烦了。
举个例子,205的不同版本,数据手册里面都写了,增益都不相同,折腾死了。

不过站在我自己的角度客观的讲,按照手册的参数设计,RTC确实没怎么出问题。
STM32_Study
5楼-- · 2019-12-14 07:44
 精彩回答 2  元偷偷看……
guoj
6楼-- · 2019-12-14 10:58
该问题,是否在现在出货的STM32F1XX中存在,好像说有改进,不知真假。

一周热门 更多>