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

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

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

3天內不再提示

AT32F403A/407時鐘配置指南

0739hhbb ? 來源:AT32 MCU 雅特力科技 ? 作者:AT32 MCU 雅特力科技 ? 2022-10-24 11:57 ? 次閱讀

簡介

時鐘芯片正確高效運行的基礎,正確的時鐘配置是芯片能正確運行的必要條件,其重要性不言而喻。AT32各系列產品的時鐘配置部分可能存在細微的差異和需要注意的事項,本文檔就著重針對各系列的情況來詳細介紹如何結合雅特力提供的V2.x.x的板級支持包(BSP)來配置時鐘。

以下介紹時鐘配置的方法主要分兩種:

1、以手動編寫代碼調用BSP中提供的驅動函數接口來進行時鐘配置。

2、采用時鐘工具來配置并生成相應的源碼文件。

時鐘樹

在進行時鐘配置之前,應充分了解對應芯片的時鐘樹結構,這樣在進行時鐘配置時才會游刃有余。對于系統時鐘頻率及路徑的配置我們需要關注時鐘源、倍頻及系統時鐘部分。類似如下圖:

圖1. 時鐘框圖
084b555c-5129-11ed-a3b6-dac502259ad0.png

可由圖中得到以下幾個關鍵信息

1) SCLKSEL:系統時鐘可以由HEXT、PLLCLK、HICK三大時鐘源提供。
2) HEXT:HEXT是外部高速時鐘,其可以外接范圍是4~25 MHz的晶振或時鐘源。
3) HICK:HICK RC是內部高速振蕩器,頻率為48MHz。HICK時鐘由內部振蕩器給出,但在初始情況下由HICKDIV控制并默認6分頻后為8MHz,亦可配置為不分頻,保持48MHz的頻率。
4) PLLCLK:PLL時鐘=PLL輸入時鐘*PLL倍頻系數。
5) PLL輸入時鐘:PLL的輸入時鐘由PLLRCS及PLLHEXTDIV共同決定,其細分可分為三個來源:HICK 4MHz、HEXT和HEXTDIV,HEXTDIV由HEXT分頻系數決定,默認為2分頻。

代碼配置解析

以下將以庫函數接口為核心來對時鐘配置流程和方法進行說明。

函數接口

各系列產品對應提供的BSP中對硬件的時鐘設置部分已封裝好接口函數以供調用,以下羅列出時鐘配置常用的函數接口,各函數的具體參數及返回值類型等請參考at32f403a_407_crm.c/.h文件。 08669470-5129-11ed-a3b6-dac502259ad0.png ? ?

時鐘配置流程

按常規應用來講解時鐘配置流程,其內容可大致分為如下步驟:

圖2. 時鐘配置流程圖
090fa542-5129-11ed-a3b6-dac502259ad0.png ? ?

復位(CRM Reset)

