也许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条回答
yaxiaoyu
1楼-- · 2019-12-15 07:43
rosicky0301 发表于 2014-1-4 13:15
目前用了几十片,没有发现问题。即使批量生产也不可能完全没有问题,因为每个PCB的电气性能、每个晶振的 ...

这个芯片上市,很久了,也许你用到的MCU已经是厂家优化过的流片了~~你去百度搜下问题,都是2012年包括以前的RTC不稳定~
amxx
2楼-- · 2019-12-15 12:44
不知道现在的STM32 RTC是什么样子,因为不敢用了,用着用着不起振的情况都有
kevin_ares
3楼-- · 2019-12-15 12:53
 精彩回答 2  元偷偷看……
661球
4楼-- · 2019-12-15 15:29

学习了
bingchacoool
5楼-- · 2019-12-15 17:24
https://www.xiaopingtou.cn/data/attach/1912/q0uuuejyxqqpzgxmqaqueg9918tnhi3b.jpg stm32内部不是集成了一个RF电阻5M欧的,你再并联一个1M电阻,不是更弱了吗?

2015-03-26_9-06-45.png (24.73 KB, 下载次数: 0)

下载附件

2015-3-26 09:07 上传


不起振有可能是部分人晶振外壳用焊锡接地了,温度过高烫坏了晶振
study_hardware
6楼-- · 2019-12-15 20:48
增益余量 只是跟晶振内部参数有关

一周热门 更多>