精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

GD32固件庫里時鐘配置時的神秘代碼?高頻切低頻時芯片會發(fā)生什么

聚沃科技 ? 2024-02-19 09:44 ? 次閱讀

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

wKgaomXSsi-AVO_DAAA83Hgi63o377.png

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

wKgZomXSsjSAbukpAAAIJccqiQA616.png

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

wKgaomXSsjmATD1PAAAJ25c3gug851.png

如果是程序復位啟動后第一次執(zhí)行這段代碼,應該是沒有什么意義的,但產品設計時一般都會有一個BootLoader和APP兩段程序,當BootLoader跳轉到APP時,MCU的時鐘已經處于一個高頻狀態(tài),直接執(zhí)行RCU的復位意味著時鐘會立刻切到內部8M運行。

而通過查看DATASHEET,可以看到MCU在最大主頻下和默認復位主頻下的電流差距是很大的:

wKgZomXSsj6AfnAwAAA7LoorJ9c450.png

wKgaomXSskOAEYDBAAA7u6RsHQM877.png

這樣的內部電流瞬間變化一般會導致內部電源的波動,這種波動情況下執(zhí)行的指令是不可靠的,如果硬件設計時MCU去耦電容設計不合理,很可能加劇這個波動,此時如果指令錯誤了那很可能會跑飛進入hardfault。

而GD固件庫里這個神秘代碼,在高頻的情況下可以將系統(tǒng)時鐘降低一半并延時等待穩(wěn)定,最后再復位時鐘寄存器降到8M的系統(tǒng)時鐘。這樣就讓電流變化有一個過渡,避免了內部電源波動過大。

wKgaomXSskOAEYDBAAA7u6RsHQM877.png

——>

wKgaomXSsk6AGo8-AAA9-GMILY0893.png

——>

wKgaomXSslSAZEkGAAA2s0lsMKs854.png

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

    關注

    454

    文章

    50460

    瀏覽量

    421971
  • 單片機
    +關注

    關注

    6032

    文章

    44525

    瀏覽量

    633260
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17019

    瀏覽量

    350373
  • GD32
    +關注

    關注

    7

    文章

    403

    瀏覽量

    24235
收藏 人收藏

    評論

    相關推薦

    在調試GD32芯片時遇到了時鐘配置錯誤的問題

    在調試GD32芯片時遇到了時鐘配置錯誤的問題,仔細研究文檔和網上資料,認真調試之后做了以下總結,希望能幫到同樣有類似困惑的你。**1.認識時鐘
    發(fā)表于 07-23 10:06

    STM32移植到GD32,將內部時鐘切換為外部時鐘后無法運行的問題分析 精選資料分享

    1. 前言作者之前用過GD32芯片,也成功移植過STM32代碼GD32芯片,但最近移植一份STM32
    發(fā)表于 08-12 08:11

    GD32芯片包添加步驟有哪些

    **GD32芯片包添加步驟**GD32開發(fā)環(huán)境可以有多個選擇,常見的開發(fā)編譯環(huán)境有:Keil4,keil5,IAR。本教程針對keil5如何添加GD32系列mcu
    發(fā)表于 11-22 08:30

    分享在STM32代碼移植到GD32上時SPI部分出現(xiàn)的問題

    贅述。問題:同樣的代碼在STM32上運行SPI讀數(shù)據(jù)沒有任何問題,但是修改芯片后移植到GD32上就出現(xiàn)SPI讀不到數(shù)據(jù)的問題.解決方法:GD32中SPI輸入部分的IO口必須
    發(fā)表于 01-26 08:05

    GD32系列總結

    GD32系列總結 - 時鐘樹總結及CubeMX生成代碼寫在前面時鐘樹HSE振蕩器時鐘(高速外部時鐘
    發(fā)表于 02-11 07:11

    GD32 MCU原理及固件庫開發(fā)指南》 + 初讀感悟

    庫開發(fā)能夠避免每次操作寄存器時去查芯片的應用手冊,這樣能很好地提高開發(fā)效率。GD32 MCU原理固件庫開發(fā)指南這本書它詳細描述了基本所有外設的底層驅動程序和API接口,可以讓我快速地明白各個API函數(shù)
    發(fā)表于 03-31 22:11

    GD32 MCU原理及固件庫開發(fā)指南》+讀后感

    、調試工具,再到庫函數(shù)的使用、各個外設的程序實現(xiàn),不僅有原理的介紹,還有實踐的歷程。這本書聚焦在GD32 MCU基本原理和固件庫上,重點在于對固件庫API的介紹,供了大量實例代碼,這些
    發(fā)表于 06-06 21:52

    gd32和stm32的固件可以通用嗎?

    請問gd32和stm32的固件可以通用嗎,或者stm32兼容國產哪些單片機
    發(fā)表于 09-20 06:01

    GD32GD32讀取ADC數(shù)據(jù)

    GD32的ADC有很多模式,這里教大家使用最簡單的軟件觸發(fā)讀取ADC,我使用的芯片GD32F350K8U6使用步驟1.初始化IO引腳設置為模擬輸入模式2.初始ADC時鐘
    發(fā)表于 12-02 15:06 ?28次下載
    【<b class='flag-5'>GD32</b>】<b class='flag-5'>GD32</b>讀取ADC數(shù)據(jù)

    STM32移植到GD32,將內部時鐘切換為外部時鐘后無法運行的問題分析

    1. 前言作者之前用過GD32芯片,也成功移植過STM32代碼GD32芯片,但最近移植一份STM32
    發(fā)表于 12-02 15:36 ?17次下載
    STM32移植到<b class='flag-5'>GD32</b>,將內部<b class='flag-5'>時鐘</b>切換為外部<b class='flag-5'>時鐘</b>后無法運行的問題分析

    GD32系列總結 - 時鐘樹總結及CubeMX生成代碼

    GD32系列總結 - 時鐘樹總結及CubeMX生成代碼寫在前面時鐘樹HSE振蕩器時鐘(高速外部時鐘
    發(fā)表于 12-08 11:06 ?15次下載
    <b class='flag-5'>GD32</b>系列總結 - <b class='flag-5'>時鐘</b>樹總結及CubeMX生成<b class='flag-5'>代碼</b>

    使用STM32固件庫開發(fā)GD32 匯總

    文章目錄GD32與STM32異同1. 相同點2. 外圍硬件區(qū)別3. 內部結構差別4. 功耗區(qū)別(以128k以下容量的作為參考)5. 內部FLASH 區(qū)別使用STM32庫開發(fā)時鐘配置區(qū)別1. 晶振起振
    發(fā)表于 12-27 18:38 ?23次下載
    使用STM32<b class='flag-5'>固件</b>庫開發(fā)<b class='flag-5'>GD32</b> 匯總

    GD32107C芯片RTC時鐘代碼

    GD32107C芯片-RTC時鐘代碼
    發(fā)表于 10-08 14:57 ?1次下載

    gd32和stm32程序可以互用嗎?

    gd32和stm32程序可以互用嗎? GD32和STM32是兩種不同的芯片系列,相同點是都屬于ARM Cortex-M系列芯片。雖然它們有相似的架構和指令集,但是由于它們來自不同的廠商
    的頭像 發(fā)表于 08-16 11:32 ?3787次閱讀