大家對晶振在電路中的作用肯定很了解,晶振作為電路中的心臟,具有極其重要的作用,在各種電子產品設備中廣泛應用,如果出現不振就會導致整個設備不能正常工作。但是,類似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個引腳之間短路、晶振對電源短路等不同情況,結果可能不同。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6040文章
44592瀏覽量
636818 -
晶振
+關注
關注
34文章
2887瀏覽量
68153 -
STM32
+關注
關注
2270文章
10914瀏覽量
356729
原文標題:把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等,這些通信接口都需要時鐘信號的支持。如果晶振不起
高壓差分探頭什么情況下容易壞?
探頭有一些容易損壞的情況。在下面的文章中,我們將詳細討論高壓差分探頭容易損壞的幾種情況。 首先,高壓差分探頭容易在電壓過高的情況下
評論