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

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

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

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

STM32F207是如何將25M晶振時(shí)鐘轉(zhuǎn)換為120M系統(tǒng)主頻時(shí)鐘的?

冬至子 ? 來(lái)源:知曉編程 ? 作者:Firefly ? 2023-07-11 16:00 ? 次閱讀

01

時(shí)鐘系統(tǒng)介紹

圖片

▲時(shí)鐘系統(tǒng)專業(yè)名詞縮寫(xiě)

時(shí)鐘系統(tǒng)關(guān)鍵組成部分

01

內(nèi)部高速時(shí)鐘(HSI)

HSI時(shí)鐘信號(hào)可以通過(guò)內(nèi)部16MHZ的RC振蕩器產(chǎn)生,可以直接用于系統(tǒng)時(shí)鐘或者用于PLL輸入。

HSI的RC振蕩器的優(yōu)勢(shì)是: 在最小成本(沒(méi)有外部器件)情況下提供一個(gè)時(shí)鐘源。它的啟動(dòng)速度要比HSE晶體振蕩器更快,但是即使校準(zhǔn)頻率后,它的精度仍然小于外部晶體振蕩器或陶瓷諧振器

02

外部高速時(shí)鐘(HSE)

外部高速時(shí)鐘信息(HSE)可以通過(guò)兩個(gè)時(shí)鐘源產(chǎn)生:

① 外部晶體/陶瓷諧振器

② 外部用戶時(shí)鐘

圖片

▲兩種時(shí)鐘源接入示意圖

03

主鎖相環(huán)時(shí)鐘(PLL)

STM32F2xx具有兩個(gè)PLL

① 主要的PLL通過(guò)HSE或HSI提供時(shí)鐘,并且有兩個(gè)輸出時(shí)鐘;

② 專用的PLL(PLLI2S)被用于產(chǎn)生一個(gè)精確的時(shí)鐘去實(shí)現(xiàn)高質(zhì)量音頻效果在I2S接口

圖片

HSE/M*N/P得到PLL時(shí)鐘

關(guān)于PLL鎖相環(huán)說(shuō)明

圖片

從1處輸入,3處輸出是1的N倍。

3處除以N又作為輸入,當(dāng)1和2的頻率一樣,就鎖定了。(之所以圖上是xN,因?yàn)閺?看向3的)

04

低速外部時(shí)鐘(LSE)

LSE是一個(gè)32.768KHZ低速外部晶振或陶瓷諧振器。

它的優(yōu)點(diǎn):提供低速但是高精度時(shí)鐘給RTC外設(shè),為時(shí)鐘/日歷或其他時(shí)間應(yīng)用。

05

低速內(nèi)部時(shí)鐘(LSI)

LSI RC作為一個(gè)低速時(shí)鐘源,它可以運(yùn)行在停止和待機(jī)模式中給獨(dú)立看門(mén)狗(IWDG)和自動(dòng)喚醒(AWU)。它的時(shí)鐘頻率在32MHZ左右。

02

代碼分析

時(shí)鐘初始化代碼在system_stm32f2xx.c文件中,大部分時(shí)候我們不需要修改時(shí)鐘代碼的,各個(gè)總線的頻率我們可以在文件頭看到。

=============================================================================
  *=============================================================================
  *        Supported STM32F2xx device revision    | Rev B and Y
  *-----------------------------------------------------------------------------
  *        System Clock source                    | PLL (HSE)
  *-----------------------------------------------------------------------------
  *        SYSCLK(Hz)                             | 120000000
  *-----------------------------------------------------------------------------
  *        HCLK(Hz)                               | 120000000
  *-----------------------------------------------------------------------------
  *        AHB Prescaler                          | 1
  *-----------------------------------------------------------------------------
  *        APB1 Prescaler                         | 4
  *-----------------------------------------------------------------------------
  *        APB2 Prescaler                         | 2
  *-----------------------------------------------------------------------------
  *        HSE Frequency(Hz)                      | 25000000
  *-----------------------------------------------------------------------------
  *        PLL_M                                  | 25
  *-----------------------------------------------------------------------------
  *        PLL_N                                  | 240
  *-----------------------------------------------------------------------------
  *        PLL_P                                  | 2
  *-----------------------------------------------------------------------------
  *        PLL_Q                                  | 5
  *-----------------------------------------------------------------------------
  *        PLLI2S_N                               | NA
  *-----------------------------------------------------------------------------
  *        PLLI2S_R                               | NA
  *-----------------------------------------------------------------------------
  *        I2S input clock                        | NA
  *-----------------------------------------------------------------------------
  *        VDD(V)                                 | 3.3
  *-----------------------------------------------------------------------------
  *        Flash Latency(WS)                      | 3
  *-----------------------------------------------------------------------------
  *        Prefetch Buffer                        | ON
  *-----------------------------------------------------------------------------
  *        Instruction cache                      | ON
  *-----------------------------------------------------------------------------
  *        Data cache                             | ON
  *-----------------------------------------------------------------------------
  *        Require 48MHz for USB OTG FS,          | Enabled
  *        SDIO and RNG clock                     |
  *-----------------------------------------------------------------------------
  *=============================================================================
  ******************************************************************************

