STM32F103系列RTC晶振问题解决记录
扫描二维码
随时随地手机看文章
我从2014年开始使用STM32内部RTC用于产品,之前出现过很多问题,也换过很多晶振,比如按照ST推荐的6pF晶振,也出现很多问题,贴片的很贵的那种也用过几种,都不行,查询了一些晶振启振的资料,最后还是使用2mm的那种最便宜的晶振,使用过多个批次,每次200套左右,已经1000多套了,只有几套出现问题,并且更换晶振后都能够修复,卖出去的产品里面也只有一套出现问题了(我程序里面如果检测到RTC外部晶振故障,会多次重试,依旧不行会切换到内部晶振,并且设备联网可以校时)。
3).如何选择电容C1,C2?
(1):因为每一种晶振都有各自的特性,所以最好按制造厂商所提供的数值选择外部元器件。(2):在许可范围内,C1,C2值越低越好。应该试用电容将他的振荡频率调到IC所需要的频率,越准确越好,C值偏大虽有利于振荡器的稳定,但将会增加起振时间。
(3):应使C2值大于C1值,这样可使上电时,加快晶振起振。
(4) 对于32KHZ以上的晶体振荡器,当VDD>4.5V时,建议C1=C2≈30PF。
1.根据这个资料我把int脚上面的电容去掉,out脚上面的电容接6pF(不接电容out脚信号很强,但是有点变形,接6pF电容后接近正弦波,接18pF后幅度变小),这样解决了99%以上的STM32晶振问题(用的是2mm圆柱晶振,最便宜的那种)。
2.很久没有折腾晶振问题,最近2个新产品上面(几块板子同时出问题,肯定不是偶然了)遇到了,一个最终调试发现是PC13,靠近in的那个脚,如果有高电平或脉冲,会导致很大部分的晶振不启振,或者突然停止振动(也是调试很久,对比发现这个问题的),通过把PC13接低电平(或者输出低电平)解决了这个批次的问题。
3.还有一个产品也是新产品,几片同样出现晶振不启振,目前正在调试,刚刚测试发现只要用示波器接out是可以显示波形,接in后晶振立即停止了,抗干扰能力非常弱,这也就是STM32的最大bug,上面PC13脚影响RTC同样是这个问题。
看到晶振启动电路后,我尝试加上一个10M电阻在晶振两端,发现晶振启振特别稳定,并且用示波器也能看到稳定的波形。
in脚上面稳定的波形,并且抗干扰能力变强了,也不再受到PC13以及示波器的影响而停止了。
out脚上面波形有畸变,并且幅度较小。
4.如果是手工焊接的,建议使用酒精或洗板水把晶振附近焊接点清洗干净,也可以解决部分出问题设备。
通过上面这些改进,可以解决我目前所遇到的所有晶振问题,但是很折腾人,马上又要出1000套货,看看这个批次是否会出现晶振问题,如果对RTC要求较高,最终还是建议使用外部RTC。
2017-08-11 补充:本次1000套生产的产品一套都没有出现RTC晶振问题,相反以前手工焊接出现很多,初步判断很多问题是由于助焊剂导致,建议将晶振部分使用洗板水清洗干净,并喷涂三防漆可以有效的解决这个问题。
2017-12-01补充:如果出现了清洗干净还有问题,可以在晶振2脚接一个10M欧电阻,注意不是1M欧,接了这个电阻目前我遇到的都能100%解决。