色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

CW32L083系列MCU系統時鐘詳解

武漢芯源半導體有限公司 ? 2022-10-25 13:35 ? 次閱讀

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

下面將詳細介紹如何配置CW32L083產品的系統時鐘。

CW32L083一共有5個系統時鐘來源LSI,LSE,HSI,HSE,PLL;可以按照時鐘頻率分為高速時鐘源和低速時鐘源,也可根據來源分為內部時鐘源和外部時鐘源。

? 外部高速時鐘(HSE)

? 外部低速時鐘(LSE)

? 內部高速時鐘(HSI)

? 內部低速時鐘(LSI)

? 鎖相環時鐘(PLL)

鎖相環時鐘由HSE時鐘或HSI時鐘經鎖相環PLL倍頻(2~12 倍)產生。

下圖為CW32L083的系統內部時鐘樹,由圖可以看到HSI時鐘是由內部高速RC振蕩器HSIOSC經過分頻后產生的,分頻系數是通過內置高頻時鐘控制寄存器SYSCTRL_HSI的DIV位域進行設置,有效分頻系數為1,2,4,6,8,10,12,14,16。系統時鐘SysClk可選的5個時鐘源如上文所示。

pYYBAGNXc2WAf4_wAALvuqeU3XI888.jpg

圖:CW32L083的系統內部時鐘樹

SysClk分頻可以產生高級高性能總線時鐘HCLK,作為M0+內核,SysTick,DMA,FLASH,CRC,GPIO等模塊的配置時鐘及工作時鐘,分頻系數是通過系統控制寄存器SYSCTRL_CR0的HCLKPRS位域設置,有效分頻系數為2^n(n = 0~7)。而外設時鐘PCLK,是由HCLK經過分頻產生,通過配置系統控制器SYSCTRL_CR0的PCLKPRS位域設置,有效的分頻系數為2^n(n= 0~3),可作為GTIM,BTIM,ATIM等定時器以及SPI,I2CUART等外設的配置時鐘和工作時鐘。CW32L083還有兩個低速時鐘源,RC10K的時鐘可作為獨立看門狗的計數時鐘以及GPIO端口中斷輸入信號的濾波時鐘使用,RC150K時鐘可以作為LVD和VC數字濾波模塊的濾波時鐘以及GPIO端口中斷輸入信號的濾波時鐘使用。

CW32L083默認系統時鐘為HSIOSC的6分頻,即8MHz時鐘,下面介紹時鐘配置方法,CW32L083有豐富的時鐘配置函數,內部FLASH存儲器支持最快24MHz頻率的操作時鐘,當配置HCLK頻率大于24MHz時,需要通過FLASH控制寄存器FLASH_CR2的WAIT位域來配置插入等待HCLK周期個數。大于24MHz,小于等于48MHz時,需要插入2個等待周期;大于48MHz時,需要插入3個等待周期。


1.HSI的時鐘配置

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

RCC_HSI_Enable( RCC_HSIOSC_DIV2 );

//內部高速時鐘2分頻SysClk=24MHz

RCC_HSI_Enable( RCC_HSIOSC_DIV6 );

//內部高速時鐘6分頻SysClk=8MHz,當HSI配置大于24MHz的時候,需要配置FLASH等待周期

__RCC_FLASH_CLK_ENABLE();

//使能FLASH配置時鐘

FLASH_SetLatency(FLASH_Latency_2);

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

RCC_HSI_Enable(RCC_HSIOSC_DIV1);

//內部高速時鐘1分頻SysClk=48MHz

2.HSE的時鐘配置

RCC_HSE_Enable(RCC_HSE_MODE_OSC,16000000,RCC_HSE_DRIVER_NORMAL,RCC_HSE_FLT_CLOSE);

//開啟HSE時鐘,HSE的頻率范圍為4MHz-32MHz

RCC_SysClk_Switch( RCC_SYSCLKSRC_HSE );

//切換系統時鐘為外部高速時鐘

3.LSI的時鐘配置

RCC_LSI_Enable();

//開啟內部低速時鐘LSI

RCC_SysClk_Switch( RCC_SYSCLKSRC_LSI );

//切換系統時鐘到LSI

4.LSE的時鐘配置

RCC_LSE_Enable(RCC_LSE_MODE_OSC,RCC_LSE_AMP_LARGER,RCC_LSE_DRIVER_LARGER);

//開啟外部低速時鐘LSE

RCC_SysClk_Switch( RCC_SYSCLKSRC_LSE );

//切換系統時鐘到LSE

5.PLL的時鐘配置

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

RCC_HSE_Enable( RCC_HSE_MODE_OSC, 16000000, RCC_HSE_DRIVER_NORMAL, RCC_HSE_FLT_CLOSE );

//開啟外部高速時鐘HSE,頻率需要根據實際晶體頻率進行填寫

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

//開啟PLL,PLL輸入為HSE

FLASH_SetLatency(FLASH_Latency_2);

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

RCC_SysClk_Switch( RCC_SYSCLKSRC_PLL );

//切換系統時鐘到PLL

