STM32外部晶振不起振

使用STM32cubemx生成工程换一个单片机的型号,晶振会启震,

使用STM32cubemx生成工程不起振,烧录标准库的程序后,晶振启震,再烧录STM32cubemx生成工程,晶振正常启震。

STM32外部晶振不起振

https://blog.csdn.net/qq_33559992/article/details/83009134?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase

STM32的RTC晶振不起振的原因及解决方法

https://blog.csdn.net/weixin_42730667/article/details/100739672?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242

最近项目上遇到STM32晶振不起振问题,网上看到一篇帖子对该问题总结比较好

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引脚对电源质量要求比较高,如果纹波较大可能会影响晶振的起振。网上还有其他人验证过,直接上图(原贴链接:http://www.openedv.com/posts/list/6612.htm   )

更有人说反而需要一些噪声,激励晶振产生正反馈从而顺利起振(本人对此表示呵呵)。但不管怎样,提高电源质量对大家都是好事。

  7. 晶振周围的环境

  有人指出应该仔细清洗RTC晶振周围的电路,甚至是使用环氧树脂胶将晶振密封起来。这种说法得到了一些人的支持,看来也是有相当多的事实依据。

  8. 减少晶振焊接时加热的时间

  有人认为长时间加热晶振进行焊接会对晶振本身带来影响,却不是彻底损坏晶振,从而使得晶振不容易起振。这种说法我没验证过,个人表示怀疑。。。

  9. 焊接的焊锡量

  这个种说法感觉就更不靠谱了,但真的有人在晶振引脚上多加了点焊锡晶振就能起振了。从原理上说,多加点焊锡确实会改变晶振和PCB间的寄生参数,但我感觉影响微乎其微。。。可能晶振已经徘徊在临界值的边缘了,这种做法才会起到一点作用。

  10. 使用有源晶振

  个人认为这是一劳永逸解决晶振不起振问题的不二法门!有人对STM32的RTC晶振不易起振的原因做了一个解释,即出于低功耗的考虑,STM32对晶振的驱动功率比较低,所谓“好鼓不用重锤”,一些差的晶振就需要更高的驱动功率,所以不易起振。我认为这种解释是有道理的。使用有源晶振则不存在驱动功率的问题,如果问题确实是因为驱动功率造成的,那使用有源晶振毫无疑问可以彻底解决问题。而且目前网上还没看到说有源晶振不起振的求助帖。但是有源晶振通常比较昂贵,甚至要比一颗外置的RTC芯片还要贵。至于这个问题的取舍,就要看各位看官自己的想法了。

STM32的RTC晶振不起振的原因及解决方法相关推荐

  1. STM32_RTC晶振不起振的原因及解决方法

    STM32的RTC晶振经常出现不起振的问题,这已经是"业界共识"了...很多人在各种电子论坛上求助类似于"求高手指点!RTC晶振不起振怎么办"的问题,而其答案基 ...

  2. 3v stm32 供电 晶振起振_晶振起振_单片机晶振不起振原因及解决方法

    晶振是指从一块石英晶体上按一定方位角切下薄片(简称为晶片),石英晶体谐振器,简称为石英晶体或晶体.晶振:而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器.其产品一般用金属外壳封装,也有用玻璃壳 ...

  3. 晶振停振的原因及解决方法

    一般情况下,晶振不起振的原因归纳如下: 1. 晶片断裂 分析:晶片的化学成分为二氧化硅,与玻璃相同,属于清脆易碎品,在承受较大冲撞.跌落.强震动.温度环境极速变化等外力作用的情况下有可能产生破裂.破碎 ...

  4. 学习STM32日志(1):JLink OB仿真器常见问题与解决方法

    作为一个刚上手STM32的小白,在刚拿到STM32最小系统板(由于正点原子的开发板太贵了就买了最小系统板)和Jlink ob后便兴冲冲想下载程序进去.然而突然发现自己一脸茫然不知怎么办,在CSDN上搜 ...

  5. stm32 sdio acmd41 无响应。一直是返回0x3f。解决方法是清除crc错误中断

    http://blog.163.com/dreamatic_altezza/blog/static/119304542013112932216498/ 大家在使用stm32 sdio口初始化sd卡的时 ...

  6. STM32用IAR调试出现Error[Pe020]: identifier FILE is undefined 解决方法

    这是在调试示例程序RTC中的Calendar时候遇到的问题,错误定位到PUTCHAR_PROTOTYPE处 解决办法: 需要在IAR的Options -> General Options -&g ...

  7. 关于正点原子STM32的MDK例程移植到IAR中遇到的错误解决方法 __use_no_semihosting

    在移植过程中,估计大部分人应该都又遇到这类问题,主要是usart.c和sys.c这两个文件. 现贴出修改之前和修改之后的代码: usart.c: 之前的代码: #include "sys.h ...

  8. stm32单片机应用ucOS III ,操作浮点数导致死机解决方法

    ucOS III 的浮点数导致死机 解决方法: 1.启动文件Reset_Handler修改成: Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT ...

  9. stm32启用内部晶振(stm32设置外部晶振)

    STM32中的晶振电路有什么作用 stm32  有两个可接入的外部晶振,自己内部也有低俗的晶振.举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或 ...

最新文章

  1. [Unity3D]Script 脚本所有编译器属性详解
  2. Linux json格式化输出
  3. mysql sequence 关键字_mysql增加sequence功能
  4. 2通过程序获得环境变量,getenv(),setenv()函数和unsetenv()函数,env查看环境变量,echo输出指定的环境变量
  5. python实现最小二乘法(转)
  6. DataTable操作
  7. vue 循环遍历 搜寻资料
  8. (18)Zynq FPGA 看门狗定时器介绍
  9. 后台管理系统好用的UI框架
  10. javascript:Location对象的使用简介
  11. pandas操作手册
  12. oracle weblogic 补丁,Oralce weblogic 补丁下载方法
  13. java基础:网络编程(三)UDP编程
  14. java毕业设计——基于java+JSP+MyEclipse的网上订餐系统设计与实现(毕业论文+程序源码)——网上订餐系统
  15. GPIO推挽输出和开漏输出模式区别详解
  16. 探访IBM企业级区块链-CSDN公开课-专题视频课程
  17. OSChina 周四乱弹 ——跌倒,就在那附近找找好吃的。
  18. 2020微信对话截图生成器,各种截图一键制作!
  19. 心路历程 部分感想
  20. 上半年要完成的博客51

热门文章

  1. 复盘 | 易观分析“出海非洲战略”专题分享
  2. (转载)余额模型使用指南
  3. goto语句 switch语句
  4. 位运算之异或运算的理解
  5. 【2022牛客多校第六场 Z题 Game on grid】dp
  6. P结(下)和半导体异质结构
  7. win10_64位+GTX1070max-q安装CUDA10.0.130+CUDNN7.4.2+Anaconda3.5.2+Tensorflow-gpu2.0.0+PyTorch-gpu1.2.0
  8. 古典密码解密(频率计算法)、英文字符统计及频率计算、按频率显示英文字符、相关matlab源代码
  9. linux syscall 详解
  10. 介绍上架一个iOS APP需要多少钱