搜索
bottom↓
回复: 34

【原创】STM32 RTC(实时时钟) 32.768kHz晶振起振指南

  [复制链接]

出0入0汤圆

发表于 2013-4-28 14:48:05 | 显示全部楼层 |阅读模式
STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了。。。很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了”

更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量。。。

最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象。而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振。。。后来在另外一片实验性质的板子上首次遇到了晶振不起振的问题,而且做了2片都不起振,这才让我意识到这个问题的严重性。

从上述现象来看,我认为对RTC晶振起振影响最大的因素应该是PCB的布线。但是遇到问题时通常是PCB已做好,甚至已经做了几百块,没有回头路了。于是大家更关注的问题似乎就是“如何补救”了。在网上搜索一下,你就会发现世界是如此美好!每个人的经验和建议都不一样,甚至是完全相反的!这种现象告诉我们,除了PCB布线,对晶振起振影响最大的似乎不是电气参数,而是另外一种不可忽略的因素——人品!

各种相互矛盾的经验也告诉我们,导致晶振不起振的原因是多种多样的,也是因“人”而异的。也许,我们无法找到一个绝对有效的经验一举解决STM32的RTC晶振这个让人头疼的问题,但我们可以从各种经验中找到一些线索,为最终摸索到适合自己这块板子的解决方案提供一些帮助和提示。

如果晶振不起振,尤其是你已经使用了传说中的爱普生6pF晶振后还是不行,也许你应该尝试对以下几个方面排列组合,找到适合你这块板子的,更容易起振的方式。

下面就罗列一下可能影响RTC晶振起振的因素
1. 晶振的品牌和负载电容
大家貌似都知道要用6pF的晶振,但我发现其实12.5pF的也可以用。大家都说KDS日本原装的好,我那个3毛钱的国产晶振貌似也没啥大问题。。。
2. 晶振外接的匹配电容
有人说6pF的晶振要配6pF的电容。但有经验公式指出这个电容的值应该是晶振本身负载电容的两倍,6pF的晶振应该配10pF的匹配电容,当然12.5pF的就应该配20pF或者22pF的电容了~电容值不匹配可能造成晶振不起振。更神奇的是,有人指出去掉外接的匹配电容会使晶振起振!这似乎没啥道理,但在我的板子上,有且仅有这个方案是可行的!!!
3. 晶振并联的反馈电阻
晶振可以并联一个高阻值的电阻,据说这样更容易起振。。。这个电阻的阻值有人说是1MΩ,有人说是5MΩ,也有人说是10MΩ,,,当然也有人说不能并联这个电阻,并联了反而不起振
4. XTALout到晶振间串联电阻
这种做法是官方的应用笔记指出的,而且给出了这个电阻的计算公式。对这个电阻的的必要性也是众说纷纭,同样存在两种矛盾的说法,即必须要有这电阻,否则不起振。还有一说不能有这个电阻,否则不起振。。。从官方的应用笔记来看,这个电阻的主要作用是保护晶振,以防晶振发热。由此看来这个这个电阻似乎并非影响晶振起振的主要因素,甚至可能让晶振更难起振。
5. 晶振的外壳是否接地
这个就不用说了吧。。。晶振的外壳是金属的,做封装时可以把那个焊盘做成机械焊盘而悬空,也可以做成电气焊盘,然后连接到GND。对这个说法同样存在争议,有人说外壳必须接地,也有人说接地后反而不起振。
6. 提高Vbat引脚的电源质量
这种说法是有一定道理的,因为RTC部分是由Vbat的来供电的。有人说Vbat引脚对电源质量要求比较高,如果纹波较大可能会影响晶振的起振。更有人说反而需要一些噪声,激励晶振产生正反馈从而顺利起振(本人对此表示呵呵)。。。但不管怎样,提高电源质量对大家都是好事~
7. 晶振周围的环境
有人指出应该仔细清洗RTC晶振周围的电路,甚至是使用环氧树脂胶将晶振密封起来。这种说法得到了一些人的支持,看来也是有相当多的事实依据。
8. 减少晶振焊接时加热的时间
有人认为长时间加热晶振进行焊接会对晶振本身带来影响,却不是彻底损坏晶振,从而使得晶振不容易起振。。。这种说法我没验证过,个人表示怀疑。。。
9. 焊接的焊锡量
这个种说法感觉就更不靠谱了,但真的有人在晶振引脚上多加了点焊锡晶振就能起振了。从原理上说,多加点焊锡确实会改变晶振和PCB间的寄生参数,但我感觉影响微乎其微。。。可能晶振已经徘徊在临界值的边缘了,这种做法才会起到一点作用。
10. 使用有源晶振
个人认为这是一劳永逸解决晶振不起振问题的不二法门!有人对STM32的RTC晶振不易起振的原因做了一个解释,即出于低功耗的考虑,STM32对晶振的驱动功率比较低,所谓“好鼓不用重锤”,一些差的晶振就需要更高的驱动功率,所以不易起振。我认为这种解释是有道理的。使用有源晶振则不存在驱动功率的问题,如果问题确实是因为驱动功率造成的,那使用有源晶振毫无疑问可以彻底解决问题。而且目前网上还没看到说有源晶振不起振的求助帖。但是有源晶振通常比较昂贵,甚至要比一颗外置的RTC芯片还要贵。至于这个问题的取舍,就要看各位看官自己的想法了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。

