mcu内部RC振荡器晶振使用注意事项

控制/MCU

1879人已加入

描述

前言

写文章之前,先调查一个小问题。如下图 1 为某32位单片机的系统框图,我们可以看到系统时钟可以选择内部RC振荡器或者外部晶振:那么大家写程序时,习惯用外部晶振来为系统分频用还是习惯用内部晶振?

rc振荡器

图 1

相信这两种方式都不在少数吧,用内部晶振的工程师估计多数都有成本方面的考虑,毕竟很多产品对成本压的比较厉害。当然高附加值的产品估计不会对一颗晶振计较,为了系统整体性能,会果断选择用外部晶振,突出一个有钱~

问题描述及解决方式

那么使用内部RC振荡器晶振会存在哪些问题呢?

分享之前遇到的一个技术问题,某款单片机有两个晶振,一个晶振作为系统主时钟24MHz主时钟,另一个是RTC32.768kHz低速时钟,低速时钟摘取关键的描述如下:rc振荡器

图 2

总结下上面描述的主要意思有4点:

1、RTC时钟源有两个,一个可以来自外部,另一个可以来自系统内部RC振荡器;

2、RTC时钟主要用于唤醒电路、下电实时时钟操作、低速低功耗系统、看门狗计数器输入;

3、内部RC振荡器的精度在50%,其启动要比外部32.768kHz晶振快;

4、当系统检测不到外部32.768kHz晶振时,会自动切换到内部RC振荡器,且不需要软件配置;

项目首次做样机时,两个晶振都放上了,后来翻看技术手册发现了这颗晶振可以去掉,用内部RC替代,心想既然厂家做了这样一个内部晶振供使用,那么其性能也是可以的,并且也去掉后在实验室常温下跑了下全业务运行,没有出现异常。因此,在原理图评审时跟同事决定将此晶振去掉来降低一部分成本,毕竟剩下来的是几十万的纯利润。就这样,下一批样机到了,产品做回归测试,常温下测试没问题,但是在高低温实验箱跑到60多度环境温度就出线重启,查了好久,实验过程中将各个电源用示波器检测起来,样机出线故障时,电源并无异常,蒙圈了,这个问题有点上头。

核对与上版原理图的差异,只有晶振这块去掉了,难道是这的问题,查看芯片手册,看到了上图 2 的描述,立即换下一台样机做测试,故障没有复现,又准备了3台样机去做测试,故障没有复现,基本确定是晶振导致的本次问题。高温测试时内置RC振荡器时钟波动范围太大,导致喂狗时间错误,然后重启复位了,因此最终还是决定要接外置的32.768kHz晶振。

经验总结

1、单片机内部RC振荡器可靠性一般,产品可靠性要求高的应用不建议使用;

2、如果要使用内部振荡器作为时钟,外部晶振空置不接,一般可以考虑将晶振输入引脚接地、输出引脚悬空处理,具体芯片可以参照数据手册推荐的方式处理;

3、修改对温度影响敏感的电路,需要做相应的温度测试;

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分