大家对晶振在电路中的作用肯定很了解,晶振作为电路中的心脏,具有极其重要的作用,在各种电子产品设备中广泛应用,如果出现不振就会导致整个设备不能正常工作。但是,类似STM32这种MCU是有内部晶振的,默认使用外部晶振时,若外部晶振损坏,会出现什么情况?芯片自动切换到内部晶振程序继续运行还是单片机死机?今天就来验证一下晶振损坏情况下的芯片运行情况,下面做一下实验测试一下。
01找一块开发板
如下图中是STM32的一个最小系统板,在本公众号下回复【STM32】可以索取关于STM32的全部视频和例程资料。
今天就用这个最小系统板进行测试验证。
02修改晶振
为了方便后面的操作,将开发板的晶振焊接的引脚裸露在外。在这里要特别说明一下:现在这样焊接是为了方便后面的验证,在实际产品中,一定要保证晶振焊接可靠、稳定,否则容易影响产品的稳定性。
03编写程序
编写LED闪烁的程序,用LED是否闪烁以及闪烁的频率来证明芯片工作的状态。时钟初始化程序如下:引脚初始化程序如下:void SystemInit (void)
{
/* Reset the RCC clock configuration to the default reset state(for debug purpose) */
/* Set HSION bit */
RCC->CR |= (uint32_t)0x00000001;
/* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
RCC->CFGR &= (uint32_t)0xF8FF0000;
RCC->CFGR &= (uint32_t)0xF0FF0000;
/* Reset HSEON, CSSON and PLLON bits */
RCC->CR &= (uint32_t)0xFEF6FFFF;
/* Reset HSEBYP bit */
RCC->CR &= (uint32_t)0xFFFBFFFF;
/* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
RCC->CFGR &= (uint32_t)0xFF80FFFF;
/* Disable all interrupts and clear pending bits */
RCC->CIR = 0x009F0000;
/* Reset PLL2ON and PLL3ON bits */
RCC->CR &= (uint32_t)0xEBFFFFFF;
/* Disable all interrupts and clear pending bits */
RCC->CIR = 0x00FF0000;
/* Reset CFGR2 register */
RCC->CFGR2 = 0x00000000;
/* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
/* Configure the Flash Latency cycles and enable prefetch buffer */
SetSysClock();
}
LED闪烁的程序如下:GPIO_InitTypeDefGPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = PB8_LOAD_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
PB8_LOAD_1;
04将晶振引脚剪断PB8_LOAD_1; //PB8输出高电平
DelayMs(100); //延时
PB8_LOAD_0; //PB8输出低电平
DelayMs(100); //延时
详情可参考下面的视频过程。 我们发现,剪断晶振的引脚后,LED的闪烁频率发生了改变,证明晶振的引脚损坏时,单片机程序仍然在运行。
特殊说明:
1、本实验仅仅验证了单片机程序是否运行,并不能代表晶振掉了后,我们设计的产品的功能仍然正常;由于系统时钟发生改变,依赖于时钟的功能模块肯定工作不正常,比如串口通信、周期定时的任务等;2、现在验证测试的程序可能与您产品中的程序有所差异。 3、现在只是验证了晶振掉了的情况(晶振掉了后,单片机程序仍然在运行),但是若晶振出现引脚对地短路、2个引脚之间短路、晶振对电源短路等不同情况,结果可能不同。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6032文章
44513浏览量
632738 -
晶振
+关注
关注
34文章
2819浏览量
67892 -
STM32
+关注
关注
2265文章
10870浏览量
354716
原文标题:把STM32的晶振剪下来,正在运行的程序还能运行吗?单片机会死机吗?
文章出处:【微信号:精通单片机与嵌入式,微信公众号:精通单片机与嵌入式】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
在高速和超高速运行情况下,高速变频电机的测试至关重要
高速变频电机是指转速超过10000r/min,一般都是几万转甚至达到十几万转,在电动汽车、分布式发电系统中具有广阔的应用前景。在高速和超高速运行情况下,电机的运行特性与常规电机有很大的不同,对高速电机进行相关测试是至关重要的。
CY8C4025AXI-S412在什么情况下外部晶振会自动跳转到内部晶振?能再跳转回外部晶振吗?
我使用的是CY8C4025AXI-S412,请问在什么情况下外部晶振会自动跳转到内部晶振?能再跳转回外部
发表于 03-06 06:04
ESP32在使用wifi和BLE的情况下,内部晶振能不能用来提供时钟?
在使用wifi和BLE的情况下,内部晶振能不能用来提供时钟
在使用wifi和BLE的情况下,spiI2C通信,内部的4Mflash是否足够程序使用
发表于 06-21 16:41
IAP15F2K61S2不接外部晶振的情况下下载程序
IAP15F2K61S2不接外部晶振的情况下下载程序,在不勾选选择内部时钟的情况下可以下载,勾选了却下载不上,这是什么情况?有人知道吗?
发表于 07-23 13:17
主板晶振损坏情况与修复
电脑主板是电脑最基本的也是最重要的部件之一,在整个微机系统中扮演着举足轻重的角色。那你知道晶振在电脑主板中究竟能起到什么作用吗?
什么情况下需要使用微机消谐装置
的情况: 电气设备中存在谐波产生的风险。谐波是电力系统中常见的问题之一,特别是在使用非线性负载(例如变频器、电子镇流器等)的情况下。谐波会导致电力系统中电压失真、谐波电流增加、设备损坏、运行
单片机晶振不起振后会有什么情况
时钟信号的情况下,单片机无法执行程序,无法完成预定的功能。 无法进行通信:很多单片机芯片都支持通信接口,如UART、SPI和I2C等,这些通信接口都需要时钟信号的支持。如果晶振不起
高压差分探头什么情况下容易坏?
探头有一些容易损坏的情况。在下面的文章中,我们将详细讨论高压差分探头容易损坏的几种情况。 首先,高压差分探头容易在电压过高的情况下
评论