吴忠躺衫网络科技有限公司

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

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

3天內不再提示

CW32 低功耗模式的特性介紹

武漢芯源半導體有限公司 ? 2022-12-30 10:53 ? 次閱讀

CW32系列芯片支持3種工作模式,運行模式、休眠模式以及深度休眠模式,本文以CW32L083為例介紹低功耗模式的特性。MCU上電以后,系統自動進入運行模式,可以通過軟件配置,進入休眠或者深度休眠兩種低功耗模式,進入低功耗運行狀態后,可以通過外設中斷觸發喚醒機制,使得系統返回到運行模式,三種工作模式的轉換機制如下圖所示:

poYBAGOuTwSAKUO3AAA1NDr3uj0735.jpg

三種模式下CPU時鐘及外設狀態:

? 運行模式(Active mode)

運行模式下 CPU 正常運行,所有模塊用戶均可正常使用。

? 休眠模式(Sleep mode)

休眠模式下,CPU 停止運行,所有外設不受影響,所有I/O引腳保持狀態不變。

? 深度休眠模式(DeepSleep mode)

深度休眠模式下,CPU停止運行,高速時鐘(HSE、HSIOSC)自動關閉,低速時鐘(LSE、 LSI、RC10K、RC150K)保持原狀態不變。深度休眠模式的功耗遠小于休眠模式。

CW32L083可以使用等待中斷專用指令,WFI(Wait for Interrupt),配合系統控制寄存器(SCR, System Control Register)的SLEEPONEXIT和SLEEPDEEP位域,可實現立即進入或退出(中斷服務程序)時進入休眠模式或深度休眠模式。

? 立即進入

執行WFI指令,MCU將立即進入休眠模式(SLEEPDEEP為0時)或深度休眠模式(SLEEPDEEP為1時)

? 退出時進入

將SLEEPONEXIT位置1,當退出最低優先級的中斷服務程序后,MCU會進入休眠模式(SLEEPDEEP為0時)或深度休眠模式(SLEEPDEEP為 1時),而不需執行WFI指令 。

pYYBAGOuUiKADJYpAAC0GU7OciQ366.png

注:在深度休眠模式下,系統將自動關閉高速時鐘,如果需要在深度休眠模式下使部分外設仍保持運行,則需要在進入深度休眠模式前,啟動相應的低速時鐘并將該外設時鐘設置為此低速時鐘。

在休眠模式或深度休眠模式下,均可通過中斷來喚醒CPU,返回到運行模式。如果用戶在中斷服務程序中執行WFI命令進入休眠(包括深度休眠),則需要比此中斷更高優先級的中斷才能喚醒CPU,因此,強烈建議在準備進入休眠前,應先處理完所有中斷服務程序,并且清除所有中斷請求和中斷標志,以下是配置進入低功耗模式時所需注意的事項。

?建議在進入低功耗模式前加一段時間的延遲,以免出現上電就進入低功耗模式,無法燒錄程序。

?系統可以配置從Deepsleep喚醒后,系統時鐘來源是HSI還是進入休眠前的時鐘。

?系統進入低功耗模式,端口狀態不會發生改變,此時需要客戶根據實際應用來配置端口狀態來達到理想的功耗值,未用端口建議配置為模擬模式。

?其他的RTC等低功耗運行模塊因在深度休眠下高速時鐘停止運行,所以如果需要在深度休眠模式下運行RTC等模塊,需配置模塊時鐘源為LSI或LSE。

根據上述內容,可以配置CW32L083的低功耗應用的例程,具體的代碼可以查看CW32L083的固件庫中PWR_CurrentConsumption這一例程,配置PA04和PA05為引腳輸入,并開啟下降沿中斷,在中斷服務函數改變gKeyStatus的值,從而使得MCU在main中進入低功耗休眠模式。