出110入0汤圆

发表于 2013-4-28 20:55:48 | 显示全部楼层
STM32F4/F2/L1这几个系列的RTC功能和寄存器完全变了,晶振的驱动电路也应该没有问题了

出0入0汤圆

发表于 2013-6-19 10:41:06 | 显示全部楼层
楼主总结了这么多,其实还是众说纷纭,没一个完善的解决方案

出0入0汤圆

发表于 2013-6-20 10:14:11 | 显示全部楼层
有没有最终解决方法呀

出0入0汤圆

发表于 2013-6-20 12:49:01 | 显示全部楼层
最好根据自己的经验,给出合理的解决建议,不是人云亦云!

出0入8汤圆

发表于 2013-6-20 15:59:40 | 显示全部楼层
爱普生6pF晶振有很多中型号,他们的参数都不一样,还是有很大差别的,去搜我回答过的帖子关于如何选一个合适的RTC晶振,会找到经验的。那些经验其实在ST的应用笔记中都有提到,没太在意,出了问题才发现。可是晚了,公司赔了快四十万。

RTC起振失效这个事情实在是整得太大,为这个和ST欧洲的设计团队、爱普生原厂的折腾了好几回,总算搞明白一些。以前也不太关心这个,以为只要找个6pF的就行,其实还差远了,能起振只能说拼人品,用的是设计余量不稳定啊。芯片本身没问题,只是太挑晶振参数,完全匹配的不好找。

出0入0汤圆

发表于 2013-6-21 08:57:50 | 显示全部楼层
正好要用到,谢谢楼主喽

出0入0汤圆

发表于 2013-6-21 09:12:50 | 显示全部楼层
我这里测试的是,不能起振的芯片,链接晶振的两只引脚用万用表2M电阻党能测量出阻值。 能正常起振的阻止无穷大。

出0入0汤圆

发表于 2013-6-21 14:31:28 | 显示全部楼层
这个问题,在两年前就解决了,公司的东西,方法太好提供...

出0入0汤圆

发表于 2013-6-21 21:19:02 | 显示全部楼层
学习了~~~

出0入0汤圆

发表于 2013-8-25 22:14:46 | 显示全部楼层
各有各的情况

出0入0汤圆

发表于 2013-8-25 23:00:09 | 显示全部楼层
人品??!!

出0入16汤圆

发表于 2013-8-25 23:31:20 | 显示全部楼层
还是没有推出一条合理的解决办法,或者说给出一个具体的方案!

出0入0汤圆

发表于 2013-8-26 00:14:26 | 显示全部楼层
Grant 发表于 2013-6-20 15:59
爱普生6pF晶振有很多中型号,他们的参数都不一样,还是有很大差别的,去搜我回答过的帖子关于如何选一个合 ...

请问 Grant,现在ST给出的建议是怎样呢?

