stm32 rtc 晶振问题解决
2020-09-09 来源:eefocus
这几天在鼓捣stm32的rtc,先焊了一个板子(从stm家园,www.stmsky.com 弄了几块stmsky001pcb板),试了一下rtc显示时间的程序,ok,兴奋呀!
第二天便有网友在移植rtt系统说板子上的rtc不能起振,感觉很奇怪,一样的板子怎么可能会出现这种情况,赶忙我又试了一下我的板子,奇怪的是,昨天还好好的,今天也是不行了。不能起振了。找原因吧。
于是没有多想,肯定是硬件的原因,因为程序昨天跑的好好的。无外乎 晶振和电容,电容我用的10pf,晶振6p的。什么原因呢? 网友dami也和我一样的板子 他的一直ok 所以问了一下,人家晶振随便从别的板子上搞得就ok,我的就是不行,换了20pf 30pf 电容均不行。只能换晶振了,于是又换了一个新的晶振,一试,哈哈 ok了 于是匆忙下结论 原来是晶振坏了。可是高兴不久,又出现问题了,和以前一样。
没办法,马上看了看st rtc设计的应用笔记,感觉到好像是晶振 震坏了。还是不是很确定问了很多人,包括21ic 香主。提了很多意见,越来越感觉是硬件的问题。于是找了以前认识的用过rtc的朋友 问了一下 他以前也是出现不起振的 后来解决了。和它说明我的问题后,原来和他以前的问题一样“刚焊上 因为晶振热 容易起振 但是放一会 就不行了”和我正装一样 赶忙询问硬件参数值,给了我一个晶振销售商地址,电容用6pf 并联10m电阻 这是他的解决方法。晚上到了家 马上按照他说的焊接,本以为肯定ok了(因为症状一样),哎 这次 刚焊上的都不震了。恼火呀。接连换了好几种硬件组合方案。无功而返。
还好手上有一块开发板 rtc是好的,我先试试,于是下载程序,奇怪 怎么这个也不打印信息,????????? 换了个以前写在这个开发板上的程序(太大 懒得编译) 一看 这个ok啊 难道是程序的问题? 把开发板上的程序 写到核心板 查看寄存器 数值在变? 晶振可以起振!! 怪哉 。
赶忙对照程序,别无它,之用中断里面稍有不同,以前写的 加了RTC_WaitForLastTask();现在的没有,难道是这个的问题? 加上试试先,啊 可以了!!!! 兴奋 气愤呀 2天 原来是软件的原因呀,真害人呀 没改过的软件 开始好使 后来就不行了 这不是搞人吗
赶忙又焊了 一个 一试 ok ok ok
咦 别高兴太早 再拿出来看看 仍是ok 终于解决了
说一下 硬件链接:
6p晶振加两个10p电容 不要并联电阻 并联了反而不起振
========================================END===========================
上一篇:stm32 tft的使用
下一篇:stm32 读取bmp图像的信息