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

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

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

CW32L083不同主頻功耗測試

武漢芯源半導(dǎo)體有限公司 ? 2023-06-27 16:21 ? 次閱讀

本文主要介紹CWL083VCT6芯片在不同主頻下的功耗測試方法和測試結(jié)果。

1.HSIOSC時(shí)鐘

HSIOSC 時(shí)鐘由內(nèi)部 RC 振蕩器產(chǎn)生,不需要外部電路,比 HSE 時(shí)鐘的成本低,啟動(dòng)速度快。HSIOSC 時(shí)鐘頻率固定為 48MHz,頻率精度低于 HSE 時(shí)鐘。RC 振蕩器輸出時(shí)鐘的頻率受芯片加工過程、工作電壓、環(huán)境溫度等因素影響,CW32L083 提供了 HSIOSC 時(shí)鐘頻率校準(zhǔn)功能,用戶可通過設(shè)置內(nèi)置高頻時(shí)鐘控制寄存器 SYSCTRL_HSI 的 TRIM 位域值來校準(zhǔn) HSIOSC 時(shí)鐘頻率,HSIOSC 內(nèi)部高速 RC 振蕩器在芯片上電后,默認(rèn)處于開啟狀態(tài),用戶可通過設(shè)置系統(tǒng)控制寄存器的 SYSCTRL_CR1 的HSIEN 位域?yàn)?0 來關(guān)閉。如用戶停止并重新啟動(dòng)了 HSIOSC 振蕩器,可通過內(nèi)置高頻時(shí)鐘控制寄存器 SYSCTRL_HSI的 STABLE 標(biāo)志位來確定 HSI 時(shí)鐘是否穩(wěn)定,STABLE 標(biāo)志為 1 表示 HSIOSC 時(shí)鐘已穩(wěn)定,為 0 則表示 HSIOSC 時(shí)鐘還未穩(wěn)定。

HSIOSC 時(shí)鐘經(jīng)過分頻后輸出 HSI 時(shí)鐘,分頻系數(shù)通過內(nèi)置高頻時(shí)鐘控制寄存器 SYSCTRL_HSI 的 DIV 位域設(shè)置,有效分頻系數(shù)為 1、2、4、6、8、10、12、14、16,上電后默認(rèn)值為 6,所以 HSI 時(shí)鐘默認(rèn)頻率為 8MHz。

2.PLL時(shí)鐘

CW32L083 內(nèi)部集成鎖相環(huán) PLL 電路,可對(duì)輸入時(shí)鐘源進(jìn)行鎖相倍頻輸出 PLL 時(shí)鐘。用戶可通過內(nèi)置鎖相環(huán)控制寄存器 SYSCTRL_PLL 的 SOURCE 位域選擇 PLL 的輸入?yún)⒖紩r(shí)鐘源,如下表所示

wKgZomSamriAfoefAABl3Su7Xt0703.jpg

鎖相環(huán)倍頻系數(shù)通過內(nèi)置鎖相環(huán)控制寄存器 SYSCTRL_PLL 的 MUL 位域進(jìn)行設(shè)置,可設(shè)置范圍為 2 ~ 12,默認(rèn)值 為 8。為保證鎖相環(huán)的鎖定收斂速度及輸出時(shí)鐘相噪性能,用戶需根據(jù)實(shí)際的輸入?yún)⒖紩r(shí)鐘頻率和輸出時(shí)鐘頻率分別設(shè)置 SYSCTRL_PLL.FREQIN 和 SYSCTRL_PLL.FREQOUT 位域的值。

wKgaomSamtuAGZuAAAA6htKqPWc347.jpg

wKgZomSamuOAVcteAABj5hQ9PuQ045.jpg