STM32F2和F4是不是真正解决了RTC兼容性的问题了?

出0入8汤圆

发表于 2013-8-30 11:25:48 | 显示全部楼层
2和4要兼容?没听过这个说法。因为2和4的RTC电气参数有些不同,应该是没办法做到全版本兼容的。至少在205上X,Y两个版本都做不到。

出0入0汤圆

发表于 2013-9-17 11:11:26 | 显示全部楼层
10. 使用有源晶振
个人认为这是一劳永逸解决晶振不起振问题的不二法门!有人对STM32的RTC晶振不易起振的原因做了一个解释,即出于低功耗的考虑,STM32对晶振的驱动功率比较低,所谓“好鼓不用重锤”,一些差的晶振就需要更高的驱动功率,所以不易起振。我认为这种解释是有道理的。使用有源晶振则不存在驱动功率的问题,如果问题确实是因为驱动功率造成的,那使用有源晶振毫无疑问可以彻底解决问题。而且目前网上还没看到说有源晶振不起振的求助帖。但是有源晶振通常比较昂贵,甚至要比一颗外置的RTC芯片还要贵。至于这个问题的取舍,就要看各位看官自己的想法了。
有源竟真的电源接在什么地方呢,电池? 3.3V 会不会导致电池没电呢

出0入0汤圆

发表于 2013-10-23 14:33:12 | 显示全部楼层
有源竟真的电源接在什么地方呢,电池? 3.3V 会不会导致电池没电呢

同问!

出0入0汤圆

发表于 2014-1-6 15:00:28 | 显示全部楼层
只有实际测试了,才是最适合自己的方案

出0入0汤圆

发表于 2014-2-22 12:02:35 | 显示全部楼层
支持一下。。。。

出0入0汤圆

发表于 2014-4-24 18:14:23 | 显示全部楼层
人品大爆发,问题出现了。

出0入0汤圆

发表于 2014-4-24 18:36:34 | 显示全部楼层
顶,支持楼主

出0入0汤圆

发表于 2014-4-24 18:48:13 | 显示全部楼层
实际原因只有一个,那就是人品太差
建议不起振的板子找公司一个人品好的 摸上一摸 保证起振,这个方法一般人我不告诉他

出0入0汤圆

发表于 2014-4-25 13:32:36 | 显示全部楼层
看看。。。

出90入0汤圆

发表于 2014-6-5 11:13:06 | 显示全部楼层
没有具体的解决办法。

出0入0汤圆

发表于 2014-6-5 13:26:19 来自手机 | 显示全部楼层
换吧,无解!

出0入0汤圆

发表于 2014-10-21 15:25:30 | 显示全部楼层
人品!!!

出0入0汤圆

发表于 2014-10-22 00:35:27 | 显示全部楼层
wenunit 发表于 2013-6-21 14:31
这个问题,在两年前就解决了,公司的东西,方法太好提供...

这个问题很严重,听说夏天和冬天的效果是不一样的,能不能说说什么方法吗

出0入0汤圆

发表于 2015-6-3 17:27:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2015-7-12 09:00:42 | 显示全部楼层
总结得很好,支持一下。

出0入0汤圆

发表于 2015-8-17 13:38:32 | 显示全部楼层
我现在需要毫秒记数,不知道有没有解决方案

出0入0汤圆

发表于 2015-8-18 12:33:42 | 显示全部楼层
楼主说的有道理,总结的很好。

出0入0汤圆

发表于 2015-8-20 16:41:19 | 显示全部楼层
被晶振搞的头大路过。

出0入0汤圆

发表于 2015-8-20 17:10:33 | 显示全部楼层
实际上st的外部晶振设计的很烂,什么低功耗考虑都是借口,到现在都没用一个成熟的方案设计可以保证绝对可靠起震的

出0入0汤圆

发表于 2015-8-24 07:39:55 | 显示全部楼层
我都放弃STM32的RTC了。。。

出0入4汤圆

发表于 2015-8-24 08:06:15 来自手机 | 显示全部楼层
差点就用了,看来还是外部的算了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-27 07:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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