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

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

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

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

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

中科芯MCU ? 來(lái)源:中科芯MCU ? 2024-12-09 14:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MCU微課堂

CKS32K148 SCG(二)

第四十九期 2024.12.6

六、SCG時(shí)鐘工作頻率范圍

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

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

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

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

七、SCG寄存器配置

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

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

圖5 SYSCLK生成流程

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

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

圖6 SCG_SPLLCSR寄存器

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

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

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

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

圖8 SPLL時(shí)鐘使能位

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對(duì)參考時(shí)鐘信號(hào)能夠進(jìn)行16~47倍頻和最大8分頻。

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

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

圖12 SCG_SOSCCSR寄存器

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

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

圖13 SOSC時(shí)鐘有效位

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

圖14 SOSC時(shí)鐘使能位

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

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

圖15 SCG_RCCR寄存器

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

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

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

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

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

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

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

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

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

圖19 總線時(shí)鐘分頻位

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

圖20 FLASH時(shí)鐘分頻位

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

在標(biāo)準(zhǔn)庫(kù)中,所有時(shí)鐘的初始化均可通過(guò)CLOCK_DRV_Init()實(shí)現(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)時(shí)鐘的配置僅需在第一個(gè)成員結(jié)構(gòu)體scgConfig中進(jìn)行,對(duì)于其余的成員結(jié)構(gòu)體的使用本文中將不進(jìn)行介紹。

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完成對(duì)內(nèi)部時(shí)鐘輸出的配置。

對(duì)于SOSC時(shí)鐘,初始化結(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個(gè)成員變量,我們僅需配置其中的第1、4、5和11號(hào)變量即可完成對(duì)SOSC時(shí)鐘的使能,其功能分別如下:

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

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

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

變量十一initialize:用于對(duì)SOSC時(shí)鐘進(jìn)行使能,決定了時(shí)鐘是否有效。

對(duì)于SPLL時(shí)鐘,初始化結(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個(gè)成員變量,我們需配置其中的第2、3、4和9號(hào)變量以完成對(duì)SPLL時(shí)鐘的使能以及輸出頻率調(diào)控,其功能分別如下:

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

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

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

變量九initialize:用于對(duì)SPLL時(shí)鐘進(jìn)行使能,決定了時(shí)鐘是否有效。

對(duì)于RUN模式下的內(nèi)部時(shí)鐘配置,初始化結(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個(gè)成員變量,其功能分別如下:

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

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

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

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

九、時(shí)鐘配置代碼

依據(jù)前文中對(duì)寄存器與SCG時(shí)鐘結(jié)構(gòu)體的基本介紹,即可在函數(shù)CLOCK_DRV_Init()中對(duì)系統(tǒng)時(shí)鐘進(jìn)行相關(guān)配置。本文以SPLL為時(shí)鐘源,配置輸出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)容及配圖由入駐作者撰寫(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17918

    瀏覽量

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

    關(guān)注

    31

    文章

    5430

    瀏覽量

    123961
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1891

    瀏覽量

    133023

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    中科CKS32K148系列MCU的PDB模塊解析

    PDB(可編程延遲模塊)提供從觸發(fā)源到ADC的硬件觸發(fā)輸入的可控延遲,觸發(fā)源來(lái)自內(nèi)部、外部觸發(fā)或可編程間隔時(shí)鐘。PDB可以選擇性的提供脈沖輸出,脈沖輸出可用作CMP(比較)中的采
    的頭像 發(fā)表于 03-25 16:19 ?933次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32K148</b>系列<b class='flag-5'>MCU</b>的PDB模塊解析

    中科CKS32F030K6T6 高性能32位RISC內(nèi)核MCU 程序兼容STM32F030K6T6

    CKS32F030xx 系列采用高性能的 ARM Cortex ? -M0 的 32 位 RISC 內(nèi)核,工作于 48MHz 時(shí)鐘頻率,高速的嵌入式閃存(FLASH 最高可達(dá) 64
    發(fā)表于 03-05 16:23

    請(qǐng)問(wèn)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語(yǔ)言訪問(wèn)MCU寄存器

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

    STM32學(xué)習(xí)筆記(2)——寄存器

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

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

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

    如何改變spi的時(shí)鐘頻率

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

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

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

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

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

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

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

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

    程序狀態(tài)寄存器的作用就是反映處理的狀態(tài)信息。在程序運(yùn)行期間我們可以通過(guò)查看程序狀態(tài)寄存器的狀態(tài)位來(lái)進(jìn)行程序的分支跳轉(zhuǎn)處理,或者我們可以設(shè)置程序狀態(tài)
    的頭像 發(fā)表于 10-20 11:38 ?5758次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成
    主站蜘蛛池模板: 曰韩高清一级毛片 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 亚洲一区二区三区免费看 | 天天摸天天操天天干 | 成人网男女啪啪免费网站 | 免费黄色国产视频 | 在线视频这里只有精品 | 天堂免费视频 | 婷婷激情五月 | 黑人边吃奶边扎下面激情视频 | 日日夜夜操操 | 婷婷九月丁香 | 欧美午夜视频在线观看 | 日韩免费| 性欧美xxxx视频 | 久久久久九九精品影院 | 日韩一卡 二卡 三卡 四卡 免费视频 | 亚洲丰满熟妇毛片在线播放 | 久久98精品久久久久久婷婷 | 羞羞色院91精品网站 | 天天怕夜夜怕狠狠怕 | 美女性色 | 黄 色 成 年人在线 黄a大片 | 中文天堂在线最新版在线www | 色多多www网站 | 全部免费特黄特色大片农村 | 在线观看黄日本高清视频 | 91精品国产免费久久久久久青草 | 亚洲精品在线视频观看 | 三级五月天 | 91在线网址| 亚洲高清视频一区 | 超h高h文污肉 | 欧美福利视频网 | 欧美成人午夜视频 | 久久精品国产99国产精品免费看 | 中文字幕 视频一区 | www黄色大片| 欧美性猛交xxxx乱大交 | αv天堂 | 欧美一区二区三区不卡免费观看 |