色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

什么是外設時鐘根配置

汽車電子技術 ? 來源:程序猿搬磚 ? 作者:壞人 ? 2023-03-02 16:22 ? 次閱讀

外設需要工作也需要時鐘驅動,通過多路選擇器以及對應的寄存器配置初始化最適合的外設頻率可以讓外設更高頻的工作。

圖片

從上面截圖以及紅框中可以看到,外設時鐘根PERCLK_CLK_ROOTIPG_CLK_ROOT為大多數常用的外設提供時鐘,初始化這兩個時鐘根需要先對AHB_CLK_ROOT進行初始化

初始化AHB_CLK_ROOT

AHB_CLK_ROOT的時鐘來源在CBCDR[PERIPH_CLK_SEL]處有一個多路選擇器

圖片

從上面這個圖可以看出AHB_CLK_ROOT最大支持的頻率是132MHz,如果在CBCDR[PERIPH_CLK_SEL]這個多路選擇器這里選擇了上路,那它的時鐘來源最大的頻率是PLL3_480,通過CBCDR[PERIPH_CLK2_RODF]分頻后最大只能到120(此時分頻器的值是4,如果是3的話160則超過了最大值),因為AHB_CLK_ROOT限制最大是132。因此CBCDR[PERIPH_CLK_SEL]這個多路選擇器,選擇下路, 同時在CBCMR[PRE_PERIPH_CLK_SEL]時選擇PLL2PFD2時鐘源,它的時鐘頻率是396MHz,最終達到AHB_CLK_ROOT時經過CBCDR[AHB_PODF]分頻器處理剛好得到132MHz的頻率。

/// 配置外接設備的時鐘頻率
    /// CBCMR[PRE_PERIPH_CLK_SEL]選擇PLL2->PFD2
    /// 先將19-18兩個bit位清0
    /// 再將19-18兩個bit位的數據寫成1,選擇PFD2
    CCM->CBCMR &= ~(3 << 18);
    CCM->CBCMR |= (1 << 18);
    /// CBCDR[PERIPH_CLK_SEL]多路選擇器選擇下路
    CCM->CBCDR &= ~(1 << 25);
    /// 讀取第5個bit位(PERIPH_CLK_ SEL_BUSY),如果是1指示正忙于握手,如果是0表示握手完成
    while ((CCM->CDHIPR >> 5) & 0x1);

/* 修改 AHB_PODF 位的時候需要先禁止 AHB_CLK_ROOT 的輸出,但是
 * 我沒有找到關閉 AHB_CLK_ROOT 輸出的的寄存器,所以就沒法設置。
 * 下面設置 AHB_PODF 的代碼僅供學習參考不能直接拿來使用!!
 * 內部 boot rom 將 AHB_PODF 設置為了 3 分頻,即使我們不設置 AHB_PODF, * AHB_ROOT_CLK 也依舊等于 396/3=132Mhz。
 */
#if 0
    /// 將CBCDR[AHB_PODF]的12-10三個bit位清0
    CCM->CBCDR &= ~(7 << 10);
    /// 將CBCDR[AHB_PODF]的值設置成3,即3分頻
    CCM->CBCDR | (2 << 10);
    /// 等待忙位檢測通過
    while ((CCM->CDHIPR >> 1) & 0x1);
#endif

初始化IPG_CLK_ROOT

IPG_CLK_ROOT的頻率最大值是66MHz,從AHB_CLK_ROOT過來的頻率是132MHz,所以這里只需要將CBCDR[IPG_PODF]分頻器的值設置成除2即可。

/// 將9-8兩個bit位的數據清0
CCM->CBCDR &= ~(3 << 8);
/// 設置成2分頻
CCM->CBCDR |= (1 << 8);

初始化PERCLK_CLK_ROOT

PERCLK_CLK_ROOT的頻率最大值是66MHz,在CBCDR[IPG_PODF]分頻器的作用下它的頻率已經是66MHz了,所以此時只需要將CSCMR1[PERCLK_CLK_SEL]多路選擇器選擇到IPG_CLK_ROOT,將PERCLK_PODF分頻器的值設置成1分頻即可。

/// CSCMR1[PERCLK_CLK_SEL]選擇ipg clk root
CCM->CSCMR1 &= ~(1 << 6);
/// 將5-0 6個bit位清0,設置成1分頻,此時已經是1分頻了
CCM->CSCMR1 &= ~(0x3F << 0);

以上都初始化完成后IPG_CLK_ROOTPERCLK_CLK_ROOT兩個時鐘根的頻率就工作在子66MHz,最大的發揮了SOC的性能,這兩個時鐘根也是大部分外設的時鐘源。

特別說明

修改 AHB_PODF 位的時候需要先禁止 AHB_CLK_ROOT 的輸出,但是

  • 我沒有找到關閉 AHB_CLK_ROOT 輸出的的寄存器,所以就沒法設置。
  • 下面設置 AHB_PODF 的代碼僅供學習參考不能直接拿來使用!!
  • 內部 boot rom 將 AHB_PODF 設置為了 3 分頻,即使我們不設置 AHB_PODF, * AHB_ROOT_CLK 也依舊等于 396/3=132Mhz。# 外設時鐘根配置
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 時鐘
    +關注

    關注

    10

    文章

    1733

    瀏覽量

    131451
  • 外設
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11692
  • 多路選擇器
    +關注

    關注

    1

    文章

    22

    瀏覽量

    6524
