chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例及解決方案分享

茶話(huà)MCU ? 2017-12-18 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近日某論壇STM32用戶(hù)反饋,使用STM32F103內(nèi)部時(shí)鐘,把系統(tǒng)時(shí)鐘配置成64MHz單片機(jī)就不跑了,配置成36MHz程序就正常妥妥的,頻率稍高點(diǎn)就容易導(dǎo)致死機(jī)。他貼出的代碼如下:

void RCC_Configuration(void)

{

RCC_DeInit();//將外設(shè) RCC寄存器重設(shè)為缺省值

RCC_HSICmd(ENABLE);//使能HSI

while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//等待HSI使能成功

//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

RCC_PCLK2Config(RCC_HCLK_Div1);

//設(shè)置 PLL 時(shí)鐘源及倍頻系數(shù)

RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);

結(jié)合他的問(wèn)題描述及他貼出來(lái)的代碼,大致可以判斷出很可能是因?yàn)樗帘瘟酥噶铑A(yù)取和flash讀取等待延遲的參數(shù)配置而導(dǎo)致的異常。即上面兩條紅色標(biāo)注出來(lái)的代碼。

后來(lái)我明確地提醒他這點(diǎn)后,他似乎并沒(méi)及時(shí)反應(yīng)過(guò)來(lái),還折騰了幾下才開(kāi)啟了上述配置,問(wèn)題最終得以解決。

其實(shí),關(guān)于這個(gè)問(wèn)題經(jīng)常有人遇到,尤其是那些基于STM32標(biāo)準(zhǔn)固件庫(kù)進(jìn)行開(kāi)發(fā)或自行編程時(shí)的新手更容易碰到這個(gè)問(wèn)題。主要原因是他們對(duì)上述兩行代碼的功能不了解,導(dǎo)致有意或無(wú)意的將庫(kù)例程中相關(guān)代碼屏蔽掉無(wú)視掉不做配置、或者配置不正確。

這里將這個(gè)問(wèn)題再次分享出來(lái),對(duì)上面兩行代碼簡(jiǎn)單做些解釋。希望更多人對(duì)此有所知曉,少在這個(gè)地方走彎路。

這句FLASH_PrefetchBufferCmd();用來(lái)作為flash指令預(yù)取功能的使能或禁用。

現(xiàn)有STM32各個(gè)系列都是基于ARM cortexM內(nèi)核的微處理器,采用多級(jí)流水線(xiàn)的哈佛結(jié)構(gòu),即一條指令的執(zhí)行分割為幾個(gè)階段,如取指、譯碼、執(zhí)行等,使得當(dāng)前指令的取指操作完成后就可以開(kāi)始后續(xù)指令的取指、譯碼等操作,程序指令就這樣像流水一樣執(zhí)行下去,大大提高了指令的執(zhí)行效率。

具體到STM32各系列單片機(jī),這個(gè)指令預(yù)取功能的開(kāi)啟或關(guān)閉可以軟件配置,一般配置為開(kāi)啟。要注意的是,芯片復(fù)位后不同的系列該功能有的默認(rèn)為開(kāi)啟有的則默認(rèn)為關(guān)閉。比方STM32F1系列的flash指令預(yù)取功能就是默認(rèn)打開(kāi)的,當(dāng)然你也可以關(guān)閉。其中,明確要求打開(kāi)的情景就是當(dāng)那個(gè)AHB時(shí)鐘預(yù)分頻系數(shù)不等于1時(shí)。

CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例及解決方案分享

再比如STM32F4系列,它的指令預(yù)取功能在芯片復(fù)位后是默認(rèn)關(guān)閉的,你可以自行打開(kāi)。但明確要求關(guān)閉的場(chǎng)景就是芯片的供電電壓低于2.1V時(shí)。