volatile uint8_t gKeyStatus; 
volatile uint32_t gFlagWakeUpIrq = 0; 
int main(void)
{
    RCC_HSI_Enable( RCC_HSIOSC_DIV6); //配置系統時鐘為HSI 8M
    InitTick(8000000ul); //初始化SysTick
    LED_Init();        //LED初始化
    BSP_PB_Init(); //按鍵初始化
    while (1)
    {
       gKeyStatus = 0;//在沒有進入低功耗模式前,PC03每間隔1s翻轉一次狀態
       do
       {
     PC03_TOG();        //翻轉LED1
       SysTickDelay(1000);  //延遲1s.
       } while (gKeyStatus == 0);      
       PC03_SETLOW();        //PC03置低
       DeepSleepModeTest();   //進入深度睡眠模式
     }
}

//按鍵初始化,設置PA05沿下降沿觸發中斷
void BSP_PB_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};
    //打開GPIOA時鐘
    REGBITS_SET(CW_SYSCTRL->AHBEN, SYSCTRL_AHBEN_GPIOA_Msk);
    GPIO_InitStructure.Pins = GPIO_PIN_5;
    GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
    GPIO_InitStructure.IT = GPIO_IT_FALLING;
    GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
    GPIO_ConfigFilter(CW_GPIOA, GPIO_PIN_5, GPIO_FLTCLK_RC10K);
    //設置GPIOA的中斷等級為3
    NVIC_SetPriority(GPIOA_IRQn, 0x03);
    GPIOA_INTFLAG_CLR(GPIOx_ICR_PIN5_Msk );
    NVIC_EnableIRQ(GPIOA_IRQn);
}

//LED I/O初始化
void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};
    //打開GPIO時鐘
    REGBITS_SET(CW_SYSCTRL->AHBEN, SYSCTRL_AHBEN_GPIOC_Msk);
    GPIO_InitStructure.Pins = GPIO_PIN_2 | GPIO_PIN_3;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_Init(CW_GPIOC, &GPIO_InitStructure);
    PC03_SETLOW();
}

void DeepSleepModeTest(void)
{
  GPIO_InitTypeDef GPIO_InitStructure = { 0 };
  PWR_InitTypeDef PWR_InitStructure = { 0 };

  //打開GPIO時鐘
  REGBITS_SET(CW_SYSCTRL->AHBEN,SYSCTRL_AHBEN_GPIOA_Msk|\
  SYSCTRL_AHBEN_GPIOB_Msk | \
  SYSCTRL_AHBEN_GPIOC_Msk | SYSCTRL_AHBEN_GPIOF_Msk);

  GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;
  GPIO_InitStructure.IT = GPIO_IT_NONE;
  GPIO_InitStructure.Pins = GPIO_PIN_All;
  GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
  GPIO_Init(CW_GPIOB, &GPIO_InitStructure);
  GPIO_Init(CW_GPIOC, &GPIO_InitStructure);
  GPIO_Init(CW_GPIOF, &GPIO_InitStructure);
  //關閉GPIO時鐘
  REGBITS_CLR(CW_SYSCTRL->AHBEN,SYSCTRL_AHBEN_GPIOA_Msk| \
  SYSCTRL_AHBEN_GPIOB_Msk | \
  SYSCTRL_AHBEN_GPIOC_Msk | SYSCTRL_AHBEN_GPIOF_Msk);
  BSP_PB_Init();            //按鍵初始化
  // 喚醒后自動使用內部高速時鐘(HSI)
  RCC_WAKEUPCLK_Config(RCC_SYSCTRL_WAKEUPCLKEN);
  PWR_InitStructure.PWR_Sevonpend = PWR_Sevonpend_Disable;
  PWR_InitStructure.PWR_SleepDeep = PWR_SleepDeep_Enable;
  PWR_InitStructure.PWR_SleepOnExit = PWR_SleepOnExit_Disable;
  PWR_Config(&PWR_InitStructure);
  PWR_GotoLpmMode();
  SYSCLKConfig_DeepSleep();
  LED_Init();
  SysTickDelay(200);
  PC02_SETHIGH();
  }
}
//GPIOA中斷服務函數
void GPIOA_IRQHandler(void)
{
 if(REGBITS_GET(CW_GPIOA->ISR, GPIOx_ISR_PIN5_Msk) > 0)
    {
        gKeyStatus = 1;
        GPIOA_INTFLAG_CLR(GPIOx_ICR_PIN5_Msk);//清除CW_GPIO中斷標志
    }

}

