最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

CW32L083系列MCU系統(tǒng)時(shí)鐘詳解

2022-10-25 13:48 作者:武漢芯源半導(dǎo)體  | 我要投稿

時(shí)鐘是單片機(jī)運(yùn)行的基礎(chǔ),是同步單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位。時(shí)鐘的速度取決于外部晶振或內(nèi)部RC振蕩電路。單片機(jī)擁有豐富的外設(shè),但實(shí)際使用的時(shí)候只會(huì)用到有限的外設(shè),且有的外設(shè)需要高速時(shí)鐘提升性能,有的外設(shè)需要低速時(shí)鐘降低功耗或提高抗干擾能力,因此單片機(jī)采用多種時(shí)鐘源來(lái)解決此問(wèn)題。

下面將詳細(xì)介紹如何配置CW32L083產(chǎn)品的系統(tǒng)時(shí)鐘。?

CW32L083一共有5個(gè)系統(tǒng)時(shí)鐘來(lái)源LSI,LSE,HSI,HSE,PLL;可以按照時(shí)鐘頻率分為高速時(shí)鐘源和低速時(shí)鐘源,也可根據(jù)來(lái)源分為內(nèi)部時(shí)鐘源和外部時(shí)鐘源。

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

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

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

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

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

鎖相環(huán)時(shí)鐘由HSE時(shí)鐘或HSI時(shí)鐘經(jīng)鎖相環(huán)PLL倍頻(2~12 倍)產(chǎn)生。

下圖為CW32L083的系統(tǒng)內(nèi)部時(shí)鐘樹(shù),由圖可以看到HSI時(shí)鐘是由內(nèi)部高速RC振蕩器HSIOSC經(jīng)過(guò)分頻后產(chǎn)生的,分頻系數(shù)是通過(guò)內(nèi)置高頻時(shí)鐘控制寄存器SYSCTRL_HSI的DIV位域進(jìn)行設(shè)置,有效分頻系數(shù)為1,2,4,6,8,10,12,14,16。系統(tǒng)時(shí)鐘SysClk可選的5個(gè)時(shí)鐘源如上文所示。

圖片
圖:CW32L083的系統(tǒng)內(nèi)部時(shí)鐘樹(shù)


SysClk分頻可以產(chǎn)生高級(jí)高性能總線時(shí)鐘HCLK,作為M0+內(nèi)核,SysTick,DMA,F(xiàn)LASH,CRC,GPIO等模塊的配置時(shí)鐘及工作時(shí)鐘,分頻系數(shù)是通過(guò)系統(tǒng)控制寄存器SYSCTRL_CR0的HCLKPRS位域設(shè)置,有效分頻系數(shù)為2^n(n = 0~7)。而外設(shè)時(shí)鐘PCLK,是由HCLK經(jīng)過(guò)分頻產(chǎn)生,通過(guò)配置系統(tǒng)控制器SYSCTRL_CR0的PCLKPRS位域設(shè)置,有效的分頻系數(shù)為2^n(n= 0~3),可作為GTIM,BTIM,ATIM等定時(shí)器以及SPI,I2C,UART等外設(shè)的配置時(shí)鐘和工作時(shí)鐘。CW32L083還有兩個(gè)低速時(shí)鐘源,RC10K的時(shí)鐘可作為獨(dú)立看門狗的計(jì)數(shù)時(shí)鐘以及GPIO端口中斷輸入信號(hào)的濾波時(shí)鐘使用,RC150K時(shí)鐘可以作為L(zhǎng)VD和VC數(shù)字濾波模塊的濾波時(shí)鐘以及GPIO端口中斷輸入信號(hào)的濾波時(shí)鐘使用。


CW32L083默認(rèn)系統(tǒng)時(shí)鐘為HSIOSC的6分頻,即8MHz時(shí)鐘,下面介紹時(shí)鐘配置方法,CW32L083有豐富的時(shí)鐘配置函數(shù),內(nèi)部FLASH存儲(chǔ)器支持最快24MHz頻率的操作時(shí)鐘,當(dāng)配置HCLK頻率大于24MHz時(shí),需要通過(guò)FLASH控制寄存器FLASH_CR2的WAIT位域來(lái)配置插入等待HCLK周期個(gè)數(shù)。大于24MHz,小于等于48MHz時(shí),需要插入2個(gè)等待周期;大于48MHz時(shí),需要插入3個(gè)等待周期。


1.HSI的時(shí)鐘配置

在HSI小于等于24MHz的時(shí)候,可以不用配置FLASH等待周期

RCC_HSI_Enable( RCC_HSIOSC_DIV2 );

//內(nèi)部高速時(shí)鐘2分頻SysClk=24MHz

RCC_HSI_Enable( RCC_HSIOSC_DIV6 );

//內(nèi)部高速時(shí)鐘6分頻SysClk=8MHz,當(dāng)HSI配置大于24MHz的時(shí)候,需要配置FLASH等待周期


__RCC_FLASH_CLK_ENABLE();??