其實(shí),STM32F4的預(yù)取功能與STM32F1不盡一樣,STM32F4、STM32F2、STM32L4、STM32F7等系列芯片使用了ST的專(zhuān)利技術(shù)ART存儲(chǔ)加速器【Adaptive real-time memory accelerator】。該加速器使用指令預(yù)取隊(duì)列和分支跳轉(zhuǎn)緩存技術(shù),從而提高 Flash 程序代碼執(zhí)行速度,使得CPU即使在其最高主頻下也能完美實(shí)現(xiàn)0等待執(zhí)行flash程序指令。

上面大致講了指令預(yù)取功能,預(yù)取主要是為了實(shí)現(xiàn)指令讀取和執(zhí)行的高效性。具體細(xì)節(jié)請(qǐng)參考相關(guān)技術(shù)手冊(cè)。我們知道CPU的運(yùn)行速度可調(diào),可以很快,通常使用高速總線(xiàn)訪(fǎng)問(wèn)FLASH接口控制器,F(xiàn)LASH控制器收到來(lái)自CPU的取指指令后然后去讀取相應(yīng)地址的指令或數(shù)據(jù)。Flash控制器自身的讀取速度相比CPU的高速請(qǐng)求來(lái)說(shuō)可能會(huì)出現(xiàn)滯后,往往需要CPU做相應(yīng)的延時(shí)等待。為了讓CPU準(zhǔn)確及時(shí)讀取 Flash 數(shù)據(jù),我們須根據(jù) CPU 時(shí)鐘頻率、FLASH控制器自身特性以及器件供電情況在Flash存取控制寄存器(FLASH_ACR)中正確地編程等待周期數(shù)(LATENCY),類(lèi)似上面提到的第二句代碼:

FLASH_SetLatency(FLASH_Latency_n);

這里的等待周期數(shù)視不同的STM32系列也各有差異,不妨以STM32F4為例:

CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例及解決方案分享

下面是個(gè)關(guān)于STM32F4系列部分產(chǎn)品線(xiàn)的LATENCY設(shè)置的表格。從表格中可以看出LATENCY參數(shù)的設(shè)置與CPU的時(shí)鐘、電源電壓都有關(guān)系。另外,當(dāng)電源電壓在2.1V以下上要關(guān)閉預(yù)取功能。

CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例及解決方案分享

在設(shè)置上面的等待周期參數(shù)時(shí),選擇合適的就好。不難理解,設(shè)置太大了影響CPU性能的充分發(fā)揮,太小了容易導(dǎo)致異常。

具體回到開(kāi)頭的案例,它出現(xiàn)死機(jī)問(wèn)題,極可能是因?yàn)闆](méi)有合理配置等待周期參數(shù)導(dǎo)致異常,因?yàn)樗帘瘟藚⒖祭讨心莾删渑渲么a,即使用其默認(rèn)功能,對(duì)于STM32F1,指令預(yù)取功能默認(rèn)為開(kāi)啟。而STM32F1系列芯片的latency默認(rèn)值即為0,無(wú)等待。這樣的話(huà),當(dāng)他把時(shí)鐘調(diào)高到一定程度時(shí)出現(xiàn)死機(jī)就不難理解了。

另外,當(dāng)他反饋時(shí)鐘調(diào)高產(chǎn)生異常時(shí),我還給他提醒了注意檢查VDDA的電源情況。我碰到有人遇到因VDDA沒(méi)接好使得PLL不正常的情況。我們知道,對(duì)于STM32芯片,調(diào)高其工作時(shí)鐘,往往借助于鎖相環(huán)。而PLL的供電來(lái)自VDDA,如果PLL沒(méi)有被正常供電,也是個(gè)非常隱蔽的麻煩。曾經(jīng)有個(gè)客戶(hù)為此折騰好久,才愿沉下心來(lái)檢查其“壞品”的電源,結(jié)果發(fā)現(xiàn)有個(gè)VDDA腳虛焊。一直以芯片低頻沒(méi)問(wèn)題,頻率高了就異常為由懷疑芯片品質(zhì)問(wèn)題而耽誤時(shí)間。

CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例及解決方案分享

最后給點(diǎn)建議,做STM32開(kāi)發(fā)的話(huà),尤其是新手,如果參照ST的官方例程的話(huà),有些配置在沒(méi)看懂的情況下不要輕易屏蔽或修改。我碰到多個(gè)類(lèi)似本案隨意屏蔽例程中的初始化配置代碼或斷言代碼出現(xiàn)異常,自己又找不到方向的。另外,盡可能使用ST官方的stm32cubeMx圖形配置工具做基本的配置,通過(guò)它來(lái)生成初始化配置文件,這樣方便省事很多。當(dāng)然,即使使用STM32CUBEMX配置也不是萬(wàn)能的。比方:曾經(jīng)有人使用STM32F0開(kāi)發(fā)產(chǎn)品,用CUBEMX配置初始化文件,剛開(kāi)始配置時(shí)時(shí)鐘選擇得比較低, STM32CubeMx自然根據(jù)他選擇的時(shí)鐘做了相關(guān)參數(shù)配置。后來(lái)他自己在用戶(hù)代碼里手動(dòng)調(diào)高了時(shí)鐘,而不知相應(yīng)調(diào)整跟FLASH讀取等待有關(guān)的參數(shù),也是發(fā)生跟本案同樣的情況。所以呢,如果能對(duì)原理有更多更深的把握那是再好不過(guò)了。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32F103
    +關(guān)注

    關(guān)注

    34

    文章

    496

    瀏覽量

    67786
  • cpu時(shí)鐘
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    1563

原文標(biāo)題:CPU時(shí)鐘調(diào)高時(shí)出現(xiàn)異常的案例分享