首先按規范流程應復位CRM配置參數,其主要是將系統時鐘切換到HICK,其余的系統時鐘配置寄存器寫入默認值,待后續進行新配置參數的寫入。函數調用的代碼實現如下:
09263e06-5129-11ed-a3b6-dac502259ad0.png ? ?
時鐘源配置(Clock Source Configuration

與系統時鐘相關的高速時鐘源主要包括HEXT和HICK,PLL也是使用以上時鐘源來進行倍頻。需要在配置使能PLL前將所使用的PLL參考時鐘源開啟并等待其穩定。

HEXT

外部高速時鐘如采用外接有源時鐘的方式時,可開啟旁路模式來進行使用,采用晶振時,不能開啟旁路模式,旁路模式應在外部高速時鐘源使能前進行設定,其默認情況為關閉。旁路模式使能代碼實現如下:
0943e9a6-5129-11ed-a3b6-dac502259ad0.png ?

使能HEXT時鐘源并等待HEXT時鐘穩定,代碼實現如下:

09596740-5129-11ed-a3b6-dac502259ad0.png

HEXT

內部高速時鐘是由芯片內部振蕩器提供,使能HICK時鐘源并等待HICK時鐘穩定,代碼實現如下:
09748f02-5129-11ed-a3b6-dac502259ad0.png ? ?
PLL配置(PLL Configuration

PLL配置主要包括:PLL時鐘源、PLL倍頻系數、PLL倍頻頻率范圍等的設置。倍頻時鐘公式為: PLLCLK=PLL輸入時鐘*PLL倍頻系數。

PLL時鐘源

PLL時鐘源細分有三個來源:1、HICK(4 MHz),2、HEXT,3、HEXT分頻時鐘,PLL時鐘源應在PLL配置使能前開啟并等待穩定。以上PLL時鐘源在crm_pll_config函數中對應的參數定義如下: 098712f8-5129-11ed-a3b6-dac502259ad0.png ?
當選擇PLL時鐘源為CRM_PLL_SOURCE_HEXT_DIV時,HEXT的分頻系數可以通過函數crm_hext_clock_div_set進行設置,其默認分頻系數為2分頻。

PLL倍頻系數

倍頻系數為2~64倍可選,但應該注意最高主頻限制,以此按實際情況來合適選擇倍頻系數,如8倍頻使用參數CRM_PLL_MULT_8。

PLL頻率范圍

頻率范圍主要以倍頻后的PLLCLK頻率來做設定,其范圍參數以72MHz為界限設定,如下:
0993b5ee-5129-11ed-a3b6-dac502259ad0.png ?
當PLL參數設置完成后,即可開啟PLL并等待PLL穩定。示例:外部時鐘晶振8MHz,采用HEXT2分頻時鐘作為PLL時鐘源,PLLCLK倍頻到240MHz的代碼實現如下: 09b3aee4-5129-11ed-a3b6-dac502259ad0.png ? ?
總線分頻(Set Bus Frequency Division)

總線分頻包含SCLK到AHBCLK分頻、AHBCLK到APB1CLK分頻、AHBCLK到APB2CLK分頻。AHB總線1分頻、APB1/APB2總線2分頻的代碼實現如下: 09e4f8e6-5129-11ed-a3b6-dac502259ad0.png ? ?
切換系統時鐘(Switch System Clock)

系統時鐘來源主要有三個:HICK、HEXT、PLLCLK。在切換系統時鐘到如上時鐘源時應提前確保對 應時鐘源已穩定。

順滑模式

時鐘順滑模式是為了確保整個系統時鐘切換過程的穩定而設計,當即將切換為系統時鐘的目標時鐘頻率大于108MHz時應開啟時鐘順滑模式,所以其主要應用對象為PLLCLK用作系統時鐘時的場景。通常使用方法是在系統時鐘切換前開始,切換成功后關閉。代碼實現如下:
0a00e59c-5129-11ed-a3b6-dac502259ad0.png

HICK系統時鐘

內部高速時鐘在系統復位重新運行時默認作為系統時鐘,后期代碼進行設定時,可有兩種頻率值來進行設定(8MHz和48MHz)。如圖1所述HICK默認情況下用的是8MHz,可配置為48 MHz。HICK 8MHz用作系統時鐘的代碼實現如下: 0a2d0d7a-5129-11ed-a3b6-dac502259ad0.png ?
HICK 48 MHz用作系統時鐘的代碼實現如下:
0a4635e8-5129-11ed-a3b6-dac502259ad0.png

HEXT系統時鐘

外部高速時鐘用作系統時鐘時,其系統時鐘頻率以實際使用的外部時鐘頻率為準,范圍為4~25MHz。HEXT用作系統時鐘的代碼實現如下: 0a669c5c-5129-11ed-a3b6-dac502259ad0.png

PLLCLK系統時鐘

PLLCLK用作系統時鐘時,其系統時鐘頻率以實際的PLL倍頻結果為準。其最高頻率應滿足芯片規格為基礎。PLLCLK用作系統時鐘的代碼實現如下: 0aaa0618-5129-11ed-a3b6-dac502259ad0.png

更新核心頻率(Update Core Frequency

提供的BSP中,其代碼框架內保留了一個表示系統核心頻率的參數值system_core_clock,其保存的是CPU核心的運行頻率值,應該在每次系統時鐘配置完成后來進行更新。為的是在整個代碼框架下,各外設驅動的頻率配置能很快獲取到當前核心運行頻率值并使用。代碼實現如下:
0acf0274-5129-11ed-a3b6-dac502259ad0.png

時鐘配置示例

以下將以完整的時鐘配置流程來進行說明,示例:由8MHz外部時鐘晶振作為時鐘源,其2分頻路徑經PLL倍頻到240MHz并用做系統時鐘,AHB不分頻,APB1/APB2采用2分頻。函數system_clock_config代碼實現如下: 0ae70180-5129-11ed-a3b6-dac502259ad0.png

時鐘工具

時鐘配置工具是雅特力科技為方便對AT32系列MCU進行時鐘配置而開發的一個圖形化配置工具,其主旨是使用戶清晰了解時鐘路徑和配置出期望的時鐘頻率并生成源碼文件。

環境要求

軟件要求

需要Windows7及以上操作系統支持。

安裝

軟件安裝

本軟件不需要安裝,只需直接運行可執行程序AT32_New_Clock_Configuration.exe。

功能介紹

本章節將介紹此工具的基本操作,其主要的啟動界面和配置界面如下所示

圖3. 啟動界面
0b14de70-5129-11ed-a3b6-dac502259ad0.png ?
圖4. 配置界面
0b34ccda-5129-11ed-a3b6-dac502259ad0.png ? ?

菜單欄

菜單欄內容如圖所示:

圖5. 菜單欄
0b64e582-5129-11ed-a3b6-dac502259ad0.png

“項目”(Project)菜單:

新建:新建時鐘配置項目 打開:打開已存在的配置項目 保存:保存已打開的配置項目

“語言”(Language)菜單:

English:選擇English作為顯示語言 簡體中文:選擇簡體中文作為顯示語言

“生成代碼”(General code)菜單:

當在對應型號的操作配置界面將所期望的時鐘路徑和時鐘頻率配置完成之后,可點擊“生成代碼”菜單來選擇源碼文件的存儲路徑并生成相應的源碼文件。

“幫助”(Help)菜單:

新版本下載:聯網進行新版本下載 版本:查看當前版本

新建配置項目

雙擊打開時鐘配置工具,可看到圖示的啟動界面,可點擊“項目”菜單-->“新建”,進行配置項目的新建,在新建配置項目的過程中需要對芯片的系列所屬進行選擇,操作方法如下圖所示

圖6. MCU選擇界面
0b7d37b8-5129-11ed-a3b6-dac502259ad0.png

MCU系列的選擇,可點擊下拉框來進行選擇,當選擇好MCU后點擊“確定”可進入到時鐘配置界面。

配置界面的使用

配置界面主要用來進行時鐘路徑及參數的配置,以下的介紹將以 AT32F403A 系列作為示例來展開進行,其余系列的配置方法與此類似。

整個配置界面主要可以分為四個大塊,如下圖所示

圖7. 配置界面框架
0bfee48e-5129-11ed-a3b6-dac502259ad0.png ?
1. 標題部分:用于展示當前配置項目所選擇的MCU系列。
2. 配置部分:用于對時鐘路徑和時鐘參數進行選擇和配置,以達到期望的應用需求。
3. 輸出部分:用于時鐘輸出(CLKOUT)的配置。
4. 在SCLK欄也可在選中PLL為系統時鐘時作為輸入框,可輸入期望的系統時鐘頻率來反向自動配置出倍頻參數。
5. 結果部分:用于顯示當前外設所使用的時鐘頻率及總線上的外設。
接下來就著重介紹一下配置部分的使用。配置部分的流程界面是對應著MCU時鐘樹來進行的,各系列MCU的此部分可能存在著差異,但使用方式大同小異。時鐘路徑的配置可按流程對各開關進行點選來進行選擇,配置部分如下圖所示,將逐個流程點的功能及其注意事項進行介紹。

圖8. 時鐘配置框

0c1ba06a-5129-11ed-a3b6-dac502259ad0.png ?
1. rtc使能:rtc時鐘代碼配置的使能下拉框。
2. rtcsel:點選框,rtc時鐘源選擇。當rtc使能開啟后,此點選框可配置。
3. lext bypass:外部低速時鐘的旁路使能。
4. hext:此為輸入框,8MHz為所采用外部時鐘源的默認頻率,用戶可根據實際使用的外部時鐘源頻率進行修改。(注:此8MHz被修改為其他頻率值時,對應的BSP中demo目錄下的inc/at32f403a_407_conf.h文件內的HEXT_VALUE宏定義也應該一致修改,也可以采用工具生成的at32f403a_407_conf.h文件來進行使用)。
5. hext bypass:高速外部時鐘的旁路使能。
6. hextdiv:下拉框,當HEXT的分頻路徑作為PLL時鐘源時,可配置輸入源HEXT的分頻系數。
7. pllhextdiv:點選框,當HEXT作為PLL時鐘源時,可配置輸入頻率為HEXT分頻或HEXT不分頻。
8. pllrcs:點選框,可配置PLL時鐘源為HEXT或HICK。
9. 倍頻系數:使用PLL_MULT參數進行倍頻,計算公式為:PLLCLK=PLL輸入時鐘*PLL_MU LT。為了用戶的使用方便,在選定PLL輸入時鐘源后,結果部分的sclk框中輸入目標時鐘并按下鍵盤“Enter”鍵,會自動計算一組倍頻參數以滿足用戶期望或相近的時鐘頻率。 10. sclk select:點選框,可配置HEXT、PLL或HICK作為系統時鐘。
11. sclk頻率:當采用正向配置時,此作為系統時鐘頻率的配置結果顯示,當將其用作輸入框時,輸入期望的頻率后點擊回車鍵,會根據此輸入值反向計算一組合適的或最接近期望值的PLL配置參數。
12. hick to sclk:點選框,當sclk select選擇HICK作為系統時鐘時,可配置HICK的8MHz或48MHz到系統時鐘(注:當選擇48 MHz HICK到系統時鐘后,CLKOUT輸出HICK時的頻率也為48MHz)。
13. usbdiv:下拉框。當PLL時鐘被選作為USB的時鐘來源時,此處配置PLL時鐘到USB時鐘的分頻系數。
14. hick to usb:點選框,可配置USB時鐘由PLL時鐘或HICK 48 MHz提供,USB時鐘配置代碼由下拉框to usb來進行選擇控制。因USB時鐘需要的是固定48MHz,所以在usbdiv可分頻參數為前提下,PLL倍頻出來的頻率可能不滿足USB 48 MHz的時鐘需求。
15. USB使能:USB時鐘代碼配置的使能下拉框。
16. USB時鐘頻率的顯示。此顯示欄會實時計算USB時鐘的頻率并顯示,如果配置出來的USB時鐘不等于48MHz時,顯示出來的USB時鐘頻率會標注為紅色,而實際應用中沒有用到USB時選擇disable則不會顯示。
(注:此部分只針對USB時鐘頻率的配置,USB外設時鐘使能需自行額外打開)

生成代碼

當時鐘配置完成后,可點擊生成代碼,然后選擇代碼生成的路徑并確認,最后會在所選目錄下生成兩個文件夾inc和src,源文件存放在src文件夾下,頭文件存放在inc文件夾下。這些文件可結合到BSP_V2.x.x內的工程來進行使用。可以采用新生成的時鐘代碼文件(at32f4xx_clock.c/at32f4xx_clock.h/ at32f4xx_conf.h)將原BSP demo中的對應文件替換,在main函數中進行system_clock_config函數調用即可。

注意事項

外部時鐘源(HEXT)修改

因本文檔所示例的demo和配置工具都默認采用的8MHz外部時鐘頻率,當實際硬件使用的外部時鐘源是非8MHz頻率時需注意以下幾點。

代碼修改

1、以實際的外部時鐘頻率按文中時鐘配置流程章節所描述的時鐘配置流程及方法來編寫相應的代碼,配置出期望的時鐘配置及時鐘路徑。

2、修改對應demo工程中at32f4xx_conf.h文件的HEXT_VALUE值,以實際使用的外部時鐘源頻率值來進行修改。如實際外部高速時鐘使用12.288MHz的晶振或時鐘源時,at32f4xx_conf.h文件應修改如下:
0c5f1d4a-5129-11ed-a3b6-dac502259ad0.png

工具修改

1、在時鐘配置工具中的HEXT輸入框內填入外部時鐘源實際頻率值并按“Enter”鍵確認。

2、配置好所需的時鐘路徑及時鐘頻率,生成代碼。采用新生成的時鐘代碼文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)將原BSP demo中的對應文件替換或取其中函數內容進行替換,在main函數中進行system_clock_config函數調用即可。

工具使用

在使用本時鐘配置工具時需注意:

1. 此工具生成的時鐘配置源碼文件需結合雅特力科技提供的BSP_V2.x.x進行使用。

2. 不同系列所生成的時鐘配置源碼文件不能型號混用,只能在相對應的工程項目中進行調用。 3. 配置工具中各輸入框參數修改后,請以“Enter”鍵結束。

案例 系統時鐘

功能簡介

在系統運行過程中來進行系統時鐘切換。

資源準備

1) 硬件環境 對應產品型號的AT-START BOARD 2) 軟件環境 projectat_start_f403aexamplescrmsysclk_switch

