在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

中科芯CKS32K148 MCU SCG時鐘工作頻率范圍和寄存器設(shè)置

中科芯MCU ? 來源:中科芯MCU ? 2024-12-09 14:55 ? 次閱讀

MCU微課堂

CKS32K148 SCG(二)

第四十九期 2024.12.6

六、SCG時鐘工作頻率范圍

接第四十五期的SCG介紹,下文對SCG時鐘工作頻率范圍、寄存器設(shè)置等進行詳細闡述。

在不同的工作模式下,系統(tǒng)對于不同的內(nèi)部時鐘存在安全工作頻率范圍的限制,以保證系統(tǒng)的正常工作。下表為SCG內(nèi)部時鐘在不同工作模式下的安全工作頻率范圍匯總。

表1 SCG內(nèi)部時鐘安全工作頻率

09014c28-b3b4-11ef-93f3-92fbcf53809c.png

七、SCG寄存器配置

在前文中,已經(jīng)對SCG時鐘進行了整體介紹,下面以RUN模式下配置SPLL為系統(tǒng)時鐘源為例,對時鐘配置的具體方法進行講解。

0948fc12-b3b4-11ef-93f3-92fbcf53809c.png

圖5 SYSCLK生成流程

在RUN模式下選擇SPLL作為系統(tǒng)時鐘源時,應(yīng)對SPLL時鐘進行相關(guān)使能操作,同時應(yīng)保證SPLL的輸出信號頻率在正常工作頻率90~160MHz范圍內(nèi)。在對SPLL的配置中,有兩個較為重要的寄存器,分別是SCG_SPLLCSR和SCG_SPLLCFG。

0974e156-b3b4-11ef-93f3-92fbcf53809c.png

圖6 SCG_SPLLCSR寄存器

在SCG_SPLLCSR寄存器中,我們應(yīng)重點關(guān)注如下幾位:

099d58ac-b3b4-11ef-93f3-92fbcf53809c.png

圖7 SPLL系統(tǒng)時鐘選擇與有效位

09b142a4-b3b4-11ef-93f3-92fbcf53809c.png

圖8 SPLL時鐘使能位

09d2be66-b3b4-11ef-93f3-92fbcf53809c.png

圖9 SCG_SPLLCFG寄存器

在SCG_SPLLCFG寄存器中,我們應(yīng)關(guān)注如下兩位:

0a026684-b3b4-11ef-93f3-92fbcf53809c.png

圖10 SPLL倍頻系數(shù)位

0a0cb6a2-b3b4-11ef-93f3-92fbcf53809c.png

圖11 SPLL分頻系數(shù)位

可知,SPLL對參考時鐘信號能夠進行16~47倍頻和最大8分頻。

由于SPLL以SOSC作為參考時鐘源,還應(yīng)在寄存器SCG_SOSCCSR中對SOSC時鐘使能。

0a2897be-b3b4-11ef-93f3-92fbcf53809c.png

圖12 SCG_SOSCCSR寄存器

SCG_SOSCCSR寄存器中,SOSC時鐘使能的相關(guān)位如下:

0a601752-b3b4-11ef-93f3-92fbcf53809c.png

圖13 SOSC時鐘有效位

0a76edba-b3b4-11ef-93f3-92fbcf53809c.png

圖14 SOSC時鐘使能位

在完成上述時鐘配置后,在寄存器SCG_RCCR中配置RUN模式下的系統(tǒng)時鐘源。

0a85950e-b3b4-11ef-93f3-92fbcf53809c.png

圖15 SCG_RCCR寄存器

0a9e35a0-b3b4-11ef-93f3-92fbcf53809c.png

圖16 系統(tǒng)時鐘源選擇位

除SPLL時鐘外,還應(yīng)保證生成的內(nèi)部時鐘SYS_CLK、BUS_CLK和FLASH_CLK工作在安全頻率范圍內(nèi)。下圖為系統(tǒng)時鐘源信號(紫色)生成內(nèi)部時鐘信號的流程圖。

