国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CPU時鐘調高時出現異常的案例及解決方案分享

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

掃碼添加小助手

加入工程師交流群

近日某論壇STM32用戶反饋,使用STM32F103內部時鐘,把系統時鐘配置成64MHz單片機就不跑了,配置成36MHz程序就正常妥妥的,頻率稍高點就容易導致死機。他貼出的代碼如下:

void RCC_Configuration(void)

{

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

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);

//設置 PLL 時鐘源及倍頻系數

RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);

結合他的問題描述及他貼出來的代碼,大致可以判斷出很可能是因為他屏蔽了指令預取和flash讀取等待延遲的參數配置而導致的異常。即上面兩條紅色標注出來的代碼。

后來我明確地提醒他這點后,他似乎并沒及時反應過來,還折騰了幾下才開啟了上述配置,問題最終得以解決。

其實,關于這個問題經常有人遇到,尤其是那些基于STM32標準固件庫進行開發或自行編程時的新手更容易碰到這個問題。主要原因是他們對上述兩行代碼的功能不了解,導致有意或無意的將庫例程中相關代碼屏蔽掉無視掉不做配置、或者配置不正確。

這里將這個問題再次分享出來,對上面兩行代碼簡單做些解釋。希望更多人對此有所知曉,少在這個地方走彎路。

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

現有STM32各個系列都是基于ARM cortexM內核的微處理器,采用多級流水線的哈佛結構,即一條指令的執行分割為幾個階段,如取指、譯碼、執行等,使得當前指令的取指操作完成后就可以開始后續指令的取指、譯碼等操作,程序指令就這樣像流水一樣執行下去,大大提高了指令的執行效率。

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

CPU時鐘調高時出現異常的案例及解決方案分享

再比如STM32F4系列,它的指令預取功能在芯片復位后是默認關閉的,你可以自行打開。但明確要求關閉的場景就是芯片的供電電壓低于2.1V時。

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

上面大致講了指令預取功能,預取主要是為了實現指令讀取和執行的高效性。具體細節請參考相關技術手冊。我們知道CPU的運行速度可調,可以很快,通常使用高速總線訪問FLASH接口控制器,FLASH控制器收到來自CPU的取指指令后然后去讀取相應地址的指令或數據。Flash控制器自身的讀取速度相比CPU的高速請求來說可能會出現滯后,往往需要CPU做相應的延時等待。為了讓CPU準確及時讀取 Flash 數據,我們須根據 CPU 時鐘頻率、FLASH控制器自身特性以及器件供電情況在Flash存取控制寄存器(FLASH_ACR)中正確地編程等待周期數(LATENCY),類似上面提到的第二句代碼:

FLASH_SetLatency(FLASH_Latency_n);

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

CPU時鐘調高時出現異常的案例及解決方案分享

下面是個關于STM32F4系列部分產品線的LATENCY設置的表格。從表格中可以看出LATENCY參數的設置與CPU的時鐘、電源電壓都有關系。另外,當電源電壓在2.1V以下上要關閉預取功能。

CPU時鐘調高時出現異常的案例及解決方案分享

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

具體回到開頭的案例,它出現死機問題,極可能是因為沒有合理配置等待周期參數導致異常,因為它屏蔽了參考例程中那兩句配置代碼,即使用其默認功能,對于STM32F1,指令預取功能默認為開啟。而STM32F1系列芯片的latency默認值即為0,無等待。這樣的話,當他把時鐘調高到一定程度時出現死機就不難理解了。

另外,當他反饋時鐘調高產生異常時,我還給他提醒了注意檢查VDDA的電源情況。我碰到有人遇到因VDDA沒接好使得PLL不正常的情況。我們知道,對于STM32芯片,調高其工作時鐘,往往借助于鎖相環。而PLL的供電來自VDDA,如果PLL沒有被正常供電,也是個非常隱蔽的麻煩。曾經有個客戶為此折騰好久,才愿沉下心來檢查其“壞品”的電源,結果發現有個VDDA腳虛焊。一直以芯片低頻沒問題,頻率高了就異常為由懷疑芯片品質問題而耽誤時間。

CPU時鐘調高時出現異常的案例及解決方案分享

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


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32F103
    +關注

    關注

    34

    文章

    495

    瀏覽量

    67688
  • cpu時鐘
    +關注

    關注

    0

    文章

    1

    瀏覽量

    1563