上面所描述的是用庫函數來配置CW32L083的系統時鐘,接下來舉例用寄存器來配置64MHz的系統時鐘,思路是先將HSIOSC六分頻得到8MHz的HSI,然后通過PLL倍頻至64MHz。


//開啟HSI時鐘
CW_SYSCTRL->HSI=(5HSI&SYSCTRL_HSI_STABLE_Msk)!=SYSCTRL_HSI_STABLE_Msk) 
//Wait stable
 {
        ;
 }

//設置PLL參數
    CW_SYSCTRL->PLL = (RCC_PLL_WAITCYCLE_16384 | \
      ((uint32_t)(0x07 << SYSCTRL_PLL_FREQOUT_Pos)) | \
      ((uint32_t)(0x08 << SYSCTRL_PLL_MUL_Pos)) | \
      ((uint32_t)(0x01 << SYSCTRL_PLL_FREQIN_Pos)) | \
      ((uint32_t)(0x03 << SYSCTRL_PLL_SOURCE_Pos)));

// SYSCTRL_PLL_FREQOUT_Pos是PLL輸出時鐘頻率范圍配置因為是輸出64MHz,需要設置為1xx
// SYSCTRL_PLL_MUL_Pos是PLL倍頻系數配置位域,因為本例需倍頻8倍,設置為0x08
// SYSCTRL_PLL_FREQIN_Pos是PLL輸入時鐘頻率范圍配置,本例HSI經分頻之后為8MHz,設置為01
// SYSCTRL_PLL_SOURCE_Pos是PLL輸入時鐘來源選擇,HSI時鐘,設置為11


//使能PLL
    CW_SYSCTRL->CR1 |= SYSCTRL_BYPASS | SYSCTRL_CR1_PLLEN_Msk;    
//Enable PLL

//等待PLL時鐘穩定


   while((CW_SYSCTRL->PLL&SYSCTRL_PLL_STABLE_Msk)!=SYSCTRL_PLL_STABLE_Msk)
    {
        ;
    }

    CW_SYSCTRL->AHBEN_f.FLASH = 1;
    CW_FLASH->CR2 = 0x5A5A0000 | ((uint32_t)0x00000002);
//頻率為64MHz,配置3個等待周期。

//轉換時鐘 
CW_SYSCTRL->CR0 = ((((CW_SYSCTRL->CR0 & (~SYSCTRL_BYPASS_MASK)) | SYSCTRL_BYPASS) & (~SYSCTRL_CR0_SYSCLK_Msk)) | ((0x00000002U)));

    RCC_SystemCoreClockUpdate(RCC_Sysctrl_GetHClkFreq());

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

RCC_HCLK_OUT() //PA04輸出HCLK時鐘

RCC_PCLK_OUT() //PA03輸出PCLK時鐘

RCC_HSE_OUT() //PC15輸出HSE時鐘

RCC_HSI_OUT() //PB00輸出HSI時鐘

RCC_LSE_OUT() //PB12輸出LSE時鐘

RCC_LSI_OUT() //PD05輸出LSI時鐘

RCC_PLL_OUT() //PC13輸出PLL時鐘

以上是CW32L083時鐘部分的介紹,CW32其他型號亦可參考此篇文檔。

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

    關注

    48

    文章

    7641

    瀏覽量

    151823
  • 單片機
    +關注

    關注

    6041

    文章

    44615

    瀏覽量

    637368
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17301

    瀏覽量

    352137
  • 時鐘
    +關注

    關注

    11

    文章

    1745

    瀏覽量

    131664