在文件開(kāi)始定義的有系統(tǒng)時(shí)鐘頻率的全局變量SystemCoreClock,其他地方需要時(shí)鐘頻率,可以直接使用該變量。

uint32_t SystemCoreClock = 120000000;

時(shí)鐘配置從SystemInit函數(shù)執(zhí)行,調(diào)用SystemInit的在匯編文件中startup_stm32f2xx.s(Keil編譯環(huán)境)。

IMPORT  __main
    LDR     R0, =SystemInit
    BLX     R0
    LDR     R0, =__main
    BX      R0
    ENDP

在這里說(shuō)明一下文檔版本的問(wèn)題:

圖片

STM32F20X_User_manual的V7版和V8版對(duì)比圖

上述兩圖的區(qū)別是系統(tǒng)最大時(shí)鐘從120MHZ變成了168MHZ,我的理解是同樣是STM32F20X,ST由于技術(shù)進(jìn)步或其他,使得新版STM32F207芯片超頻支持168MHZ。

下面我們主要分析SystemCoreClock的120M時(shí)鐘怎么從一個(gè)外部25MHZ的HSE得到的。

圖片

我們要從25MHZ的外部時(shí)鐘得到120M的系統(tǒng)時(shí)鐘,需要上圖中標(biāo)注的重要4點(diǎn):

1、使能HSE

2、選擇HSE作為主PLL的輸入時(shí)鐘

3、主PLL倍頻后得到120MHZ時(shí)鐘

4、系統(tǒng)時(shí)鐘選擇主PLL時(shí)鐘輸出作為系統(tǒng)時(shí)鐘

我們找到對(duì)應(yīng)的代碼

1、使能HSE

/* Enable HSE */
  RCC- >CR |= ((uint32_t)RCC_CR_HSEON);

在RCC_CR寄存器(RCCclock control register RCC時(shí)鐘控制器)中,有打開(kāi)HSE的控制位

圖片

2、選擇HSE作為主PLL的輸入時(shí)鐘

/* Configure the main PLL */
RCC- >PLLCFGR = PLL_M | (PLL_N < < 6) | (((PLL_P > > 1) -1) < < 16) |
                   (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q < < 24);

RCC_PLLCFGR_PLLSRC_HSE就是配置HSE作為主PLL的輸入時(shí)鐘

3、主PLL倍頻后得到120MHZ時(shí)鐘

/* Configure the main PLL */
RCC- >PLLCFGR = PLL_M | (PLL_N < < 6) | (((PLL_P > > 1) -1) < < 16) |
                   (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q < < 24);

4、配置主PLL作為系統(tǒng)時(shí)鐘的輸入時(shí)鐘

/* Select the main PLL as system clock source */
RCC- >CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
RCC- >CFGR |= RCC_CFGR_SW_PL

對(duì)于主PLL的配置寄存器,在RCC_PLLCFGR寄存器中有說(shuō)明

圖片

整理后得知f(out)=f(in)* N / M / P

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      25
#define PLL_N      240


/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2

這樣就獲得了120M時(shí)鐘

注意:

圖片

PLL_M大于等于2且小于等于63

圖片

PLL_N大于等于64且小于等于432

圖片

PLL_P只能是2、4、6、或8

但2對(duì)應(yīng)0,4對(duì)應(yīng)1,6對(duì)應(yīng)2,8對(duì)應(yīng)3。