0acfee7e-b3b4-11ef-93f3-92fbcf53809c.png

圖17 內(nèi)部時鐘生成流程

生成的內(nèi)部時鐘信號頻率由寄存器SCG_RCCR中如下相關(guān)位調(diào)控:

0af8afc6-b3b4-11ef-93f3-92fbcf53809c.png

圖18 內(nèi)核時鐘分頻位

0b193d86-b3b4-11ef-93f3-92fbcf53809c.png

圖19 總線時鐘分頻位

0b430d96-b3b4-11ef-93f3-92fbcf53809c.png

圖20 FLASH時鐘分頻位

八、SCG結(jié)構(gòu)體初始化

在標準庫中,所有時鐘的初始化均可通過CLOCK_DRV_Init()實現(xiàn):

CLOCK_DRV_Init(&clockMan1_InitConfig0);

其中使用的參數(shù)結(jié)構(gòu)體指針clockMan1_InitConfig0,其結(jié)構(gòu)體類型為clock_manager_user_config_t,結(jié)構(gòu)體定義如下:

typedef struct

{

scg_config_t scgConfig; /*!< SCG Clock configuration. ?????*/

sim_clock_config_t simConfig; /*!< SIM Clock configuration. ?????*/

pcc_config_t pccConfig; /*!< PCC Clock configuration. ?????*/

pmc_config_t pmcConfig; /*!< PMC Clock configuration. ?????*/

} clock_manager_user_config_t;

需要注意的是,由于SCG相關(guān)時鐘的配置僅需在第一個成員結(jié)構(gòu)體scgConfig中進行,對于其余的成員結(jié)構(gòu)體的使用本文中將不進行介紹。

SCG的初始化結(jié)構(gòu)體類型為scg_config_t,下面是相關(guān)結(jié)構(gòu)體的定義:

typedef struct

{

scg_sirc_config_t sircConfig; /*!< Slow internal reference clock configuration.*/

scg_firc_config_t fircConfig; /*!< Fast internal reference clock configuration. */

scg_sosc_config_t soscConfig; /*!< System oscillator configuration. ???????*/

scg_spll_config_t spllConfig; /*!< System Phase locked loop configuration. ?*/

scg_rtc_config_t rtcConfig; /*!< Real Time Clock configuration. ????????*/

scg_clockout_config_t clockOutConfig; /*!< SCG ClockOut Configuration. ??????????*/

scg_clock_mode_config_t clockModeConfig; /*!< SCG Clock Mode Configuration. ???????*/

} scg_config_t;

在本文中,我們需要使用上述結(jié)構(gòu)體中的成員結(jié)構(gòu)體soscConfig、spllConfig以及clockModeConfig完成對內(nèi)部時鐘輸出的配置。

對于SOSC時鐘,初始化結(jié)構(gòu)體類型為scg_sosc_config_t,結(jié)構(gòu)體定義如下:

typedef struct

{

uint32_t freq; /*!< System OSC frequency. ?*/

scg_sosc_monitor_mode_t monitorMode; /*!< System OSC Clock monitor mode. ?*/

scg_sosc_ext_ref_t extRef; /*!< System OSC External Reference Select.*/

scg_sosc_gain_t gain; /*!< System OSC high-gain operation. */

scg_sosc_range_t range; /*!< System OSC frequency range. ?*/

scg_async_clock_div_t div1; /*!< Asynchronous peripheral source. ?*/

scg_async_clock_div_t div2; /*!< Asynchronous peripheral source. ?*/

bool enableInStop; /*!< System OSC is enable or not in stop mode. */

bool enableInLowPower; /*!< System OSC is enable or not in low power mode.*/

bool locked; /*!< System OSC Control Register can be written. */

bool initialize; /*!< Initialize or not the System OSC module.*/

} scg_sosc_config_t;

