在GD固件庫的時鐘配置函數里看到這樣一段神秘代碼,研究分析后不得不佩服原廠固件庫里的細節處理:

查看定義是一段代碼,對AHB 2分頻后延時了一段時間:

在這段代碼后面可以看到程序將RCU_CFG0和RCU_CFG1兩個時鐘寄存器做了復位:

如果是程序復位啟動后第一次執行這段代碼,應該是沒有什么意義的,但產品設計時一般都會有一個BootLoader和APP兩段程序,當BootLoader跳轉到APP時,MCU的時鐘已經處于一個高頻狀態,直接執行RCU的復位意味著時鐘會立刻切到內部8M運行。
而通過查看DATASHEET,可以看到MCU在最大主頻下和默認復位主頻下的電流差距是很大的:


這樣的內部電流瞬間變化一般會導致內部電源的波動,這種波動情況下執行的指令是不可靠的,如果硬件設計時MCU去耦電容設計不合理,很可能加劇這個波動,此時如果指令錯誤了那很可能會跑飛進入hardfault。
而GD固件庫里這個神秘代碼,在高頻的情況下可以將系統時鐘降低一半并延時等待穩定,最后再復位時鐘寄存器降到8M的系統時鐘。這樣就讓電流變化有一個過渡,避免了內部電源波動過大。

——>

——>
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
芯片
+關注
關注
463文章
54010瀏覽量
466044 -
單片機
+關注
關注
6076文章
45495瀏覽量
670355 -
mcu
+關注
關注
147文章
18925瀏覽量
398148 -
GD32
+關注
關注
7文章
432瀏覽量
27344
發布評論請先 登錄
相關推薦
熱點推薦
在調試GD32芯片時遇到了時鐘配置錯誤的問題
在調試GD32芯片時遇到了時鐘配置錯誤的問題,仔細研究文檔和網上資料,認真調試之后做了以下總結,希望能幫到同樣有類似困惑的你。**1.認識時鐘
發表于 07-23 10:06
STM32移植到GD32,將內部時鐘切換為外部時鐘后無法運行的問題分析 精選資料分享
1. 前言作者之前用過GD32芯片,也成功移植過STM32代碼到GD32芯片,但最近移植一份STM32代
發表于 08-12 08:11
GD32芯片包添加步驟有哪些
**GD32芯片包添加步驟**GD32開發環境可以有多個選擇,常見的開發編譯環境有:Keil4,keil5,IAR。本教程針對keil5如何添加GD32系列mcu
發表于 11-22 08:30
分享在STM32代碼移植到GD32上時SPI部分出現的問題
贅述。問題:同樣的代碼在STM32上運行SPI讀數據沒有任何問題,但是修改芯片后移植到GD32上就出現SPI讀不到數據的問題.解決方法:GD32中SPI輸入部分的IO口必須
發表于 01-26 08:05
GD32與STM32的異同點
文章目錄GD32與STM32異同1. 相同點2. 外圍硬件區別3. 內部結構差別4. 功耗區別(以128k以下容量的作為參考)5. 內部FLASH 區別使用STM32庫開發時鐘配置區別1. 晶振起振
發表于 02-21 07:15
《GD32 MCU原理及固件庫開發指南》 + 初讀感悟
庫開發能夠避免每次操作寄存器時去查芯片的應用手冊,這樣能很好地提高開發效率。GD32 MCU原理固件庫開發指南這本書它詳細描述了基本所有外設的底層驅動程序和API接口,可以讓我快速地明白各個API函數
發表于 03-31 22:11
《GD32 MCU原理及固件庫開發指南》+讀后感
、調試工具,再到庫函數的使用、各個外設的程序實現,不僅有原理的介紹,還有實踐的歷程。這本書聚焦在GD32 MCU基本原理和固件庫上,重點在于對固件庫API的介紹,供了大量實例代碼,這些
發表于 06-06 21:52
【GD32】GD32讀取ADC數據
GD32的ADC有很多模式,這里教大家使用最簡單的軟件觸發讀取ADC,我使用的芯片是 GD32F350K8U6使用步驟1.初始化IO引腳設置為模擬輸入模式2.初始ADC時鐘和
發表于 12-02 15:06
?34次下載
STM32移植到GD32,將內部時鐘切換為外部時鐘后無法運行的問題分析
1. 前言作者之前用過GD32芯片,也成功移植過STM32代碼到GD32芯片,但最近移植一份STM32代
發表于 12-02 15:36
?17次下載
GD32系列總結 - 時鐘樹總結及CubeMX生成代碼
GD32系列總結 - 時鐘樹總結及CubeMX生成代碼寫在前面時鐘樹HSE振蕩器時鐘(高速外部時鐘
發表于 12-08 11:06
?15次下載
使用STM32固件庫開發GD32 匯總
文章目錄GD32與STM32異同1. 相同點2. 外圍硬件區別3. 內部結構差別4. 功耗區別(以128k以下容量的作為參考)5. 內部FLASH 區別使用STM32庫開發時鐘配置區別1. 晶振起振
發表于 12-27 18:38
?24次下載
GD32固件庫里時鐘配置時的神秘代碼?高頻切低頻時芯片會發生什么
評論