ST并沒(méi)有使用if或case語(yǔ)句判斷,因?yàn)閷?duì)應(yīng)的數(shù)據(jù)除以2減去1就是寄存器這兩位的值,所以可以按照下面這樣寫(xiě),這種寫(xiě)法值得我們學(xué)習(xí)。

(((PLL_P > > 1) -1) < < 16)

其他外設(shè)的時(shí)鐘配置時(shí)

/* HCLK = SYSCLK / 1*/
RCC- >CFGR |= RCC_CFGR_HPRE_DIV1;


/* PCLK2 = HCLK / 2*/
RCC- >CFGR |= RCC_CFGR_PPRE2_DIV2;


/* PCLK1 = HCLK / 4*/
RCC- >CFGR |= RCC_CFGR_PPRE1_DIV4;

** 備 注 **

** 時(shí)鐘中斷**

圖片

可以配置外部晶振出錯(cuò)時(shí)的中斷,還有RCC中斷,因此我們可以在外部時(shí)鐘出問(wèn)題時(shí),切換為內(nèi)部時(shí)鐘,不至于整個(gè)系統(tǒng)掛掉。具體見(jiàn)ST給的官方代碼。

無(wú)源晶振不起振

沒(méi)有程序,無(wú)源晶振是不起振的,需要配置RCC時(shí)鐘控制寄存器的HSEON位打開(kāi)或關(guān)閉HSE振蕩器。

關(guān)于APB和PCLK

F207是時(shí)鐘圖沒(méi)有顯示PCLK1和PCLK2,應(yīng)該就是APB1和APB2

應(yīng)該指的是一個(gè)PCLK應(yīng)該是PeripheralClock的簡(jiǎn)稱,看F105手冊(cè)