收藏 人收藏

    評論

    相關推薦

    STM32L151VCT6 STM32L083RZT6 IC MCU 32BIT 32位微控制器 LQFP

    STM32L151VCT6 微控制器采用Cortex-M3內核和頻率32 MHz的CPU時鐘,擴展了超低功耗的理念,并且不會降低性能。除了動態運行和低功耗運行模式以外,該系列器件還提供另外2種超低
    發表于 01-04 16:17

    方案介紹|CW32L010安全低功耗MCU:驅動高速風筒新力量

    芯源半導體CW32L010系列MCU可支持低成本、高性能、低功耗、高度集成的高速風筒方案,以滿足市場對高效、安全、智能的高速風筒需求。 本文將介紹武漢芯源半導體CW32L010
    發表于 12-10 09:57

    CW32L010 Mini Board 測評】簡介、點燈

    Board 是基于 CW32L010F8U6 的 QFN 封裝設計的最小系統核心板,產品規格與 CW32L010 芯片規格一致。便于客戶靈活快速的評估芯片性能和產應用。 1.0mm的板厚、單面元器件
    發表于 11-17 06:39

    CW32L010學習筆記

    記錄CW32L010學習過程
    的頭像 發表于 11-15 17:40 ?2112次閱讀
    <b class='flag-5'>CW32L</b>010學習筆記

    CW32L010 新品初體驗

    ,本次體驗的核心板為CW32L010的TSSOP20pin的封裝版本,它集成了完整的最小系統,所有輸入輸出接口(GPIO口)均已引出,便于用戶進行各類開發與測試。核心板上不僅設有SWD下載接口,還配備了LED指示燈PB0口,通過Type-CUSB接口即可實現便捷供電,為用
    的頭像 發表于 11-14 17:45 ?415次閱讀
    <b class='flag-5'>CW32L</b>010 新品初體驗

    CW32L0100核心板的使用體驗

    最近我們迎來了CW32L010新品的正式發布,標志著嵌入式技術領域的又一次創新突破。今日,我們有幸進行該新品的首次使用體驗,以一塊L010核心板為例,體驗一下這顆芯片。
    的頭像 發表于 10-30 15:29 ?296次閱讀
    <b class='flag-5'>CW32L</b>0100核心板的使用體驗

    CW32L010安全低功耗MCU,樹立M0+產品行業新標桿!

    2024年9月26日,武漢芯源半導體CW32L010系列產品正式官方發布。這款產品以其卓越的產品性能,迅速在業界引起了廣泛關注,并成功樹立M0+產品行業的新標桿。CW32L010系列
    的頭像 發表于 10-09 10:12 ?639次閱讀
    <b class='flag-5'>CW32L</b>010安全低功耗<b class='flag-5'>MCU</b>,樹立M0+產品行業新標桿!

    CW32L010安全低功耗MCU,樹立M0+產品行業新標桿!

    尤為重要,這一指標考驗的是MCU內置RC時鐘源的技術特性。CW32L010的內置時鐘源,不論是HSI還是LSI,都大幅優于競品。 CW32L
    發表于 10-09 10:08

    MSPM0 L 系列 MCU硬件開發指南

    電子發燒友網站提供《MSPM0 L 系列 MCU硬件開發指南.pdf》資料免費下載
    發表于 09-09 10:36 ?0次下載
    MSPM0 <b class='flag-5'>L</b> <b class='flag-5'>系列</b> <b class='flag-5'>MCU</b>硬件開發指南

    MSPM0 L系列MCU硬件開發指南

    電子發燒友網站提供《MSPM0 L系列MCU硬件開發指南.pdf》資料免費下載
    發表于 09-07 11:12 ?2次下載
    MSPM0 <b class='flag-5'>L</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>硬件開發指南

    MSPM0 L系列MCU功耗優化指南

    電子發燒友網站提供《MSPM0 L系列MCU功耗優化指南.pdf》資料免費下載
    發表于 09-02 11:36 ?1次下載
    MSPM0 <b class='flag-5'>L</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>功耗優化指南

    請問STM32L083的唯一ID為什么有重復啊?

    ID的讀取代碼如下: for(i=0; i<3; i++) {//STM32L083 ID CODE STM32L083_ID[i] = *(uint32_t
    發表于 04-17 06:29

    CW-DAPLINK調試工具

    CW-DAPLINK是武漢芯源半導體有限公司專為CW32系列MCU的在線調試和編程工具而設計的。 它通過SWD接口和應用單板的MCU進行在線
    的頭像 發表于 04-09 17:16 ?824次閱讀
    <b class='flag-5'>CW</b>-DAPLINK調試工具

    STM32L0系列沒有VBAT,如果使用RTC,系統斷電怎么保證RTC時鐘繼續運行?

    STM32L0系列,沒有VBAT,如果使用RTC,系統斷電怎么保證RTC時鐘繼續運行
    發表于 03-29 07:56

    AURIX系列MCU多核系統時鐘有關系嗎?

    AURIX系列MCU多核系統時鐘有關系嗎?2.如何系統的理解GTM的時鐘結構(以前用的ST的片
    發表于 02-05 06:10
    主站蜘蛛池模板: 亚洲伊人久久大香线蕉综合图片| 小小水蜜桃3视频在线观看| 韩国g奶空姐| 国产成人无码一区AV在线观看 | 亚洲欧美偷拍视频一区| seyeye高清视频在线| 我把寡妇日出水好爽| 最近中文字幕2019国语4| 国际老妇高清在线观看| 情欲.美女高潮| 91综合久久久久婷婷| 精品国产成人系列| 午夜福利体验免费体验区| tobu中国日本高清| 看全色黄大色大片免费久黄久| 亚洲精品一区国产欧美| 动漫美女喷水| 欧美特级特黄AAAAA片| 最好看中文字幕国语| 久久精品免费观看久久| 亚洲欧美精品一中文字幕| 国产成人免费视频| 善良的小峓子2在钱免费中文字| AV亚洲精品少妇毛片无码| 久久久久久久久人体| 艳照门在线播放| 黄小说免费看| 亚洲中文字幕AV在天堂| 国产亚洲精品久久孕妇呦呦你懂| 四虎影视国产精品亚洲精品| 办公室丝袜老师在线观看| 欧美久久无码AV麻豆| jjzz大全| 日本十八禁无遮拦啪啪漫画| bt天堂午夜国产精品| 欧美亚洲日本日韩在线| 菠萝蜜国际一区麻豆| 日日摸夜夜添无码AVA片| 国产成人无码免费精品果冻传媒| 特级毛片AAAAAA| 国产亚洲精品久久久久久入口|