PLL 默認(rèn)處于關(guān)閉狀態(tài),通過設(shè)置系統(tǒng)控制寄存器 SYSCTRL_CR1 的 PLLEN 位域?yàn)?1 來啟動(dòng)。PLL 啟動(dòng)后,芯片 內(nèi)部時(shí)鐘監(jiān)控模塊檢測到一定數(shù)量的 PLL 時(shí)鐘信號(hào),則認(rèn)為 PLL 時(shí)鐘已穩(wěn)定。檢測時(shí)鐘數(shù)量可通過內(nèi)置鎖相環(huán)控制寄存器 SYSCTRL_PLL 的 WAITCYCLE 位域進(jìn)行設(shè)置,通過內(nèi)置鎖相環(huán)控制寄存器 SYSCTRL_PLL 的 STABLE 標(biāo)志位,可確定 PLL 時(shí)鐘是否穩(wěn)定,STABLE 標(biāo)志為 1 表 示 PLL 時(shí)鐘已穩(wěn)定,為 0 則表示 PLL 時(shí)鐘還未穩(wěn)定。

修改 PLL 參數(shù)流程如下:

步驟 1:設(shè)置 SYSCTRL_CR1.PLLEN 為 0,關(guān)閉 PLL;

步驟 2:等待 SYSCTRL_PLL.STABLE 標(biāo)志被系統(tǒng)硬件清零;

步驟 3:更改 PLL 的參數(shù);

步驟 4:設(shè)置 SYSCTRL_CR1.PLLEN 為 1,啟動(dòng) PLL;

步驟 5:等待 SYSCTRL_PLL.STABLE 標(biāo)志被系統(tǒng)硬件置 1,標(biāo)識(shí) PLL 時(shí)鐘已穩(wěn)定。

3.實(shí)例演示

通過按鍵KEY1中斷調(diào)節(jié)運(yùn)行主頻(4M/12M/24M/48M/64M),LCD顯示對(duì)應(yīng)數(shù)字。

(1)初始化GPIO

void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.IT = GPIO_IT_FALLING; //KEY1 -- PA04 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pins = GPIO_PIN_4; GPIO_Init(CW_GPIOA, &GPIO_InitStruct); GPIO_ConfigFilter(CW_GPIOA, bv4, GPIO_FLTCLK_LSI); }

(2)GPIO中斷控制函數(shù)