//使能FLASH配置時(shí)鐘

FLASH_SetLatency(FLASH_Latency_2);??

//頻率大于24MHz,小于48MHz需要配置FlashWait=2??

RCC_HSI_Enable(RCC_HSIOSC_DIV1);

//內(nèi)部高速時(shí)鐘1分頻SysClk=48MHz


2.HSE的時(shí)鐘配置

RCC_HSE_Enable(RCC_HSE_MODE_OSC,16000000,RCC_HSE_DRIVER_NORMAL,RCC_HSE_FLT_CLOSE);

//開(kāi)啟HSE時(shí)鐘,HSE的頻率范圍為4MHz-32MHz

RCC_SysClk_Switch( RCC_SYSCLKSRC_HSE );

//切換系統(tǒng)時(shí)鐘為外部高速時(shí)鐘


3.LSI的時(shí)鐘配置

RCC_LSI_Enable();? ? ? ? ? ? ? ? ? ? ? ??

//開(kāi)啟內(nèi)部低速時(shí)鐘LSI

RCC_SysClk_Switch( RCC_SYSCLKSRC_LSI );??

//切換系統(tǒng)時(shí)鐘到LSI


4.LSE的時(shí)鐘配置

RCC_LSE_Enable(RCC_LSE_MODE_OSC,RCC_LSE_AMP_LARGER,RCC_LSE_DRIVER_LARGER);?

//開(kāi)啟外部低速時(shí)鐘LSE

RCC_SysClk_Switch( RCC_SYSCLKSRC_LSE );??

//切換系統(tǒng)時(shí)鐘到LSE


5.PLL的時(shí)鐘配置

CW32L083的PLL輸入可以是HSI和HSE,下面以HSE為例

RCC_HSE_Enable( RCC_HSE_MODE_OSC, 16000000, RCC_HSE_DRIVER_NORMAL, RCC_HSE_FLT_CLOSE );?

//開(kāi)啟外部高速時(shí)鐘HSE,頻率需要根據(jù)實(shí)際晶體頻率進(jìn)行填寫(xiě)


RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_FLASH,ENABLE);? ? ? ? RCC_PLL_Enable(RCC_PLLSOURCE_HSEOSC,16000000,RCC_PLL_MUL_2);? ? ?

//開(kāi)啟PLL,PLL輸入為HSE

FLASH_SetLatency(FLASH_Latency_2);? ? ? ?

//頻率大于24MHz,小于等于48MHz需要配置FlashWait=2

RCC_SysClk_Switch( RCC_SYSCLKSRC_PLL );? ?

//切換系統(tǒng)時(shí)鐘到PLL


上面所描述的是用庫(kù)函數(shù)來(lái)配置CW32L083的系統(tǒng)時(shí)鐘,接下來(lái)舉例用寄存器來(lái)配置64MHz的系統(tǒng)時(shí)鐘,思路是先將HSIOSC六分頻得到8MHz的HSI,然后通過(guò)PLL倍頻至64MHz。

配置完成之后,可以通過(guò)RCC_PLL_OUT(),看到輸出頻率。除了上述功能,CW32L083還可以通過(guò)配置GPIO口直接輸出時(shí)鐘端口,方便用戶進(jìn)行測(cè)試。

RCC_HCLK_OUT()? ? ? ? ? ? ? ? ?? ?//PA04輸出HCLK時(shí)鐘

RCC_PCLK_OUT()? ? ? ? ? ? ? ? ??? //PA03輸出PCLK時(shí)鐘

RCC_HSE_OUT()? ? ? ? ? ? ? ? ? ??? //PC15輸出HSE時(shí)鐘

RCC_HSI_OUT()? ? ? ? ? ? ? ? ? ? ? ?//PB00輸出HSI時(shí)鐘

RCC_LSE_OUT()? ? ? ? ? ? ? ? ? ?? ?//PB12輸出LSE時(shí)鐘

RCC_LSI_OUT()? ? ? ? ? ? ? ? ? ? ? ?//PD05輸出LSI時(shí)鐘

RCC_PLL_OUT()? ? ? ? ? ? ? ? ? ? ? //PC13輸出PLL時(shí)鐘


以上是CW32L083時(shí)鐘部分的介紹,CW32其他型號(hào)亦可參考此篇文檔。

CW32L083系列MCU系統(tǒng)時(shí)鐘詳解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
尤溪县| 新宁县| 长兴县| 陆良县| 铜山县| 上林县| 曲水县| 望城县| 肃南| 庄河市| 苏尼特右旗| 新津县| 合水县| 托里县| 赣州市| 新乡县| 如东县| 九龙城区| 府谷县| 沙坪坝区| 曲松县| 肇源县| 余姚市| 太谷县| 崇左市| 万源市| 洪泽县| 桃园县| 巧家县| 新河县| 宁阳县| 庄浪县| 兴和县| 甘孜县| 武功县| 莱西市| 洪洞县| 曲沃县| 疏勒县| 武汉市| 六盘水市|