这是我在做单片机最小系统板时候碰到的问题,之前虽然也做过相似的板子,可是未曾出现过无源晶振不起振的问题。下面是我在遇到问题后的一些检查,排除问题的过程。本人小菜鸟一个,文章中如有错误和不足,还望各位大佬指正和补充。

  事情是这样的,本人做了一款32单片机最小系统板(先叫它老大),在老大出来之前的前五个月,我用相同的PCB板焊了一款用在毕设上面,那个是能正常工作的。板上有个小负载,LED灯。想让这个灯闪烁。代码是没有问题的,因为下载到从网上买的单片机是正常工作的。用JLink下载到自己做的板子上也是能下载进去的,但是不工作。怀疑晶振没起振。用示波器测量晶振引脚对地为一个高电平,而控制那个灯亮的管脚一直是高电平。买回来的板子晶振引脚对地为一个正弦波,控制灯的引脚波形为方波。

  找到问题出现在板子时钟没起振,到底是时钟电路哪个地方出问题了还未得知。首先想到的是换个晶振,8M的晶振换了(第一次换),换过后,程序烧写进去,复位按键按下,灯不亮。接着考虑晶振旁边的匹配电容的问题,将匹配电容由22pf换成了20pf,仍然是不工作。没想通是为什么。于是将剩余的器件和板子拿出来想焊另外一块对着排查,结果焊接的时候,没控制好力道,把引脚弄弯了,芯片引脚勾肩搭背了,开始谈恋爱了,狂撒一波狗粮。这样肯定不行啊,月老不能乱点鸳鸯谱啊,于是,用热风枪把整个芯片吹下来了,棒打鸳鸯,结果焊盘不愿意了,藕断丝连,板子铜线扯出来了,整个板子废了,老二胎死腹中。

  从老二上面拆下来的芯片牺牲的老二

  老二挂了,造老三。之前剩余的芯片已经用完了,从师兄那里顺回来一片芯片,老三很快造出来了。制造中的老三,旁边的那个是老大,哈哈~

  老三生下来很健康,晶振起振,不过老大和老三除了晶振的匹配电容20pf一样外,晶振和芯片虽说名字一样,但是不是从一个盒子里面拿出来的。于是将老大的晶振换成和老三一样的晶振(第二次换)。在要拆老大的晶振的时候,发现上一次拆的时候造成晶振引脚的一个焊盘断了一半,就是晶振引脚和单片机引脚的连接断掉了。怀疑是这个问题,于是将老大的晶振输入引线上的绿油刮掉一点,用锡焊接在晶振腿上。但是结果却是和之前一样。

老大板子背面的晶振管脚

  第二次换晶振,和老三的一样。然而结果是并没有什么用,还是不起振。说明原因不是在这里。最后师兄劝我不要太执念的时候,我走了一步我不太想走的路。换芯片。当时买的芯片是20多元一片,老二已经挂了,如果是老大芯片的问题,又要挂一个芯片。这够我吃上两三顿黄焖鸡了。所以,在拆老大的大脑的时候,内心是不情愿的。但是我想让这个板子能工作,于是又去师兄那里顺手牵羊(自己买的用完了)牵过来一片。

  初次焊接上去,下载器找不到芯片,这个问题我知道出在哪,PA13和PA14引脚焊接问题,于是用烙铁再打磨一下。再次下载的时候,程序下载进去了,复位,翠绿色的LED灯闪起来了。利用控制变量法逐一排查,最后查到芯片本身上,至于芯片内部出现了什么问题就不得而知了,也有可能我焊接的时候电烙铁对芯片做了些什么不可告人的秘密,最终导致芯片挂了。

  个人对无源晶振不起振的原因总结如下:

  1、 晶振质量问题。

  2、 晶振的匹配电容的容值不合适。

  3、 控制芯片质量有问题。

  4、 板子电路有问题。

  5、 晶振离芯片距离太远。

最后还是给大家分享些stm32方面相关的资料供大家学习

(零基础电子产品设计)
http://www.makeru.com.cn/live/3727_1388.html?s=45051
从0到1,设计自己的开发板
http://www.makeru.com.cn/live/4034_2016.html?s=45051

(stm32串口应用)
http://www.makeru.com.cn/live/1392_1164.html?s=45051