收藏 人收藏

    評論

    相關推薦

    STM32為什么要先開啟外設時鐘

    相信很多朋友都曾遇到過這種坑,我最初學習STM32的時候同樣也遇到過。下面,我就來說說為什么我們要先開啟STM32外設模塊時鐘,再對其外設模塊初始化配置
    的頭像 發表于 10-20 14:10 ?4498次閱讀
    STM32為什么要先開啟<b class='flag-5'>外設</b><b class='flag-5'>時鐘</b>?

    STM32基于標準外設庫的外部中斷配置

    本文介紹了STM32基于標準外設庫的外部中斷配置,以及基于參考手冊如何更加寄存器配置外部中斷
    的頭像 發表于 11-02 14:13 ?1871次閱讀
    STM32基于標準<b class='flag-5'>外設</b>庫的外部中斷<b class='flag-5'>配置</b>

    STM32L552系統時鐘外設時鐘配置錯誤導致系統不穩定的原因?怎么解決?

    系統時鐘外設時鐘配置錯誤導致系統不穩定
    發表于 03-20 07:59

    PWM對應的外設時鐘

    1. 時鐘配置時鐘樹上面,PWM對應的外設時鐘為APB1 Timer Clock, 48MHz.2. PWM通道的
    發表于 08-06 09:08

    系統時鐘的相關配置

    時鐘配置概述時鐘概述經過前文對GPIO、USART外設的初步學習,發現有兩個基本知識需要補充學習,一個是系統時鐘的相關
    發表于 08-12 06:57

    時鐘配置

    時鐘樹見最后(stm32F407VGET6)1、首先需要明確的一點是時鐘配置時鐘外設對應時鐘
    發表于 08-12 06:36

    淺析STM32F105RBT6使用外部晶振8M時配置外設時鐘

    STM32F105RBT6使用外部晶振8M時配置外設時鐘
    發表于 08-18 07:51

    STM32F105RBT6是如何使用外部晶振8M去配置外設時鐘

    STM32F105RBT6是如何使用外部晶振8M去配置外設時鐘的?有哪些操作步驟呢?
    發表于 11-22 06:02

    時鐘樹常見配置

    時鐘樹常見配置時鐘用途總線時鐘和圖中被大括號標出的時鐘都可以作為相應外設
    發表于 01-20 08:02

    為什么那么多外設選擇內部48Mhz RC時鐘作為root?

    時鐘、MIPI_REF 時鐘等。2、為什么不選用精密的外部振蕩器24Mhz時鐘?主要優點和缺點是什么?3.如果我要
    發表于 03-21 07:16

    基于STM32時鐘系統的開發及配置

    研究過時鐘來源,再來研究時鐘的去向,MCU自身要能正常運作,即需要一個時鐘,這個時鐘既是系統時鐘(SYSCLK),而基本上所有
    發表于 10-19 15:55 ?2305次閱讀
    基于STM32<b class='flag-5'>時鐘</b>系統的開發及<b class='flag-5'>配置</b>

    STM32的時鐘配置——時鐘樹解析

    STM32為什么要有復雜的時鐘系統首先STM32 本身非常復雜,外設非常的多,但是并不是所有外設都需要系統時鐘這么高的頻率,比如看門狗以及 RTC 只需要幾十 k 的
    發表于 11-23 18:21 ?8次下載
    STM32的<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>——<b class='flag-5'>時鐘</b>樹解析

    基本時鐘配置

    DCO頻率配置 MCLK,SMCLK時鐘源選擇,分頻配置 時鐘信號選擇
    發表于 11-25 09:36 ?40次下載
    基本<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>

    STM32F4時鐘配置的操作步驟

    本文將介紹STM32F4時鐘配置的操作步驟、并對比時鐘配置前后LED外設閃爍的快慢以及對應代碼的講解。
    的頭像 發表于 04-21 11:29 ?3686次閱讀
    STM32F4<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>的操作步驟

    STM32失能時鐘和復位外設的區別

    STM32失能時鐘和復位外設的區別
    的頭像 發表于 10-17 11:48 ?872次閱讀
    STM32失能<b class='flag-5'>時鐘</b>和復位<b class='flag-5'>外設</b>的區別
    主站蜘蛛池模板: 色悠悠电影网| 国产成人在线播放视频| 亚洲国产日韩欧美高清片a| 欧美午夜精品一区二区蜜桃| 久久成人免费大片| 九九热精品在线| 国语对白老女人8av| 国产精品单位女同事在线| 999精品在线| 18禁在线无遮挡羞羞漫画 | 欧美一区二区视频高清专区| 九九热视频免费观看| 交换:年轻夫妇-HD中文字幕| 国产黄大片在线视频| 俄罗斯videosbest8| 达达兔欧美午夜国产亚洲| 成片免费观看视频在线网| jjzz大全| 动漫美女无衣| 国产成人精品免费视频大| 高清观看ZSHH96的视频素材| 国产AV麻豆出品在线播放| 国产成人在线观看免费网站| 国产精品JIZZ在线观看A片| 国产99精品在线观看| 国产精品亚洲第一区二区三区| 国产精品久久久久久久久免费下载 | 99久久免费精品国产| 97亚洲狠狠色综合久久久久| 99er久久国产精品在线| 柏木舞子在线| 国产女高清在线看免费观看| 黑吊大战白xxxxxx| 美女裸露100%奶头视频| 飘雪在线观看免费完整版| 色影音先锋av资源网| 亚洲国产综合另类视频| 中文字幕在线免费视频| 哒哒哒影院在线观看免费高清| 国产视频精品在线偷拍| 美女被抽插到哭内射视频免费|