上述代碼可以看到在未進入低功耗模式之前,LED1每1s翻轉一次,通過按鍵KEY2進入低功耗模式后,LED1燈滅,當再次按下KEY2后,重新回到正常的運行模式,LED1每一秒翻轉一次。通過測量可以得到,進入到低功耗模式之后,功耗顯著降低。


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

    關注

    6043

    文章

    44621

    瀏覽量

    638583
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17324

    瀏覽量

    352655
  • 微控制
    +關注

    關注

    1

    文章

    51

    瀏覽量

    14525
  • 32位MCU
    +關注

    關注

    8

    文章

    193

    瀏覽量

    66804
收藏 人收藏

    評論

    相關推薦

    如何實現EEPROM的低功耗模式

    內容進行擦除和重寫。在許多應用中,尤其是在電池供電的設備中,低功耗模式對于延長設備的使用壽命至關重要。以下是實現EEPROM低功耗模式的一些方法: 1. 選擇合適的EEPROM類型 選
    的頭像 發表于 12-16 16:54 ?401次閱讀

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

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

    武漢芯源半導體CW32芯片重慶地區線下技術交流會成功舉辦

    2024年10月19日,武漢芯源半導體授權CW32生態社區主辦的“CW32芯片-重慶地區技術交流會”在重慶市科技工作者眾創之家成功舉辦。此次交流會匯聚重慶地區的嵌入式開發工程師和電子信息類企業代表,共同探討CW32芯片在儀器儀表
    的頭像 發表于 10-24 10:55 ?562次閱讀

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

    PWM 定時器。 CW32L010 可以在 -40℃到 85℃的溫度范圍內工作,供電電壓寬達 1.62V ~ 5.5V。支持 Sleep 和 DeepSleep兩種低功耗工作模式CW
    發表于 10-09 10:08

    低功耗8位單片機:技術特性與應用前景!

    分享低功耗8位單片機的技術特性、應用場景及其未來發展前景。 低功耗8位單片機的技術特性: 1. 低功耗設計
    發表于 09-26 14:09

    SD NAND SPI模式:如何實現低功耗運行

    最近,收到客戶反饋,使用我們SD NAND過程中,使用SPI模式,對SD完成操作后,SD沒有進入低功耗模式,未對SD進行任何操作的情況下測得的功耗仍在20mA左右。經過我們分析,發現S
    的頭像 發表于 09-02 11:06 ?557次閱讀
    SD NAND SPI<b class='flag-5'>模式</b>:如何實現<b class='flag-5'>低功耗</b>運行

    基于CW32直流電機PID學習套件介紹

    調速、正反轉 電機驅動型號:TB6612 OLED型號:0.96寸_I2C_OLED 產品概述 CW32F030芯片在低功耗應用領域中脫穎而出,其采用前沿的低功耗架構與尖端技術,尤其適宜長時間運作的電池
    的頭像 發表于 07-15 16:03 ?530次閱讀
    基于<b class='flag-5'>CW32</b>直流電機PID學習套件<b class='flag-5'>介紹</b>

    【項目展示】基于CW32的遙控循跡小車

    CW32循跡小車.zip_免費高速下載|百度網盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件模塊由CW32F030C8T6小藍板、智能小車控制底板、BT04-E
    的頭像 發表于 05-31 17:33 ?1416次閱讀
    【項目展示】基于<b class='flag-5'>CW32</b>的遙控循跡小車

    基于CW32的有刷直流電機控制實驗三:直流電機閉環位置和速度控制實驗

    DAP-Link插入電腦后未識別到芯片,則將中間兩根線的接線對換。 程序下載 將 DAP-Link 與電腦相連后檢查是否識別到CW32: 如圖就是已經識別到CW32,可以開始下載程序。 閉環速度位置說明 程序
    的頭像 發表于 05-31 17:01 ?657次閱讀
    基于<b class='flag-5'>CW32</b>的有刷直流電機控制實驗三:直流電機閉環位置和速度控制實驗

    產教融合,校企合作——武漢芯源半導體首個CW32嵌入式創新實驗室順利揭牌!

    2024年4月24日上午,武漢芯源半導體有限公司與上海科學技術職業學院共同舉辦的“CW32嵌入式創新實驗室揭牌儀式”在上海科學技術職業學院第二會議室隆重舉行。活動現場,武漢芯源半導體與上海
    的頭像 發表于 05-06 13:42 ?481次閱讀
    產教融合,校企合作——武漢芯源半導體首個<b class='flag-5'>CW32</b>嵌入式創新實驗室順利揭牌!

    OTP低功耗語音芯片的工作原理與產品特性

    OTP低功耗語音芯片的工作原理:在于其獨特的電路設計以及先進的制程技術。該芯片采用了先進的低功耗設計策略,包括低漏電晶體管、動態電壓調整以及智能休眠模式等,確保在保持高性能的同時實現低功耗
    的頭像 發表于 04-30 08:06 ?709次閱讀
    OTP<b class='flag-5'>低功耗</b>語音芯片的工作原理與產品<b class='flag-5'>特性</b>

    CW32量產燒錄工具

    本節主要介紹CW32微控制器的燒錄器CW-Writer,以及與之配合的軟件CW-Programmer的使用方法。燒錄器CW-Writer通過
    的頭像 發表于 04-25 15:22 ?1503次閱讀
    <b class='flag-5'>CW32</b>量產燒錄工具

    CW32快速開發入門

    CW32快速開發入門
    的頭像 發表于 04-24 18:56 ?2135次閱讀
    <b class='flag-5'>CW32</b>快速開發入門

    基于CW32的無刷直流空心杯電機無感方波控制驅動方案

    1. 方案概述 本方案采用CW32F030C8T6作為主控芯片,采用無感方波控制算法控制無刷直流空心杯電機。CW32F030C8T6是一款高性能、低功耗的32位微控制器,具有豐富的片上外設資源,可以
    的頭像 發表于 04-24 15:38 ?2189次閱讀
    基于<b class='flag-5'>CW32</b>的無刷直流空心杯電機無感方波控制驅動方案

    CW-DAPLINK調試工具

    CW-DAPLINK是武漢芯源半導體有限公司專為CW32系列MCU的在線調試和編程工具而設計的。 它通過SWD接口和應用單板的MCU進行在線通信。通過CW-DAPLINK的全速USB接口,CW
    的頭像 發表于 04-09 17:16 ?856次閱讀
    <b class='flag-5'>CW</b>-DAPLINK調試工具
    宝龙国际娱乐城| 大发888安装包| 帝王百家乐的玩法技巧和规则| 全讯网334466| 利德赌博| 百家乐官网如何视频| 金沙城百家乐官网大赛规则| 百家乐官网五湖四海娱乐场| 百家乐投注规则| 博彩网百家乐全讯网| 大发888明星婚讯| 百家乐官网规则技法| 百家乐官网秘| 真人百家乐官网网络游戏信誉怎么样 | 现金百家乐官网信誉| 阴宅24山水口吉凶断| 手机百家乐的玩法技巧和规则 | 做生意适合摆放龙龟吗| 君怡百家乐的玩法技巧和规则 | 百家乐打法心得| 现金网注册| 百家乐官网太阳城球讯网| 新加坡百家乐官网的玩法技巧和规则 | 乐博娱乐城| 百家乐官网路纸下| 百家乐赌场游戏平台| 百利宫娱乐城信誉| 网络百家乐官网棋牌| 迪威百家乐娱乐| 澳门百家乐怎么下载| 肯博百家乐官网现金网| 百家乐开户送十元| 大发888 大发888| 澳门百家乐官网海星王| 国美百家乐官网的玩法技巧和规则 | 百家乐网站赌博| 娱乐城开户送钱| 南京百家乐官网赌博现场被 | 枞阳县| 做生意看风水| 大发888娱乐场东南网|