該結(jié)構(gòu)體中共有11個成員變量,我們僅需配置其中的第1、4、5和11號變量即可完成對SOSC時鐘的使能,其功能分別如下:

變量一freq:應(yīng)配置為當前SOSC使用的時鐘源頻率。

變量四gain:用于控制晶振操作的功耗模式,可選高增益或低增益。

變量五range:用于為OSC選擇頻率范圍,作為SPLL的時鐘源,本文中SOSC只能選擇高頻率范圍。

變量十一initialize:用于對SOSC時鐘進行使能,決定了時鐘是否有效。

對于SPLL時鐘,初始化結(jié)構(gòu)體類型為scg_spll_config_t,結(jié)構(gòu)體定義如下:

typedef struct

{

scg_spll_monitor_mode_t monitorMode; /*!< Clock monitor mode selected. ?*/

uint8_t prediv; /*!< PLL reference clock divider. ?*/

uint8_t mult; /*!< System PLL multiplier. ?*/

uint8_t src; /*!< System PLL source. ?*/

scg_async_clock_div_t div1; /*!< Asynchronous peripheral source.*/

scg_async_clock_div_t div2; /*!< Asynchronous peripheral source.*/

bool enableInStop; /*!< System PLL clock is enable or not in stop mode. */

bool locked; /*!< System PLL Control Register can be written. */

bool initialize; /*!< Initialize or not the System PLL module. */

} scg_spll_config_t;

該結(jié)構(gòu)體中共有9個成員變量,我們需配置其中的第2、3、4和9號變量以完成對SPLL時鐘的使能以及輸出頻率調(diào)控,其功能分別如下:

變量二prediv:用于配置SPLL參考時鐘頻率的分頻系數(shù)。

變量三mult:用于配置SPLL參考時鐘頻率的乘法因子。

變量四src:用于配置SPLL的輸入時鐘源,在本文中僅能選擇參考時鐘SOSC作為時鐘源。

變量九initialize:用于對SPLL時鐘進行使能,決定了時鐘是否有效。

對于RUN模式下的內(nèi)部時鐘配置,初始化結(jié)構(gòu)體類型為scg_system_clock_config_t,結(jié)構(gòu)體定義如下:

typedef struct

{

scg_system_clock_div_t divSlow; /*!< Slow clock divider. */

scg_system_clock_div_t divBus; /*!< BUS clock divider.*/

scg_system_clock_div_t divCore; /*!< Core clock divider. */

scg_system_clock_src_t src; /*!< System clock source. */

} scg_system_clock_config_t;

該結(jié)構(gòu)體中共有4個成員變量,其功能分別如下:

變量一divSlow:用于控制FLASH時鐘分頻比。

變量二divBus:用于控制總線時鐘分頻比。

變量三divCore:用于控制內(nèi)核時鐘分頻比。

變量四src:用于在運行模式下,選擇產(chǎn)生系統(tǒng)時鐘的時鐘源。

九、時鐘配置代碼

依據(jù)前文中對寄存器與SCG時鐘結(jié)構(gòu)體的基本介紹,即可在函數(shù)CLOCK_DRV_Init()中對系統(tǒng)時鐘進行相關(guān)配置。本文以SPLL為時鐘源,配置輸出56MHz的SYSCLK、28MHz的BUSCLK以及14MHz的FLASHCLK。相關(guān)結(jié)構(gòu)體代碼如下:

clock_manager_user_config_t clockMan1_InitConfig0 =