圖片

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

    關(guān)注

    0

    文章

    22

    瀏覽量

    9558
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6431
  • STM32F207
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    6578
  • rc振蕩器
    +關(guān)注

    關(guān)注

    3

    文章

    48

    瀏覽量

    9584
  • 時(shí)鐘系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    101

    瀏覽量

    11749
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F030K6T6和STM32F103C8T6的換成25M的可以嗎?

    大神們,如果 把STM32F030K6T6 和 STM32F103C8T6 的換成25M的,可以嗎?
    發(fā)表于 04-26 06:12

    雷達(dá)用25M、50M、100M高穩(wěn)

    大家好我們是高穩(wěn)的生產(chǎn)廠家,可提供雷達(dá)用25M、50M、100M高穩(wěn)
    發(fā)表于 08-26 13:33

    stm32F207 APB1輸出最大時(shí)鐘給TIMER3問(wèn)題

    ”。AHB:即HPRE[3:0],PLL作為系統(tǒng)時(shí)鐘輸出為120M)(2)現(xiàn)象:配置TIMER3,120分頻,溢出中斷次數(shù)為1000,中斷產(chǎn)生周期是1ms(APB1,未分頻)。(3)疑
    發(fā)表于 12-11 09:01

    為什么LAN8720A的25M不起呢?

    STM32F407加LAN8720A以太網(wǎng)通信,原理圖都是按照開(kāi)發(fā)板的原理圖設(shè)計(jì)的, 為什么LAN8720A的25M不起呢。LAN87
    發(fā)表于 10-16 04:35

    STM32F207時(shí)鐘系統(tǒng)如何將25M時(shí)鐘轉(zhuǎn)換為120M系統(tǒng)主頻時(shí)鐘

    在前幾天的文章《原理解析》中介紹了如何產(chǎn)生時(shí)鐘的,板子使用的是25M無(wú)源
    發(fā)表于 08-02 06:34

    STM32F103芯片外接去除使用內(nèi)部HSI時(shí)鐘

    STM32F103使用內(nèi)部的配置及64M主頻異常的解決方法為了節(jié)省空間與成本,
    發(fā)表于 08-12 07:51

    STM32F1最大的主頻時(shí)鐘

    ??STM32F1官方默認(rèn)及大部分場(chǎng)合下都是使用8MHz的外部STM32F1最大的主頻時(shí)鐘
    發(fā)表于 08-12 06:57

    時(shí)鐘跑的到底是多少M

    新到一家公司后,有個(gè)項(xiàng)目要用到STM32F207Vx單片機(jī),找到網(wǎng)上的例子照貓畫(huà)虎的寫(xiě)了幾個(gè)例子,比如ADC,可是到了ADC多通道轉(zhuǎn)換的時(shí)候就有點(diǎn)傻眼了,這里面的時(shí)鐘跑的到底是多少M
    發(fā)表于 08-12 08:09

    stm32外部時(shí)鐘源8M如何修改成12M

    stm32外部時(shí)鐘源8M換成12M
    發(fā)表于 08-12 08:30

    如何將25M時(shí)鐘轉(zhuǎn)換為120M系統(tǒng)主頻時(shí)鐘

    時(shí)鐘系統(tǒng)有哪些關(guān)鍵組成部分?STM32F207時(shí)鐘系統(tǒng)如何將
    發(fā)表于 09-26 08:39

    gd32f303外部使用25M,會(huì)對(duì)rt thread中的定時(shí)器精度造成影響嗎?

    大家好因?yàn)轫?xiàng)目需要gd32f303外部使用25M,不知道會(huì)不會(huì)對(duì)rt thread中的定時(shí)器精度造成影響?如果造成影響應(yīng)該如何解決?大家好,咨詢個(gè)問(wèn)題,因?yàn)楣δ苄枰猤d32
    發(fā)表于 06-14 09:40

    STM32F207芯片手冊(cè)

    STM32F207芯片手冊(cè)datasheet
    發(fā)表于 09-01 15:01 ?0次下載

    STM32單片機(jī)外部配置時(shí)鐘設(shè)置

    由于STM32的庫(kù)默認(rèn)是外部8M的情況下實(shí)現(xiàn)的,所以配置串口波特率的時(shí)候也是按8M,包括主頻
    發(fā)表于 10-12 16:11 ?3.5w次閱讀
    <b class='flag-5'>STM32</b>單片機(jī)外部<b class='flag-5'>晶</b><b class='flag-5'>振</b>配置<b class='flag-5'>時(shí)鐘</b>設(shè)置

    stm32F4修改時(shí)鐘頻率,更換為8MHz

    觀,輸入頻率,自動(dòng)得出倍頻過(guò)程F4要修改時(shí)鐘,首先確定外部頻率如果是25MHz外部
    發(fā)表于 12-27 18:55 ?17次下載
    <b class='flag-5'>stm32F</b>4修改<b class='flag-5'>時(shí)鐘</b>頻率,更<b class='flag-5'>換為</b>8MHz<b class='flag-5'>晶</b><b class='flag-5'>振</b>

    STM32F103 8M改16M

    我們知道,F103默認(rèn)的外部是8M,系統(tǒng)時(shí)鐘頻率是72M
    發(fā)表于 01-13 10:54 ?21次下載
    <b class='flag-5'>STM32F</b>103 8<b class='flag-5'>M</b><b class='flag-5'>晶</b><b class='flag-5'>振</b>改16<b class='flag-5'>M</b><b class='flag-5'>晶</b><b class='flag-5'>振</b>
    主站蜘蛛池模板: 亲胸揉胸膜下刺激视频在线观看| 久久激情影院| 在线播放一区二区精品产| 午夜福利影院私人爽爽| 日韩一区精品视频一区二区| 欧美乱码伦视频免费66网| 内地同志男16china16| 男同志vdieos免费| 女人精69xxxxx舒心| 欧美gay69| 强开少妇嫩苞又嫩又紧九色| 欧美午夜精品一区区电影| 欧美极限扩肛| 强奸日本美女小游戏| 日本欧美久久久久免费播放网 | 亚洲AV中文字幕无码久久| 性肥胖BWBWBW| 亚洲精品久久无码AV片银杏| 亚洲精品视频在线观看视频| 一本道在线综合久久88| 一道本在线伊人蕉无码| 伊人狼人久久精品热9| 综合激情区视频一区视频二区| 中文字幕一区二区三区在线播放| 91青青草原| 啊好深啊别拔就射在里面| 福利社的阿姨| 国产精亚洲视频综合区| 精品国产乱码久久久久久免费流畅 | 91avcom| 菠萝视频高清版在线观看| 国产ts在线| 黄得让人湿的片段| 久久无码人妻中文国产| 欧美xxbb| 神马电影dy888午夜我不卡| 亚洲 欧美 日韩 国产 视频| 一个人免费观看HD完整版 | 门事件快播| 日本美女阴道| 亚洲AV蜜桃永久无码精品无码网 |