軟件設計

1) 配置流程

初始化按鍵。

配置clkout時鐘輸出pll 4分頻。

編寫從hick經pll倍頻64MHz到系統時鐘的配置代碼。

編寫從hext 2分頻經pll倍頻96MHz到系統時鐘的配置代碼。

2) 代碼介紹

main函數代碼描述
0c84860c-5129-11ed-a3b6-dac502259ad0.png ?

hick經pll倍頻64MHz到系統時鐘的代碼描述

0cb3fc70-5129-11ed-a3b6-dac502259ad0.png ?
hext 2分頻經pll倍頻96MHz到系統時鐘的代碼描述
0d07bf9a-5129-11ed-a3b6-dac502259ad0.png

實驗效果

上電運行led2以間隔100ms時間進行閃爍,clkout(PA8)輸出60MHz。

每次USER按鍵按下,系統時鐘在64MHz與96MHz之間進行交替切換,clkout輸出對應的4分頻頻率,led4 toggle一次。

案例 時鐘失效檢測

功能簡介

在當HEXT時鐘直接或間接作為系統時鐘時,當HEXT時鐘出現故障,且時鐘失效模塊偵測到失效后,時鐘失效事件將產生NMI中斷,在此中斷中可完成系統的營救操作。

資源準備

1) 硬件環境 對應產品型號的AT-START BOARD 2) 軟件環境 projectat_start_f403aexamplescrmclock_failure_detection