{

.scgConfig =

{

.soscConfig =

{

.initialize = true,

.freq = 8000000U, /* System Oscillator frequency: 8MHz */

.extRef = SCG_SOSC_REF_OSC, /* Internal oscillator of OSC requested. */

.range = SCG_SOSC_RANGE_HIGH, /* High frequency range selected for the crystal oscillator of 8 MHz to 40 MHz. */

},

.spllConfig =

{

.initialize = true,

.prediv = (uint8_t)SCG_SPLL_CLOCK_PREDIV_BY_1,/* Divided by 1 */

.mult = (uint8_t)SCG_SPLL_CLOCK_MULTIPLY_BY_28,/* Multiply Factor is 28*/

.src = 0U,/*Clock Source SOSC*/

},

.clockModeConfig =

{

.initialize = true,

.rccrConfig =

{

.src = SCG_SYSTEM_CLOCK_SRC_SYS_PLL,/* System PLL */

.divCore = SCG_SYSTEM_CLOCK_DIV_BY_2,/* Core Clock Divider: divided by 2 */

.divBus = SCG_SYSTEM_CLOCK_DIV_BY_2,/* Bus Clock Divider: divided by 2 */

.divSlow = SCG_SYSTEM_CLOCK_DIV_BY_4,/* Slow Clock Divider: divided by 4 */

},

}

}

};

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

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351186
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120348
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

    131479

原文標題:MCU微課堂|CKS32K148 SCG(二)