基于STM32-WiFi智能小车机器人开发实战
http://www.makeru.com.cn/course/details/3008?s=45051

单片机stm32F103单片机晶振不起振的原因分析的更多相关文章

  1. STM32F103单片机解密资料

    STM32F103单片机解密资料下载 一.STM32 32位ARM Cortex MCU 基于ARM® Cortex® M 处理器内核的 32位闪存微控制器STM32产品家族,为MCU用户开辟了一个全 ...

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

    STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了.很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了” 更有阴谋 ...

  3. STM32F103外部晶振由8M变为12M

    STM32官方提供的库文件中,HSE(外部高速时钟)默认为8MHz,最高主频为8*9=72MHz,如果将HSE变为12MHz,不修改库文件的话,最高主频则变为12*9=108MHz,最典型的问题就是U ...

  4. stm32 晶振不起振

    1. STM32f103有内部晶振.刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的.2. STM32f103有内部复位电路,只有当检测 ...

  5. STM32F103单片机学习—— 通用定时器

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fengshuiyue/article/details/79150724 本篇重点记录的是STM32F ...

  6. AVR单片机丢固件原因分析和解决方案

    一.硬件方面 除了下面列举的方面,还需要评估下其他措施. 1.电源因素,禁干扰. 只要用廉价劣质的开关电源,不管哪个单片机,都存在EEPROM丢数据和单片机程序丢失的情况. 1.转接板走线,直接接到了 ...

  7. 关于单片机编程里面调用sprintf死机的解决方法及原因分析

    好久之前的做的笔记,这里贴出. char String[100];//直接用数组代替指针即可解决 下面代代码下载至单片机中,发现会出现单片机死机问题 #include "stdio.h&qu ...

  8. 宏晶STC单片机使用STC-ISP串口烧录失败的原因与解决方法汇总

    官方网址: http://www.stcisp.com/q_and_a_stcisp.html 个人小结 芯片:STC12C5A60S2 封装:LQFP-48 晶振大小:SD22.1184M 最小系统 ...

  9. 换晶振导致stm32串口数据飞码的解决办法

    一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串 ...

随机推荐

  1. GC-优化-案例

    优化案例 Service S 优化 现在看一下执行jstat -gcutil的结果 S0 S1 E O P YGC YGCT FGC FGCT GCT 12.16 0.00 5.18 63.78 20 ...

  2. input 只可以输入时分秒

    在html5的time中,只有时.分,没有秒. 例如<input type="time" name="user_date" /> 属性加上 step ...

  3. linux traceroute追踪路由路径

    TraceRoute的工作原理 1.TraceRoute的工作原理:      traceroute 有使用两种:使用ICMP的和使用UDP的.Microsoft      使用ICMP,所以win9 ...

  4. WPF 通过进程实现异常隔离的客户端

    当 WPF 客户端需要实现插件系统的时候,一般可以基于容器或者进程来实现.如果需要对外部插件实现异常隔离,那么只能使用子进程来加载插件,这样插件如果抛出异常,也不会影响到主进程.WPF 元素无法跨进程 ...

  5. PHP的switch和ifelse谁更快?

    对于多个if条件判断的情况下,我们使用switch来代替ifelse对于代码来说会更加的清晰明了,那么他们的效率对比呢?从PHP手册中发现有人已经对比过了,自己也用他的代码进行了实验: $s = ti ...

  6. node 在centos 6.5 上 安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决

    node  在centos 6.5 上 安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决 在linux ...

  7. Java集合框架总览

    Java集合 Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口有 3 种子类型,Lis ...

  8. LR虚拟用户已设置集合点,但controller无法设置集合点策略的解决方案

    原文来自:https://blog.csdn.net/qq_34982914/article/details/90905030 学习loadrunner的过程中,肯定涉及集合点的添加,但是我们按照书上 ...

  9. WinForm事件与消息

    WinForm事件与消息 消息概述以及在C#下的封装 Windows下应用程序的执行是通过消息驱动的.所有的外部事件,如键盘输入.鼠标移动.按动鼠标都由OS系统转换成相应的"消息" ...

  10. 20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测

    作者 | 江昱 前言 图像分类是人工智能领域的一个热门话题.通俗解释就是,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法. 它利用计算机对图像进行定量分析,把图像或图像中 ...