也许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条回答
cht-rtos
1楼-- · 2019-12-09 19:16
 精彩回答 2  元偷偷看……
sc_jack
2楼-- · 2019-12-09 20:50
+1 ,用6Pf的晶振,10pf的两个电容解决问题

rosicky0301
3楼-- · 2019-12-10 01:59
cht-rtos 发表于 2014-1-4 12:37
内部rtc要求外部电容不能超过15pF,也就是说晶体的负载电容要小于7.5pF,晶体选择要注意以下负载电容大小 ...

是的。厂家也推荐CL<7的晶振。
68336016
4楼-- · 2019-12-10 04:14
楼主批量生产验证过了?
即使是在用6pf负载晶振情况下,还是有人遇到不起振,在本论坛和21IC就曾经有帖子。
rosicky0301
5楼-- · 2019-12-10 07:17
本帖最后由 rosicky0301 于 2014-1-4 13:16 编辑
68336016 发表于 2014-1-4 12:49
楼主批量生产验证过了?
即使是在用6pf负载晶振情况下,还是有人遇到不起振,在本论坛和21IC就曾经有帖子。 ...


目前用了几十片,没有发现问题。即使批量生产也不可能完全没有问题,因为每个PCB的电气性能、每个晶振的稳定度都有差别,这里不是在提供百分之百成功的方法,只是在说选择STM32的LSE晶振应该注意什么。6pF的晶振,如果它的ESR,Co,以及外部负载电容,PCB布线这些都不满足条件,也一样不起振。作为设计者,一定要对设计留有余量,尽量使得增益裕量大一些,这样即使有小问题的影响,也不会妨碍工作;相反,如果那些细节不注意的话,即使某个条件满足,比如6pF的电容,也一样不会工作正常。
dwiller_ARM
6楼-- · 2019-12-10 08:15
 精彩回答 2  元偷偷看……

一周热门 更多>