文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MCU微課堂|CKS32F4xx系列產(chǎn)品時鐘配置

    作為MCU運行的基礎(chǔ),時鐘是單片機各個模塊工作時序的最小時間單位,推動單片機的各指令執(zhí)行,是MCU選型的一個重要指標。CKS32F4xx系列
    發(fā)表于 12-12 10:17 ?843次閱讀

    請問FS32K148HAT0MLQR 的 SCG_SIRCDIV[2:0]中有什么東西嗎?

    FS32K148HAT0MLQR 的 SCG_SIRCDIV[2:0]中有什么東西嗎?
    發(fā)表于 03-28 08:15

    Si443x-寄存器設(shè)置

    Si443x-寄存器設(shè)置
    發(fā)表于 03-30 17:10 ?4次下載

    STM32 BSRR BRR ODR寄存器詳情解析

    BSRR 和 BRR 都是 STM32 系列 MCU 中 GPIO 的寄存器。 BSRR 稱為端口位設(shè)置/清楚寄存器,BRR稱為端口位**寄存器
    發(fā)表于 11-13 09:54 ?1.2w次閱讀

    AD轉(zhuǎn)換寄存器設(shè)置

    AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置
    發(fā)表于 11-10 17:36 ?16次下載
    AD轉(zhuǎn)換<b class='flag-5'>寄存器</b><b class='flag-5'>設(shè)置</b>

    C語言訪問MCU寄存器

    C語言訪問MCU寄存器問題由來://下面這行代碼的意思是直接操作0X020C4068這個寄存器//具體寄存器的作用是通過手冊得到的#define CCM_CCGR0 *((volati
    發(fā)表于 10-25 13:21 ?3次下載
    C語言訪問<b class='flag-5'>MCU</b><b class='flag-5'>寄存器</b>

    STM32學習筆記(2)——寄存器

    。計算機領(lǐng)域,包括通用寄存器、專用寄存器和控制寄存器。寄存器擁有非常高的讀寫速度,所以在寄存器之間的數(shù)據(jù)傳送非常快。我們一般控制其中的控制
    發(fā)表于 12-08 17:36 ?18次下載
    STM32學習筆記(2)——<b class='flag-5'>寄存器</b>

    中科推出面向CKS32位MCU的編程調(diào)試工具

    隨著中科MCU在市場上越來越多的被應(yīng)用,為了更好的支持客戶在使用中科32位MCU芯片時的仿真
    的頭像 發(fā)表于 12-26 15:21 ?2227次閱讀

    16位寄存器數(shù)據(jù)范圍 32位寄存器數(shù)據(jù)范圍 數(shù)據(jù)寄存器多少位怎么算

    在單片機編程中,32 位寄存器常用于存儲較大的整數(shù)或用于進行計數(shù)、計時等操作。需要注意的是,有些單片機的寄存器可能會在數(shù)據(jù)范圍上有所不同,具體使用時需要查看相關(guān)單片機的技術(shù)手冊或數(shù)據(jù)手冊。
    發(fā)表于 03-31 18:00 ?1.1w次閱讀

    如何改變spi的時鐘頻率

    ,選擇合適的分頻。 2. 配置寄存器:根據(jù)所選的時鐘源和分頻,配置SPI控制寄存器中的位。有些MCU
    的頭像 發(fā)表于 06-03 16:36 ?3640次閱讀

    中科CKS32F103RBT6在智能家居系統(tǒng)中的應(yīng)用

    中科CKS32F103RBT6在智能家居系統(tǒng)中的應(yīng)用
    的頭像 發(fā)表于 10-30 18:23 ?631次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS</b>32F103RBT6在智能家居系統(tǒng)中的應(yīng)用

    中科CKS32F103CBT6在無人機飛控系統(tǒng)中的應(yīng)用

    中科CKS32F103CBT6在無人機飛控系統(tǒng)中的應(yīng)用
    的頭像 發(fā)表于 09-28 16:05 ?1616次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS</b>32F103CBT6在無人機飛控系統(tǒng)中的應(yīng)用

    中科與IAR共建生態(tài)合作,IAR集成開發(fā)環(huán)境全面支持CKS32系列MCU

    IAR Embedded Workbench集成開發(fā)環(huán)境一直是全球眾多開發(fā)者首選的嵌入式軟件開發(fā)解決方案之一。這一強大的工具套件已全面支持中科CKS32系列MCU,為開發(fā)者提供了無與
    的頭像 發(fā)表于 10-18 16:00 ?650次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b>與IAR共建生態(tài)合作,IAR集成開發(fā)環(huán)境全面支持<b class='flag-5'>CKS</b>32系列<b class='flag-5'>MCU</b>

    中科與IAR共建生態(tài)合作,IAR集成開發(fā)環(huán)境全面支持CKS32系列MCU

    來源:IAR 嵌入式開發(fā)軟件和服務(wù)的全球領(lǐng)導者IAR近日宣布,與中科集成電路有限公司(以下簡稱中科)達成生態(tài)合作,IAR已全面支持CKS
    的頭像 發(fā)表于 10-20 10:30 ?538次閱讀

    CPSR寄存器和APSR寄存器的組成

    程序狀態(tài)寄存器的作用就是反映處理的狀態(tài)信息。在程序運行期間我們可以通過查看程序狀態(tài)寄存器的狀態(tài)位來進行程序的分支跳轉(zhuǎn)處理,或者我們可以設(shè)置程序狀態(tài)
    的頭像 發(fā)表于 10-20 11:38 ?4629次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成
    主站蜘蛛池模板: 天天色天天色| 网站四虎1515hhcom| 中文字幕一区二区在线观看| 亚洲电影在线| 爱综合网| 被cao到合不拢腿腐男男| 在线看你懂| 精品啪啪| 国产香蕉在线精彩视频| 亚洲综合久久久久久888| 日韩欧免费一区二区三区| brazzers720欧美丰满| 免费一级特黄3大片视频| 老师叫我下面含着精子去上课| 男人和女人做免费做爽爽视频| 天堂网www天堂在线网| 久久99热久久精品| 精品综合久久久久久98| 国产黄色一级网站| 五月婷婷激情综合| 一级一黄在线观看视频免费| 最新亚洲情黄在线网站| 欧美日韩无| 久草丁香| 特级片毛片| 五月天天| 中国业余老太性视频| 国产精品李雅在线观看| sss华人在线play| 亚洲29p| 成年人网站在线| 国产狂喷冒白浆免费视频| 婷婷色综合网| 毛片在线看免费版| 香蕉视频在线观看国产| 哪个网站可以看av| 国产成人小视频| 亚洲免费不卡| 黄色精品视频| 狼色网| 四虎亚洲国产成人久久精品|