void GPIOA_IRQHandlerCallback(void) { if(CW_GPIOA->ISR_f.PIN4) { GPIOA_INTFLAG_CLR(bv4); Key1Count++; switch(Key1Count) { case 1: CW_LCD->RAM0 = 0x0603;//4 RCC_HSI_Enable(RCC_HSIOSC_DIV12); RCC_SysClk_Switch(RCC_SYSCLKSRC_HSI); //切換系統(tǒng)時(shí)鐘到HSI 4MHz RCC_PLL_Disable(); //關(guān)閉PLL break; case 2: CW_LCD->RAM0 = 0x030e0005;//12 RCC_HSI_Enable(RCC_HSIOSC_DIV4); break; case 3: CW_LCD->RAM0 = 0x0603030e;//24 RCC_HSI_Enable(RCC_HSIOSC_DIV2); break; case 4: CW_LCD->RAM0 = 0x0f0f0603;//48 RCC_HSI_Enable(RCC_HSIOSC_DIV6); RCC_SysClk_Switch(RCC_SYSCLKSRC_HSI); //切換系統(tǒng)時(shí)鐘到HSI 8MHz RCC_PLL_Disable(); //關(guān)閉PLL FLASH_SetLatency(FLASH_Latency_2); //頻率大于24M需要配置FlashWait=2 CW_SYSCTRL->AHBEN_f.FLASH = 0; //關(guān)閉FLASH時(shí)鐘 RCC_HSI_Enable(RCC_HSIOSC_DIV1); RCC_SysClk_Switch(RCC_SYSCLKSRC_HSI); //切換系統(tǒng)時(shí)鐘到HSI 48MHz break; case 5: CW_LCD->RAM0 = 0x0603050f;//64 RCC_HSI_Enable(RCC_HSIOSC_DIV6); RCC_PLL_Enable(RCC_PLLSOURCE_HSI, 8000000, RCC_PLL_MUL_8); //開啟PLL,PLL源為HSI 8MHz FLASH_SetLatency(FLASH_Latency_3); //頻率大于48M需要配置FlashWait=3 CW_SYSCTRL->AHBEN_f.FLASH = 0; //關(guān)閉FLASH時(shí)鐘 RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL); //切換系統(tǒng)時(shí)鐘到PLL break; case 6: CW_LCD->RAM0 = 0; CW_LCD->RAM1 = 0; CW_LCD->RAM8 = 0; CW_LCD->RAM9 = 0; Key1Count = 0; break; } } }

(3)初始化LCD

void LCD_Configuration(void) { LCD_InitTypeDef LCD_InitStruct = {0}; LCD_InitStruct.LCD_Bias = LCD_Bias_1_3; LCD_InitStruct.LCD_ClockSource = LCD_CLOCK_SOURCE_LSI; LCD_InitStruct.LCD_Duty = LCD_Duty_1_4; LCD_InitStruct.LCD_ScanFreq = LCD_SCAN_FREQ_256HZ; LCD_InitStruct.LCD_VoltageSource = LCD_VoltageSource_Internal; __RCC_LCD_CLK_ENABLE(); RCC_LSI_Enable(); //啟動(dòng)LSI為LCD提供時(shí)鐘 LCD_Init(&LCD_InitStruct); //基本配置 LCD_COMConfig(LCD_COM0 | LCD_COM1 | LCD_COM2 | LCD_COM3, ENABLE); //SEG LCD_SEG0to23Config(LCD_SEG0 | LCD_SEG1 | LCD_SEG2 | LCD_SEG3 | LCD_SEG4 | LCD_SEG5 | LCD_SEG6 | LCD_SEG7, ENABLE); LCD_SEG32to55Config(LCD_SEG32 | LCD_SEG33 | LCD_SEG34 | LCD_SEG35 | LCD_SEG36 | LCD_SEG37 | LCD_SEG38 | LCD_SEG39, ENABLE); LCD_ContrastConfig(LCD_Contrast_Level_2); //顯示對(duì)比度,僅內(nèi)部電阻模式時(shí)有效 LCD_DriveVoltageConfig(LCD_INRS_LEVEL_0); //功耗最小 CW_LCD->RAM0 = 0x0f0f; LCD_Cmd(ENABLE); }

(4)配置嵌套的矢量中斷控制器

void NVIC_Configuration(void) { __disable_irq(); NVIC_SetPriority(GPIOA_IRQn, 0); NVIC_EnableIRQ(GPIOA_IRQn); __enable_irq(); }

(5)主函數(shù)

int32_t main(void) { RCC_HSI_Enable(RCC_HSIOSC_DIV6); GPIO_Configuration(); LCD_Configuration(); NVIC_Configuration(); while(1){} }

4.測試結(jié)果

電流表串接在單板J23跳線上,單板上電,默認(rèn)主頻為8MHz然后通過KEY1按鍵,控制主頻在4 MHz -12 MHz -24 MHz -48 MHz -64 MHz之間進(jìn)行切換,記錄不同主頻下的電流值,如下:

wKgaomSamriASjthAAAQaBEuQ3U580.jpg

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

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628383
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347780
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CW32L083 IAP跳轉(zhuǎn)后中斷無響應(yīng)是怎么回事?

    只說支持向量偏移,沒有其它介紹。請(qǐng)問哪位大神做過IAP中斷處理的,指點(diǎn)一下,是不是還需要設(shè)置哪里。我用仿真器測試,只要是帶中斷的,跳轉(zhuǎn)后,中斷全部無響應(yīng)。
    發(fā)表于 07-26 07:17

    請(qǐng)問STM32L083的唯一ID為什么有重復(fù)啊?

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

    STM32L072用內(nèi)部時(shí)鐘通過鎖相環(huán)倍頻到主頻32MHz后,功耗很大怎么解決?

    STM32L072是低功耗MCU, 但是用內(nèi)部時(shí)鐘,通過鎖相環(huán)倍頻到主頻32MHz后,執(zhí)行main函數(shù),SystemClock_Config();函數(shù)后,單片機(jī)有7mA的功耗,為啥這么
    發(fā)表于 03-15 06:03

    CW32L052 FLASH存儲(chǔ)器

    CW32L052內(nèi)部集成了64KB嵌入式FLASH供用戶使用,可用來存儲(chǔ)應(yīng)用程序和用戶數(shù)據(jù)。芯片支持對(duì) FLASH 存儲(chǔ)器的讀、擦除和寫操作,支持擦寫保護(hù)和讀保護(hù)。芯片內(nèi)置 FLASH 編程所需的高壓 BOOST 電路,無須額外提供編程電壓。
    的頭像 發(fā)表于 02-28 17:43 ?618次閱讀
    <b class='flag-5'>CW32L</b>052 FLASH存儲(chǔ)器

    CW32L052單片機(jī)支持DMA實(shí)現(xiàn)高速數(shù)據(jù)傳輸

    CW32L052支持DMA(Direct Memory Access),即直接內(nèi)存訪問,無需CPU干預(yù),實(shí)現(xiàn)高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 02-27 11:36 ?872次閱讀

    請(qǐng)問如何優(yōu)化CW32L083微控制器的功耗?

    在進(jìn)行低功耗設(shè)計(jì)時(shí),如何優(yōu)化CW32L083系列微控制器的功耗?
    發(fā)表于 01-17 07:16

    CW32L083系列微控制器的ADC和DAC模塊要如何使用?怎么配置?

    如何配置和使用CW32L083系列微控制器的ADC和DAC模塊?
    發(fā)表于 01-17 06:08

    CW32單片機(jī)在智能馬桶的應(yīng)用介紹

    對(duì)電能的高效利用和節(jié)約。 這款智能馬桶采用的是武漢芯源半導(dǎo)體32位低功耗CW32L083系列,該系列產(chǎn)品集成了主頻高達(dá)64MHz的ARM? Cortex?-M0+ 內(nèi)核、最多256KB FLASH 、最多
    發(fā)表于 12-20 10:06

    武漢芯源半導(dǎo)體CW32系列芯片一文徹底搞定

    武漢芯源半導(dǎo)體在MCU領(lǐng)域目前已推出通用高性能CW32F003/030系列、無線射頻CW32R031/W031系列以及安全低功耗CW32L083/031/052系列產(chǎn)品,廣泛應(yīng)用于消費(fèi)
    發(fā)表于 11-09 19:03
    武漢芯源半導(dǎo)體<b class='flag-5'>CW</b>32系列芯片一文徹底搞定

    CW32L083如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?

    CW32L083如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?
    的頭像 發(fā)表于 11-07 17:17 ?534次閱讀
    <b class='flag-5'>CW32L083</b>如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?

    基于CW32的物聯(lián)網(wǎng)應(yīng)用

    CW32】基于CW32的物聯(lián)網(wǎng)應(yīng)用
    的頭像 發(fā)表于 11-02 15:55 ?609次閱讀
    基于<b class='flag-5'>CW</b>32的物聯(lián)網(wǎng)應(yīng)用

    CW32L083的UART單線半雙工模式介紹

    CW32L083的UART單線半雙工模式介紹
    的頭像 發(fā)表于 10-24 17:49 ?953次閱讀
    <b class='flag-5'>CW32L083</b>的UART單線半雙工模式介紹

    降低一個(gè)MCU的主頻就能降低運(yùn)行的功耗嗎?

    降低一個(gè)MCU的主頻就能降低運(yùn)行的功耗
    發(fā)表于 10-11 08:15

    相同的MCU為什么主頻越高功耗越大?

    MCU為什么的主頻越高功耗越大
    發(fā)表于 10-11 08:04

    STM8在低功耗模式下可以降低主頻運(yùn)行嗎?

    STM8在低功耗模式下可以降低主頻運(yùn)行嗎
    發(fā)表于 10-11 06:57