文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話(huà)MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LMK04000系列時(shí)鐘抖動(dòng)清理器:高精度時(shí)鐘解決方案

    LMK04000系列時(shí)鐘抖動(dòng)清理器:高精度時(shí)鐘解決方案 在電子設(shè)計(jì)領(lǐng)域,時(shí)鐘信號(hào)的穩(wěn)定性和低抖動(dòng)性能對(duì)于眾多應(yīng)用至關(guān)重要。德州儀器(TI)的LMK04000系列精密
    的頭像 發(fā)表于 02-09 16:40 ?116次閱讀

    LMK01801雙時(shí)鐘分頻緩沖器:高精度時(shí)鐘解決方案

    LMK01801雙時(shí)鐘分頻緩沖器:高精度時(shí)鐘解決方案 引言 在電子設(shè)計(jì)領(lǐng)域,時(shí)鐘信號(hào)的精準(zhǔn)分配和分頻對(duì)于系統(tǒng)的穩(wěn)定運(yùn)行至關(guān)重要。今天要給大家介紹的是德州儀器(TI)的LMK01801雙
    的頭像 發(fā)表于 02-09 11:10 ?172次閱讀

    賽思分享時(shí)鐘服務(wù)器的解決方案及其優(yōu)勢(shì)

    隨著科技的不斷發(fā)展,各種應(yīng)用場(chǎng)景對(duì)于時(shí)間同步和精確性的要求也越來(lái)越高。在這種情況下,時(shí)鐘服務(wù)器應(yīng)運(yùn)而生,為各行各業(yè)提供了高效、穩(wěn)定、可靠的時(shí)間同步解決方案。本文將詳細(xì)介紹時(shí)鐘服務(wù)器的解決方案
    的頭像 發(fā)表于 01-06 17:35 ?5670次閱讀
    賽思分享<b class='flag-5'>時(shí)鐘</b>服務(wù)器的<b class='flag-5'>解決方案</b>及其優(yōu)勢(shì)

    RE時(shí)鐘高次諧波解決方案

    字電路的邏輯功能沒(méi)有直接影響,但在電磁兼容(EMC)和信號(hào)完整性(SI)中帶來(lái)了顯著的危害與痛點(diǎn)。圖1時(shí)鐘時(shí)鐘高次諧波解決方案針對(duì)這種高次諧波的時(shí)鐘最有效的手段
    的頭像 發(fā)表于 12-23 11:34 ?401次閱讀
    RE<b class='flag-5'>時(shí)鐘</b>高次諧波<b class='flag-5'>解決方案</b>

    CW32的時(shí)鐘校準(zhǔn)

    ,芯片可能出現(xiàn)異常。芯片出廠(chǎng)時(shí)已預(yù)調(diào)好 48MHz 頻點(diǎn)的校準(zhǔn)參數(shù),并存放在 FLASH 中。應(yīng)用程序只需要將 FLASH 內(nèi)的校準(zhǔn)值讀出并寫(xiě)入 SYSCTRL_HSI.TRIM 即可獲得精準(zhǔn)
    發(fā)表于 12-11 07:58

    HSIOSC時(shí)鐘和LSI時(shí)鐘時(shí)鐘的校準(zhǔn)

    HSIOSC 時(shí)鐘校準(zhǔn) HSIOSC 安全工作范圍為 32 ~ 48MHz,超過(guò)安全范圍,芯片可能出現(xiàn)異常。芯片出廠(chǎng)時(shí)已預(yù)調(diào)好 48MHz 頻點(diǎn)的校準(zhǔn)參數(shù),并存放在 FLASH 中。應(yīng)用程序只需要
    發(fā)表于 12-08 07:42

    如何處理電能質(zhì)量在線(xiàn)監(jiān)測(cè)裝置時(shí)鐘模塊自動(dòng)同步異常的情況?

    針對(duì)性解決方案。以下是具體處理流程和操作方法: 一、通用前置步驟:明確異常類(lèi)型與核心信息 處理前需先收集關(guān)鍵信息,避免盲目操作: 確認(rèn)同步方式 :通過(guò)裝置 Web 界面或手冊(cè),明確當(dāng)前使用的同步方式(PTP/GPS/NTP,如 A 級(jí)裝置多為 PTP+GPS 冗余); 記
    的頭像 發(fā)表于 10-27 10:16 ?983次閱讀

    UPS電源市電供電異常全解析:從現(xiàn)象到解決方案的實(shí)用指南

    在數(shù)字化時(shí)代,UPS(不間斷電源)已成為保障關(guān)鍵設(shè)備穩(wěn)定運(yùn)行的核心裝備。然而,當(dāng)市電供電出現(xiàn)異常時(shí),UPS可能發(fā)出告警或無(wú)法正常工作,給用戶(hù)帶來(lái)困擾。本文將系統(tǒng)梳理UPS在市電供電時(shí)的常見(jiàn)異常
    的頭像 發(fā)表于 10-14 14:09 ?1409次閱讀
    UPS電源市電供電<b class='flag-5'>異常</b>全解析:從現(xiàn)象到<b class='flag-5'>解決方案</b>的實(shí)用指南

    設(shè)備運(yùn)行狀態(tài)出現(xiàn)異常,如何確定是電源紋波超標(biāo)導(dǎo)致的

    設(shè)備運(yùn)行異常(如死機(jī)、數(shù)據(jù)跳變、動(dòng)作卡頓等)的誘因復(fù)雜(硬件故障、軟件 bug、電磁干擾、負(fù)載過(guò)載等均可能導(dǎo)致),要確定是否由 電源紋波超標(biāo) 引發(fā),核心是通過(guò) “ 排除非紋波因素→驗(yàn)證紋波與異常
    的頭像 發(fā)表于 09-23 11:09 ?760次閱讀
    設(shè)備運(yùn)行狀態(tài)<b class='flag-5'>出現(xiàn)異常</b>,如何確定是電源紋波超標(biāo)導(dǎo)致的

    rtthread線(xiàn)程出現(xiàn)異常了,有沒(méi)有什么鉤子函數(shù)能夠定義用戶(hù)操作?

    線(xiàn)程出現(xiàn)異常了,有沒(méi)有什么鉤子函數(shù)能夠定義用戶(hù)操作????
    發(fā)表于 09-18 06:36

    安燈數(shù)據(jù)采集到MES系統(tǒng)的解決方案

    “安燈”原本是指車(chē)間生產(chǎn)線(xiàn)上的提示燈系統(tǒng),能夠在生產(chǎn)中出現(xiàn)異常時(shí)及時(shí)發(fā)出警報(bào),這樣現(xiàn)場(chǎng)人員就能及時(shí)知曉異常狀況并采取措施,確保生產(chǎn)安全。然而,隨著越來(lái)越多自動(dòng)化設(shè)備得到應(yīng)用,車(chē)間現(xiàn)場(chǎng)的管理人員也會(huì)
    的頭像 發(fā)表于 09-02 17:03 ?830次閱讀
    安燈數(shù)據(jù)采集到MES系統(tǒng)的<b class='flag-5'>解決方案</b>

    AD7928BRUZ AD采樣批量出現(xiàn)異常低值的原因?

    信號(hào)的峰值,意味AD7928BRUZ均在模擬信號(hào)達(dá)到峰值時(shí)采集。我觀(guān)測(cè)了半個(gè)小時(shí)的數(shù)據(jù),均沒(méi)有發(fā)現(xiàn)cs信號(hào)和模擬信號(hào)時(shí)序異常。 現(xiàn)在請(qǐng)教有可能是哪方面的問(wèn)題,導(dǎo)致異常數(shù)據(jù)出現(xiàn)。
    發(fā)表于 08-13 06:29

    判斷伺服行星減速機(jī)出現(xiàn)噪音的異常

    伺服行星減速機(jī)在正常運(yùn)行時(shí),其噪音水平應(yīng)在一定范圍內(nèi)。若噪音突然增大或出現(xiàn)異常聲響,如尖銳、不規(guī)則或周期性的噪音,則可能表明減速機(jī)存在故障或問(wèn)題。 二、可能原因 1. 齒輪磨損: ●?長(zhǎng)時(shí)間的使用可能導(dǎo)致齒輪表面磨損
    的頭像 發(fā)表于 07-31 18:16 ?1006次閱讀
    判斷伺服行星減速機(jī)<b class='flag-5'>出現(xiàn)</b>噪音的<b class='flag-5'>異常</b>

    TJA1043的收發(fā)器,如果CAN總線(xiàn)出現(xiàn)異常,它會(huì)進(jìn)入異常狀態(tài)嗎?

    關(guān)于 TJA1043 的收發(fā)器,如果 CAN 總線(xiàn)出現(xiàn)異常,它會(huì)進(jìn)入異常狀態(tài)嗎?一旦處于異常狀態(tài),它的行為會(huì)如何?例如,可以發(fā)送數(shù)據(jù)包但無(wú)法接收,謝謝
    發(fā)表于 04-04 07:30

    反激式開(kāi)關(guān)電源增加填谷線(xiàn)路后紋波異常抖動(dòng)解決方案

    一、問(wèn)題現(xiàn)象描述-電源拓?fù)洌悍醇な介_(kāi)關(guān)電源(帶填谷式PFC電路)。-故障現(xiàn)象:-加入填谷電路后,輸出電壓紋波出現(xiàn)異常抖動(dòng)(如100Hz低頻紋波疊加高頻振蕩)。圖1-輕載時(shí)抖動(dòng)更明顯,可能導(dǎo)致控制環(huán)路
    的頭像 發(fā)表于 03-19 09:50 ?3107次閱讀
    反激式開(kāi)關(guān)電源增加填谷線(xiàn)路后紋波<b class='flag-5'>異常</b>抖動(dòng)<b class='flag-5'>解決方案</b>