軟件設計

1) 配置流程

配置clkout時鐘輸出pll 4分頻。

開啟時鐘失效檢測,并完善void NMI_Handler(void)函數。

編寫從hick經pll倍頻240MHz到系統時鐘的配置代碼。

2) 代碼介紹

main函數代碼描述
0d25d4bc-5129-11ed-a3b6-dac502259ad0.png ?
hick經pll倍頻240MHz到系統時鐘的代碼描述
0d5567ea-5129-11ed-a3b6-dac502259ad0.png ?
NMI中斷實現
0da34c3a-5129-11ed-a3b6-dac502259ad0.png

實驗效果

在運行過程中將晶振拔掉或晶振腳接地,產生時鐘失效。通常來說hext比hick更穩定,可觀測clkout(PA8)的輸出,可發現時鐘拯救回來后hick作為源時的頻率上存在細微波動。

審核編輯:湯梓紅

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

    關注

    6

    文章

    774

    瀏覽量

    135045
  • 時鐘
    +關注

    關注

    10

    文章

    1720

    瀏覽量

    131360
  • AT32
    +關注

    關注

    1

    文章

    113

    瀏覽量

    2072

原文標題:AT32講堂033 | AT32F403A/407時鐘配置指南

文章出處:【微信號:AT32 MCU 雅特力科技,微信公眾號:AT32 MCU 雅特力科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AT32F403A如何使用DMA彈性映射?

    本帖最后由 貪玩 于 2022-2-21 19:00 編輯 發現AT32F403A的DMA有一個彈性映射的功能,搗鼓了一天,發現還挺好用的AT32F403A的DMA請求分成了固定映射和彈性映射
    發表于 11-25 19:18

    AT32F403A的相關資料下載

    最近MCU受限之后,逐步采用國產的MCU來替換,其中AT32F403A是評估考慮的替換MCU。其官網:https://www.arterytek.com/cn/index.jsp資料下載:https
    發表于 12-10 08:23

    利用AT32F403A驅動復用PSRAM的步驟有哪些呢

    AT32F403A驅動復用PSRAM實驗目的:最近使用AT32F403A做項目,需要外擴PSRAM用來存儲程序運行中間數據,所以記錄一下心路歷程。開干!實驗步驟: 硬件選型主控芯片:看題目就知道啦
    發表于 01-21 07:12

    怎么把AT32F403A芯片的串口配置成DMA接收呢

    在RT-Thread Studio上基于芯片創建的AT32F403A工程,在配置串口的時候發現DMA接收模式配置失敗,而配置成中斷接收就成功。 想知道怎么把串口
    發表于 08-29 11:52

    AT32F403A/407 ADC 使用指南(附pdf)

    AT32的各個型號的ADC稍有一些差別,因此各個型號分別有對應的ADC application note。這個帖子介紹AT32F403A/407的ADC,簡單列舉了一些403A/407
    發表于 09-13 20:10

    AT32F403A IO模擬I2C與從機通信

    AT32F403A IO模擬I2C與從機通信演示AT32F403A IO模擬I2C與從機通信。
    發表于 10-19 07:39

    AT32F413/AT32F415/AT32F403A/AT32F407引腳復用說明

    AT32F413/AT32F415/AT32F403A/AT32F407引腳復用說明AT32F413/AT32
    發表于 10-20 06:19

    AT32F403A & AT32F407入門使用指南

    AT32F403A & AT32F407入門使用指南旨在讓用戶快速使用AT32F403Axx /AT32F407xx 進行項目開發,
    發表于 10-24 06:43

    AT32F403A/407系列安全庫區的應用原理、軟件使用方法及范例程序

    AT32F403A/407 Security Library Application Note主要在闡述AT32F403A/407系列安全庫區的應用原理、軟件使用方法及范例程序。
    發表于 10-24 07:29

    AT32F403A/407時鐘配置

    AT32F403A/407時鐘配置主要介紹兩部分內容:1、基于雅特力提供的V2.x.x 的板級支持包來進行時鐘源碼的
    發表于 10-25 06:24

    AT32F403A/407 GPIO應用說明

    AT32F403A/407 GPIO Application NoteAT32F403A/407xx的通用功能I/O (GPIO)提供了一系列與外部環境通訊的接口,可用于MCU與其他嵌
    發表于 10-25 08:06

    AT32F403A/407 ADC使用指南

    AT32F403A/407 ADC使用指南本文主要以ADC 的特色功能進行講解和案列解析。
    發表于 10-25 06:31

    基于ARM32位的微控制器AT32F403A系列

    基于ARM32位的微控制器AT32F403A系列
    發表于 07-31 11:02 ?13次下載

    AT32講堂033 | AT32F403A/407時鐘配置指南

    簡介時鐘是芯片正確高效運行的基礎,正確的時鐘配置是芯片能正確運行的必要條件,其重要性不言而喻。AT32各系列產品的時鐘配置部分可能存在細微的
    的頭像 發表于 11-01 10:01 ?2356次閱讀
    AT32講堂033 | <b class='flag-5'>AT32F403A</b>/<b class='flag-5'>407</b><b class='flag-5'>時鐘</b><b class='flag-5'>配置</b><b class='flag-5'>指南</b>

    AT32F403A系列 數據手冊

    電子發燒友網站提供《AT32F403A系列 數據手冊.pdf》資料免費下載
    發表于 01-22 10:06 ?6次下載