大家對晶振在電路中的作用肯定很了解,晶振作為電路中的心臟,具有極其重要的作用,在各種電子產(chǎn)品設(shè)備中廣泛應(yīng)用,如果出現(xiàn)不振就會導(dǎo)致整個設(shè)備不能正常工作。但是,類似STM32這種MCU是有內(nèi)部晶振的,默認使用外部晶振時,若外部晶振損壞,會出現(xiàn)什么情況?芯片自動切換到內(nèi)部晶振程序繼續(xù)運行還是單片機死機?今天就來驗證一下晶振損壞情況下的芯片運行情況,下面做一下實驗測試一下。
01找一塊開發(fā)板
如下圖中是STM32的一個最小系統(tǒng)板,在本公眾號下回復(fù)【STM32】可以索取關(guān)于STM32的全部視頻和例程資料。
今天就用這個最小系統(tǒng)板進行測試驗證。
02修改晶振
為了方便后面的操作,將開發(fā)板的晶振焊接的引腳裸露在外。在這里要特別說明一下:現(xiàn)在這樣焊接是為了方便后面的驗證,在實際產(chǎn)品中,一定要保證晶振焊接可靠、穩(wěn)定,否則容易影響產(chǎn)品的穩(wěn)定性。
03編寫程序
編寫LED閃爍的程序,用LED是否閃爍以及閃爍的頻率來證明芯片工作的狀態(tài)。時鐘初始化程序如下:引腳初始化程序如下: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); //延時
詳情可參考下面的視頻過程。 我們發(fā)現(xiàn),剪斷晶振的引腳后,LED的閃爍頻率發(fā)生了改變,證明晶振的引腳損壞時,單片機程序仍然在運行。
特殊說明:
1、本實驗僅僅驗證了單片機程序是否運行,并不能代表晶振掉了后,我們設(shè)計的產(chǎn)品的功能仍然正常;由于系統(tǒng)時鐘發(fā)生改變,依賴于時鐘的功能模塊肯定工作不正常,比如串口通信、周期定時的任務(wù)等;2、現(xiàn)在驗證測試的程序可能與您產(chǎn)品中的程序有所差異。 3、現(xiàn)在只是驗證了晶振掉了的情況(晶振掉了后,單片機程序仍然在運行),但是若晶振出現(xiàn)引腳對地短路、2個引腳之間短路、晶振對電源短路等不同情況,結(jié)果可能不同。
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
單片機
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635635 -
晶振
+關(guān)注
關(guān)注
34文章
2870瀏覽量
68064 -
STM32
+關(guān)注
關(guān)注
2270文章
10901瀏覽量
356223
原文標題:把STM32的晶振剪下來,正在運行的程序還能運行嗎?單片機會死機嗎?
文章出處:【微信號:精通單片機與嵌入式,微信公眾號:精通單片機與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
在高速和超高速運行情況下,高速變頻電機的測試至關(guān)重要
高速變頻電機是指轉(zhuǎn)速超過10000r/min,一般都是幾萬轉(zhuǎn)甚至達到十幾萬轉(zhuǎn),在電動汽車、分布式發(fā)電系統(tǒng)中具有廣闊的應(yīng)用前景。在高速和超高速運行情況下,電機的運行特性與常規(guī)電機有很大的不同,對高速電機進行相關(guān)測試是至關(guān)重要的。
CY8C4025AXI-S412在什么情況下外部晶振會自動跳轉(zhuǎn)到內(nèi)部晶振?能再跳轉(zhuǎn)回外部晶振嗎?
我使用的是CY8C4025AXI-S412,請問在什么情況下外部晶振會自動跳轉(zhuǎn)到內(nèi)部晶振?能再跳轉(zhuǎn)回外部
發(fā)表于 03-06 06:04
ESP32在使用wifi和BLE的情況下,內(nèi)部晶振能不能用來提供時鐘?
在使用wifi和BLE的情況下,內(nèi)部晶振能不能用來提供時鐘
在使用wifi和BLE的情況下,spiI2C通信,內(nèi)部的4Mflash是否足夠程序使用
發(fā)表于 06-21 16:41
IAP15F2K61S2不接外部晶振的情況下下載程序
IAP15F2K61S2不接外部晶振的情況下下載程序,在不勾選選擇內(nèi)部時鐘的情況下可以下載,勾選了卻下載不上,這是什么情況?有人知道嗎?
發(fā)表于 07-23 13:17
在單片機晶振11.05926mhz的情況下,gps模塊接收頻率設(shè)置為多少比較合適?
在單片機晶振11.05926mhz的情況下,gps模塊接收頻率設(shè)置為多少比較合適?
發(fā)表于 05-18 23:14
請問新唐單片機在外部晶振失靈的情況下,能否自動切換到內(nèi)部晶振繼續(xù)工作?
請問新唐單片機在外部晶振失靈的情況下,能否自動切換到內(nèi)部晶振繼續(xù)工作?
發(fā)表于 06-16 07:27
主板晶振損壞情況與修復(fù)
電腦主板是電腦最基本的也是最重要的部件之一,在整個微機系統(tǒng)中扮演著舉足輕重的角色。那你知道晶振在電腦主板中究竟能起到什么作用嗎?
什么情況下芯片容易壞呢
芯片是在電子學(xué)中一種將電路小型化的方式,并且時常制造在半導(dǎo)體晶圓表面上。相信很多小伙伴都經(jīng)歷過芯片壞掉的情況,那么什么情況下
什么情況下需要使用微機消諧裝置
的情況: 電氣設(shè)備中存在諧波產(chǎn)生的風(fēng)險。諧波是電力系統(tǒng)中常見的問題之一,特別是在使用非線性負載(例如變頻器、電子鎮(zhèn)流器等)的情況下。諧波會導(dǎo)致電力系統(tǒng)中電壓失真、諧波電流增加、設(shè)備損壞、運行
單片機晶振不起振后會有什么情況
時鐘信號的情況下,單片機無法執(zhí)行程序,無法完成預(yù)定的功能。 無法進行通信:很多單片機芯片都支持通信接口,如UART、SPI和I2C等,這些通信接口都需要時鐘信號的支持。如果晶振不起
高壓差分探頭什么情況下容易壞?
探頭有一些容易損壞的情況。在下面的文章中,我們將詳細討論高壓差分探頭容易損壞的幾種情況。 首先,高壓差分探頭容易在電壓過高的情況下
評論