8 使用HSE HSI配置時鐘

2021-10-06 05:54:20 字數 1802 閱讀 6294

rcc :reset clock control 復位和時鐘控制器。時鐘控制和時鐘暫存器很重要,不同的晶元對於不同匯流排的時鐘配置也不一定完全一樣。。

三種不同的時鐘源可被用來驅動系統時鐘(sysclk):

● hsi振盪器時鐘- high speed internal oscillator clock

● hse振盪器時鐘- high speed external oscillator clock

● pll時鐘 - phase locked loop鎖相環倍頻,用於將低頻時鐘配置成倍數的高頻時鐘

1、hse時鐘

2、hsi時鐘

3、鎖相環時鐘pllclk

系統時鐘系統開始啟動檔案stratup_stm32f10x_hd.s 中對系統初始化import systeminit,即定義在system_stm32f10x.c中的void systeminit (void),這個函式最後一行就呼叫了setsysclock();對系統時鐘進行配置。

static void setsysclock(void)也包含在system_stm32f10x.c檔案中,預設為72m

static void setsysclock(void);中定義了許多巨集,如果手動定義了sysclk_freq_hse,系統時鐘配置為hse,也可以配置系統時鐘為pllclk,只需要手動定義sysclk_freq_24mhz等等;如果以上都沒有定義,則系統時鐘預設為8*9=72m

按照系統時鐘不同的**,在時鐘樹分成三條線路

1、hse作系統時鐘

直接選擇 hse作為系統時鐘訊號源。

再配置ahb分頻因子為1,得到hclk,72m;設定apb1匯流排分頻因子為2,得到pclk1,36m;設定apb2匯流排分頻因子為1,得到pclk2,72m。

2、hse(hsi)選作鎖相環時鐘

外部hse(8m),經過pllxtpre(不分頻),選為鎖相環pll的輸入時鐘,配置鎖相環倍頻因子(2-16)為9倍,得到鎖相環時鐘72m,然後把鎖相環時鐘配置為系統時鐘72m。然後和1後面相同。

3、hsi作系統時鐘

直接選擇 hsi作為系統時鐘訊號源。然後和1後面相同。

設計思路

1、復位rcc暫存器到預設值

2、使能hse,等待穩定,確定hse啟動成功

3、使能flash預取值,設定flash等待週期

4、配置ahb,apb2,apb1這三條匯流排的分頻因子

5、選擇鎖相環的時鐘源,倍頻因子

6、使能鎖相環,等待其穩定

7、選擇鎖相環時鐘為系統時鐘,讀取相關狀態位,等待轉換完成

具體**如下:

void hse_setsysclk(uint32_t rcc_pllmul)

else

}

除了檢視系統時鐘對流水燈重新整理頻率對應系統時鐘的改變之外,還可以主時鐘輸出sysclk,用示波器接pa8引腳輸出口檢視其波形,幅值,頻率。

STM8S時鐘配置

1 stm8時鐘說明 stm8上電復位後預設使用內部的高速時鐘,並分頻成為2m用於系統執行。如果我們想要使用外部時鐘,需要進行時鐘切換,切換過程中還需要使用stvp進行晶元選項字的更改。2 stm8s時鐘配置 庫函式版 1 配置內部高速振盪器 hsi 的分頻器 1分頻 clk hsiprescale...

RCC 使用HSE配置系統時鐘

晶元提供時鐘就要有時鐘樹 時鐘樹在參考手冊rcc章節開頭就有 這裡的時鐘樹看到感覺眼睛打了馬賽克,小弟截圖技術有限 晶振 晶體振盪器,用於各種電路中產生振盪頻率,每個微控制器裡都會有晶振,給微控制器提供時鐘頻率,振盪得越快,時鐘頻率就越高,微控制器執行的速度就越快 時鐘是由晶振提供的,首先要找到時鐘...

SOC時鐘配置

soc的時鐘產生單元 cgu 通過外部輸入時鐘和內部相位鎖相環 pll 和分頻選擇邏輯產生用於片內的不同頻率的時鐘。片內時鐘頻率的改變通過配置 ahb匯流排全域性控制模組單元內部鎖相環暫存器實現。cgu單元內部包含三個鎖相環,分別產生系統主時鐘 ddr物理層時鐘 乙太網物理層時鐘,其配置暫存器位於 ...