也许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条回答
rosicky0301
1楼-- · 2019-12-11 04:19
本帖最后由 rosicky0301 于 2014-1-4 13:51 编辑
252514251 发表于 2014-1-4 13:46
我怀疑可能跟stm32 批次有关,有个片子 在我手上,用32.768k有源晶振,LSI 任然无法使用 ...


也不排除有的片子有问题,最好排除一下软件原因和其他硬件原因,然后换其他批次芯片试试。
oped001
2楼-- · 2019-12-11 06:11
dtszcr 发表于 2014-1-4 13:27
用20PF电容,还没遇到问题

太大了吧,你做了多少量?
dtszcr
3楼-- · 2019-12-11 09:58
oped001 发表于 2014-1-4 13:54
太大了吧,你做了多少量?

可能也是量不多,几百个吧
AWEN2000
4楼-- · 2019-12-11 12:52
 精彩回答 2  元偷偷看……
tbbt
5楼-- · 2019-12-11 17:00
一般杂牌的6PF的晶振,用下来至少20%左右有问题的,用KDS、EPSON之类好点的有个别不行,一般焊上去好用的,之后很少会坏,PCB设计上尽量离STM32要近,走线要粗。
wangguanfu
6楼-- · 2019-12-11 17:14
掳主
ST早期版本的 可以把你整到死的感觉 不信你就买点以前的Z版本或者B版本等来实验
新版本的STM32 已经不怎么挑晶振了 所以:才有了你LZ位置的结论“!

一周热门 更多>