打印

stm32 rtc晶振起振问题

[复制链接]
楼主: chineser
手机看帖
扫描二维码
随时随地手机跟帖
21
你认为13楼图中的电阻RExt是并联还是串联?

使用特权

评论回复
22
汉之云| | 2009-8-11 12:01 | 只看该作者
首先应该确认晶振坏没有?
是由于驱动不足导致的不起振 (gm/gmcrit 值太小)
还是驱动过分导致晶振损坏而不起振?(消耗功率超过DL额定值)

查一查布线,晶振及CL1/CL2尽量靠近芯片,减少Cs带来的影响。Cs越大->CL越大->gmcrit越大->gain margin 越小,越不容易起振。

使用特权

评论回复
23
chineser|  楼主 | 2009-8-11 12:21 | 只看该作者
是驱动过分导致晶振损坏而不起振   应该怎么解决?

使用特权

评论回复
24
汉之云| | 2009-8-11 13:30 | 只看该作者
调整Rext的值,使之同时满足
DL和gm/gmcrit >=5

使用特权

评论回复
25
chineser|  楼主 | 2009-8-11 13:58 | 只看该作者
现在 我看见的  已经应用的 有两种方式:
  但是都是并联电阻的
1 6p的晶振 外加两个10p的电容 (本来电路有并联电阻 但没有连)
2 6p的晶振 外加两个6p的电容 并10m的电阻

我不知道 汉之云和香主 有没有实际搞过 还是就是看了原理

使用特权

评论回复
26
汉之云| | 2009-8-11 15:21 | 只看该作者
并联电阻相当于调整RF反馈电阻,STM32的内部RF典型值是5M ohm,这个值对你的晶振DL影响极小。
如果你能确定晶振由于驱动过分导致损坏,那就是电流大了,当然要在回路上串电阻

使用特权

评论回复
27
IJK| | 2009-8-11 15:48 | 只看该作者
晶振 振坏

一般不大会发生

使用特权

评论回复
28
chineser|  楼主 | 2009-8-11 15:49 | 只看该作者
那么并电阻 是解决什么参数 问题?

使用特权

评论回复
29
汉之云| | 2009-8-11 16:20 | 只看该作者
并联电阻相当于调整RF反馈电阻

使用特权

评论回复
30
汉之云| | 2009-8-11 16:24 | 只看该作者
调整RF反馈电阻,就是调反向器的线性区工作点

使用特权

评论回复
31
chineser|  楼主 | 2009-8-12 01:20 | 只看该作者
这几天在鼓捣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================================
                                                                  作者   萧星

使用特权

评论回复
评分
参与人数 1威望 +8 收起 理由
香水城 + 8
32
jackbao| | 2009-8-13 19:52 | 只看该作者
ding   好经验
  楼主 好像没说清楚吧 我感觉 软件和硬件 你说都有问题
1赶忙对照程序,别无它,之用中断里面稍有不同,以前写的 加了RTC_WaitForLastTask();现在的没有,难道是这个的问题? 加上试试先,啊 可以了!!!!
26p晶振加两个10p电容 不要并联电阻 并联了反而不起振

使用特权

评论回复
33
netwp| | 2009-8-22 17:25 | 只看该作者
我现在也是出现这种状况,一批板子有一半不起振,好的那一部分时不时的也出现不起振的现象,特意从正规厂家买的6p晶振,配9p电容,怎么还不起振,另外程序中也按照网友的推荐加了延时,布线上应该也没有什么问题,不是很远,大概也就10mm距离,这个RTC真的是STM32的败笔,为了追求那个低功耗的指标而对用户造成不便,得不偿失啊,真正想降低功耗我想也不会选用STM32,我会选择像MSP430等真正低功耗的MCU。

使用特权

评论回复
34
秋天落叶| | 2009-8-22 21:40 | 只看该作者
我平时用晶振时都是用15p的电容匹配的,不知道是不是你电容匹配不对,可以换个15P试下,还有可能就是你电路板布线的过程中不合理,而产生干扰,如果是这个因素就不好办了,先换电容吧

使用特权

评论回复
35
chineser|  楼主 | 2009-8-23 18:56 | 只看该作者
,别无它,之用中断里面稍有不同,以前写的 加了RTC_WaitForLastTask();现在的没有,难道是这个的问题? 加上试试先,啊 可以了!!!!
不是延时

使用特权

评论回复
36
香水城| | 2009-8-23 21:12 | 只看该作者
请看STM32参考手册中关于配置RTC寄存器的描述,那里清楚地写明“对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行”,所以RTC_WaitForLastTask()是必须的!!

STM32_Setting_RTC.GIF (17.42 KB )

STM32_Setting_RTC.GIF

使用特权

评论回复
37
zhujw2002| | 2009-8-25 10:09 | 只看该作者
RTC中断中只是做了清除中断标志,RTC_ClearITPendingBit(RTC_IT_SEC);       
没有对别的RTC寄存器进行操作,这样也需要加
RTC_WaitForLastTask();吗?

使用特权

评论回复
38
jiangnanshan| | 2009-8-26 14:37 | 只看该作者
是晶体的质量不好,由于生产工艺的原因混入了杂质。一般情况下,停振或不起振时,用电烙铁烫一下就会好。解决方法换品质好的晶体。

使用特权

评论回复
39
KYLXH| | 2010-2-4 14:06 | 只看该作者
我们用6PF电容,生产5000套有10多个还是出现死机现象,其他的不知道要 等多久才会出现死机,要么开始就是坏的还好处理.办法想尽了

使用特权

评论回复
40
IJK| | 2010-2-4 17:07 | 只看该作者
千分之2、3,属于正常坏品率范围

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则