原文標題:CPU時鐘調高時出現異常的案例分享

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LMK04000系列時鐘抖動清理器:高精度時鐘解決方案

    LMK04000系列時鐘抖動清理器:高精度時鐘解決方案 在電子設計領域,時鐘信號的穩定性和低抖動性能對于眾多應用至關重要。德州儀器(TI)的LMK04000系列精密
    的頭像 發表于 02-09 16:40 ?111次閱讀

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

    LMK01801雙時鐘分頻緩沖器:高精度時鐘解決方案 引言 在電子設計領域,時鐘信號的精準分配和分頻對于系統的穩定運行至關重要。今天要給大家介紹的是德州儀器(TI)的LMK01801雙
    的頭像 發表于 02-09 11:10 ?155次閱讀

    賽思分享時鐘服務器的解決方案及其優勢

    隨著科技的不斷發展,各種應用場景對于時間同步和精確性的要求也越來越高。在這種情況下,時鐘服務器應運而生,為各行各業提供了高效、穩定、可靠的時間同步解決方案。本文將詳細介紹時鐘服務器的解決方案
    的頭像 發表于 01-06 17:35 ?5627次閱讀
    賽思分享<b class='flag-5'>時鐘</b>服務器的<b class='flag-5'>解決方案</b>及其優勢

    RE時鐘高次諧波解決方案

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

    CW32的時鐘校準

    ,芯片可能出現異常。芯片出廠時已預調好 48MHz 頻點的校準參數,并存放在 FLASH 中。應用程序只需要將 FLASH 內的校準值讀出并寫入 SYSCTRL_HSI.TRIM 即可獲得精準
    發表于 12-11 07:58

    HSIOSC時鐘和LSI時鐘時鐘的校準

    HSIOSC 時鐘校準 HSIOSC 安全工作范圍為 32 ~ 48MHz,超過安全范圍,芯片可能出現異常。芯片出廠時已預調好 48MHz 頻點的校準參數,并存放在 FLASH 中。應用程序只需要
    發表于 12-08 07:42

    如何處理電能質量在線監測裝置時鐘模塊自動同步異常的情況?

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

    UPS電源市電供電異常全解析:從現象到解決方案的實用指南

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

    設備運行狀態出現異常,如何確定是電源紋波超標導致的

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

    rtthread線程出現異常了,有沒有什么鉤子函數能夠定義用戶操作?

    線程出現異常了,有沒有什么鉤子函數能夠定義用戶操作????
    發表于 09-18 06:36

    安燈數據采集到MES系統的解決方案

    “安燈”原本是指車間生產線上的提示燈系統,能夠在生產中出現異常時及時發出警報,這樣現場人員就能及時知曉異常狀況并采取措施,確保生產安全。然而,隨著越來越多自動化設備得到應用,車間現場的管理人員也會
    的頭像 發表于 09-02 17:03 ?816次閱讀
    安燈數據采集到MES系統的<b class='flag-5'>解決方案</b>

    AD7928BRUZ AD采樣批量出現異常低值的原因?

    信號的峰值,意味AD7928BRUZ均在模擬信號達到峰值時采集。我觀測了半個小時的數據,均沒有發現cs信號和模擬信號時序異常。 現在請教有可能是哪方面的問題,導致異常數據出現。
    發表于 08-13 06:29

    判斷伺服行星減速機出現噪音的異常

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

    TJA1043的收發器,如果CAN總線出現異常,它會進入異常狀態嗎?

    關于 TJA1043 的收發器,如果 CAN 總線出現異常,它會進入異常狀態嗎?一旦處于異常狀態,它的行為會如何?例如,可以發送數據包但無法接收,謝謝
    發表于 04-04 07:30

    反激式開關電源增加填谷線路后紋波異常抖動解決方案

    一、問題現象描述-電源拓撲:反激式開關電源(帶填谷式PFC電路)。-故障現象:-加入填谷電路后,輸出電壓紋波出現異常抖動(如100Hz低頻紋波疊加高頻振蕩)。圖1-輕載時抖動更明顯,可能導致控制環路
    的頭像 發表于 03-19 09:50 ?3040次閱讀
    反激式開關電源增加填谷線路后紋波<b class='flag-5'>異常</b>抖動<b class='flag-5'>解決方案</b>