<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

基于MM32L0130的低功耗電子時鐘設計

靈動MM32MCU ? 來源:靈動MM32MCU ? 作者:靈動MM32MCU ? 2022-11-04 10:12 ? 次閱讀

MM32L0130作為靈動微電子推出的一款低功耗芯片,內置多種省電工作模式保證低功耗應用的要求。前面章節分別對MM32L0130片上外設SLCD和RTC做了相關描述,并列舉對應程序實現SLCD驅動LCD顯示、RTC日歷和鬧鐘,其實SLCD與RTC都支持在特定的低功耗模式下運行,結合這兩個外設特性,在前面實驗的基礎上,使用EVB_L0136開發板可以輕松實現一個低功耗電子時鐘設計。本次微課堂通過講述MM32L0130 PWR電源控制模式,以及SLCD 和RTC外設配置,實現低功耗應用場景。

1MM32L0130 PWR簡介

電源控制 PWR(Power Controller)主要涉及芯片的供電系統、電源管理器和低功耗模式等功能。

1.1 供電系統

芯片由兩種電源提供供電:

由VDDA和VSSA提供的模擬電源,為芯片模擬模塊提供電壓,用于ADC模塊、內部基準電壓、內部溫度傳感器和 PLL 等。

由VDD和VSS提供的數字電源,用于數字部分和I/O引腳工作。

0cfa4950-5b65-11ed-a3b6-dac502259ad0.png

電源控制功能框圖

VDD 域主要給 LSE, HSE, PMU, POR, PVD 和部分 I/O 上的喚醒邏輯供電,在上電后保持工作狀態。

備份域主要為 RTC、 LCD、 IWDG、備份寄存器和內部低速時鐘振蕩器 LSI 供電。

VDD_Core 域主要給芯片的內核、內存和外設提供供電,在上電后默認是開啟狀態,在進入低功耗待機模式時,芯片會硬件選擇關閉該 VDD_Core 域,在喚醒后芯片會自動開啟。主要有以下幾種工作狀態:

運行模式

VDD_Core 域以正常的功耗模式運行,內存、外設都正常工作。

低功耗運行模式

VDD_Core 域以低功耗模式運行,內存、外設都以低功耗工作。

睡眠模式

VDD_Core 域以正常功耗模式工作, CPU 進入睡眠模式,內存、外設都以正常的功耗模式工作。

低功耗睡眠模式

VDD_Core 域以低功耗睡眠模式工作, CPU 進入低功耗睡眠模式,內存、外設都以低功耗工作。

停機模式

VDD_Core 域以低功耗模式工作,只保持寄存器和 RAM 的內容。

深度停機模式

VDD_Core 域以更低功耗模式工作,只保持寄存器和 RAM 的內容。

待機模式

VDD_Core 域停止供電。除了備份域外,其他所有寄存器和 SRAM 的內容全部丟失。

關機模式

VDD_Core 域、備份域停止供電。

1.2 MM32L0130低功耗模式

MM32L0130有6種低功耗模式:包括低功耗運行模式,睡眠模式,低功耗睡眠模式,停機模式,待機模式,關機模式:

低功耗運行模式

進一步降低 MCU 在運行模式下的功耗,可以通過配置 PWR_CR1 寄存器的 LPR 位將電壓穩壓器設置為低功耗模式。該模式下系統頻率不應超過 2MHz。

Sleep Mode 睡眠模式

CPU 進入睡眠模式,內存、外設都以正常的功耗模式工作。在睡眠模式下,所有的 I/O 引腳都保持在運行模式時的狀態。中斷或事件發生后,睡眠模式立即被喚醒。

Low Power Sleep Mode 低功耗睡眠模式

CPU 進入低功耗睡眠模式,內存、外設都以低功耗工作。在睡眠模式下,所有的 I/O 引腳都保持在運行模式時的狀態。中斷或事件發生后,睡眠模式立即被喚醒。

Stop Mode 停機模式

停機模式下,CPU 進入深度睡眠模式, VDD_Core 域的所有時鐘都被停止, PLL、 HSI 和 HSE 振蕩器的功能被禁止, SRAM 和寄存器內容被保留下來。

DeepStop Mode 深度停機模式

深度停機是在 CPU 深度睡眠模式的基礎上結合了外設的時鐘控制和電壓穩壓器控制機制的一種低功耗模式。在深度停機模式下, VDD_Core 域的所有時鐘都被停止, PLL、 HSI 和 HSE 振蕩器的功能被禁止, SRAM 和寄存器內容被保留下來。

Standby Mode 待機模式

待機模式是在 CPU 深睡眠模式的基礎上關閉電壓穩壓器。整個 VDD_Core 域被切斷, PLL、 HSI 和HSE 振蕩器也被關閉, SRAM 和寄存器內容丟失,只有備份域的寄存器和待機電路維持供電。喚醒后芯片將復位。

ShutDown Mode 關機模式

在關機模式下,內部所有的穩壓器全都被關閉, BOR 關閉,只保留 POR 和少數其他 VDD 域的電路正常工作(PMU 部分邏輯/POR/IO Wakeup 邏輯)。

1.3 功耗模式選擇

一般根據最低電源消耗,最快啟動時間和可用的喚醒源等條件,選擇一種最佳的低功耗模式。相關參數可以參考各系列對應的數據手冊,如下數據從數據手冊摘取。

1.31 電流消耗

電流消耗是多種參數和因素的綜合指標,這些參數和因素包括工作電壓、環境溫度、 I/O引腳的負載、產品的軟件配置、工作頻率、 I/O 腳的翻轉速率、程序在存儲器中的位置以及執行的代碼等。本節中給出的所有運行模式下的電流消耗測量值,都是在執行一套精簡的代碼。

睡眠模式下的典型電流消耗:

0d1c4d16-5b65-11ed-a3b6-dac502259ad0.png

停機模式下的典型電流消耗和最大電流消耗:

0d536e04-5b65-11ed-a3b6-dac502259ad0.png

I/O 狀態為模擬輸入。

待機模式下的典型電流消耗和最大電流消耗:

0d7c41ee-5b65-11ed-a3b6-dac502259ad0.png

I/O 狀態為模擬輸入。

關機模式下的典型電流消耗和最大電流消耗:

0da095b2-5b65-11ed-a3b6-dac502259ad0.png
I/O 狀態為模擬輸入。

1.32 喚醒時間

低功耗模式的喚醒時間:

0dbf264e-5b65-11ed-a3b6-dac502259ad0.png

2實驗

2.1 實驗說明

MM32L0130的RTC和SLCD外設都支持睡眠模式、停機模式、和待機模式。RTC模塊連接到EXTI部分用于低功耗喚醒信號,包括鬧鐘、喚醒單元、入侵事件。SLCD驅動模塊在不需要顯示的時候,可以完全關閉 SLCD 驅動以達到降低功耗的目的。

硬件使用靈動微電子設計的EVB-L0136開發板,板載LCD接口可以適配GDC0689液晶屏,以LCD中的6位數碼管顯示時間時、分、秒,在1s時間范圍內完成喚醒并更新顯示數據即可,根據需要可以選擇停機模式和待機模式,待機模式功耗最低。在STOP模式下, VDD_Core域的所有時鐘都被停止, PLL、 HSI 和 HSE 振蕩器的功能被禁止,SRAM 和寄存器內容被保留下來,喚醒之后繼續執行進入STOP模式指令之后的程序,可以保證各個任務順利運行,從STOP模式喚醒時間約為20us,時間相當充分,且功耗較正常運行模式降低很多,這里選擇STOP模式。

GDC0689液晶屏全顯效果圖如下:

0dfaa3d6-5b65-11ed-a3b6-dac502259ad0.png ? ?

2.2 喚醒單元

RTC內部包含周期性的喚醒單元,用于喚醒低功耗模式。

RTC 內部包含一個 16 位的遞減計數單元,用于周期性產生喚醒標志,該喚醒定時器可擴展至 17 位。通過配置 RTC_CR 寄存器中的 WUTE 位使能。喚醒單元時鐘源:

2、4、8 或 16 分頻的 RTC 時鐘:

當為 LSE 時,可配置的喚醒中斷周期介于 122μs 和 32s 之間,且分辨率低至 61μs。

fck_spre(通常為 1Hz 內部時鐘):

WUCKSEL[2:1]=10 時為 1s 到 18h;

WUCKSEL[2:1]=11 時約為 18h 到 36h。

當遞減計數器計數到 0 時, RTC_ISR 寄存器的 WUTF 標志會置 1,喚醒計數器會重載 RTC_WUTR寄存器值,通過軟件清零 WUTF 標志。

使能 RTC_CR 寄存器中的 WTIE,當計數到 0 時,會產生中斷輸出。

配置 RTC_CR 寄存器中的位 OSEL[1:0]等于 2, WUTF 連接到 RTC_ALARM 輸出。配置 RTC_CR寄存器的 POL 位選擇 RTC_ALARM 輸出極性。

注:系統復位以及低功耗模式(睡眠、停機和待機)對喚醒定時器沒有影響。

2.3 外設配置

關于SLCD和RTC的初始化配置在前面兩節微課堂已有相關描述,以下外設配置與應用程序在前面代碼上進行增添即可。

1)配置低功耗模式要先使能PWR時鐘:

RCC_APB1PeriphClockCmd(RCC_APB1ENR_PWREN,ENABLE);

2)在要進入STOP模式的代碼后調用相關庫函數,選擇低功耗模式,中斷喚醒:

PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

3)RTC的時鐘源選擇LSE(32.768KHZ),可配置的喚醒中斷周期介于 122μs 和 32s 之間,且分辨率低至 61μs。此處對RTC時鐘進行16分頻,1s計數2048個,配置喚醒定時器自動重裝載值為256,對應125ms,該值越小,喚醒時間越短。

RTCCAL_WakeUpClockConfig(RTCCAL_WakeUpClock_RTCCLK_Div16);
RTCCAL_SetWakeUpCounter(256);

使能喚醒單元,使能RTC喚醒中斷:

RTCCAL_WakeUpCmd(ENABLE);
RTCCAL_ClearFlag(RTCCAL_FLAG_WUTF);
RTCCAL_ITConfig(RTCCAL_IT_WUT,ENABLE);

RTC&BKP 全局中斷與連接到 EXTI17,配置RTC中斷:

RTCCAL_NVIC_Config();

4)SLCD顯示,記錄當前日歷和時間,使用LCD的6位數碼管顯示時分秒,左上方的4位數碼管顯示年份。

voidLCD_DisplayDataUpdate(void)
{
Number1=RTCCAL_tempTime.RTCCAL_Seconds;
Number2=RTCCAL_tempTime.RTCCAL_Minutes;
Number3=RTCCAL_tempTime.RTCCAL_Hours;

LCD_DisplayNumber1(0,'0'+Number3/10,0);
LCD_DisplayNumber1(1,'0'+Number3%10,0);
LCD_DisplayNumber1(2,'0'+Number2/10,0);
LCD_DisplayNumber1(3,'0'+Number2%10,0);
LCD_DisplayNumber1(4,'0'+Number1/10,0);
LCD_DisplayNumber1(5,'0'+Number1%10,0);

LCD_DisplayUnit(8,1);
LCD_DisplayUnit(9,1);

Number4=RTCCAL_tempDate.RTCCAL_Year;
LCD_DisplayNumber2(0,'2',0);
LCD_DisplayNumber2(1,'0',0);
LCD_DisplayNumber2(2,'0'+Number4/10,0);
LCD_DisplayNumber2(3,'0'+Number4%10,0);

}

5)獲取當前日歷和時間,刷新顯示數據,Flag_GainData、Flag_DataUpdate均為時間標志,這里間隔1ms獲取數據,間隔10ms刷新數據,Flag_WKUP是中斷喚醒標志,數據刷新之后再次進入STOP模式,等待喚醒,刷新時間是影響功耗的主要參數之一,需根據實際應用進行評估。

if(Flag_GainData==1)
{
Flag_GainData=0;
RTCCAL_GetDate(RTCCAL_Format_BIN,&RTCCAL_tempDate);RTCCAL_GetTime(RTCCAL_Format_BIN,&RTCCAL_tempTime);
}
if(Flag_DataUpdate==1)
{
Flag_DataUpdate=0;
LCD_DisplayDataUpdate();
if(Flag_WKUP==1)
{
Flag_WKUP=0;
SystemInit();
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
LED2_TOGGLE();
}
}

2.4 演示

板載LD2(綠色LED)閃爍,程序中LD2的控制引腳在從低功耗模式喚醒之后翻轉,閃爍表示此時處于低功耗模式進入、喚醒狀態。LCD液晶屏顯示時、分、秒、年份。

本次微課堂在功能設計上僅是MM32L0130 SLCD與RTC在低功耗模式下的簡單應用,如果對此感興趣者,可以自己配置RTC鬧鐘功能、SLCD閃爍模式,以及按鍵調整時間、蜂鳴提醒、LED顯示等進一步完善相關功能。

審核編輯:湯梓紅

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

    關注

    11

    文章

    197

    瀏覽量

    24149
  • VDD
    VDD
    +關注

    關注

    1

    文章

    309

    瀏覽量

    31987
  • 靈動微電子
    +關注

    關注

    7

    文章

    108

    瀏覽量

    19565
  • MM32
    +關注

    關注

    1

    文章

    105

    瀏覽量

    598

原文標題:靈動微課堂 (第234講) | 基于MM32L0130的低功耗電子時鐘設計

文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于RA6M5開發板的低功耗電子時鐘設計

    本項目是基于啟明RA6M5開發板搭載2.4寸液晶屏的電子時鐘,該電子時鐘有兩個模式——正常模式和低功耗模式,可以通過開發板的按鍵改變時鐘模式。
    的頭像 發表于 12-25 12:26 ?530次閱讀
    基于RA6M5開發板的<b class='flag-5'>低功耗電子時鐘</b>設計

    低功耗電子溫度計的優點是什么?

    本文設計的超低功耗電子溫度計能夠通過溫度傳感器測量和顯示被測量點的溫度,并可進行擴展控制。該溫度計帶電子時鐘,其檢測范圍為l0℃~30℃,檢測分辨率為1℃,采用LCD液晶顯示,整機靜態功耗
    發表于 08-13 07:50

    使用MM32L0130 IRM實現紅外發碼

    1、使用MM32L0130 IRM實現紅外發碼  紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,成本低,易于實現等顯著優點,被諸多電子設備包括消費電子、家
    發表于 10-21 14:22

    基于MM32L0130低功耗電子時鐘設計方案相關資料分享

    1、基于MM32L0130低功耗電子時鐘設計  MM32L0130作為靈動微電子推出的一款低功耗芯片,內置多種省電工作模式保證
    發表于 11-09 16:00

    請問有人使用IAR進行過MM32L0130的開發嗎?

    我在使用IAR8.30進行MM32L0130開發板試用時遇到了一個棘手的問題,其例程能夠下載到開發板(至少在IAR中任何報錯,也可以在線調試),可是就是一直開在時鐘配置階段,一直沒有配置成功,有人遇到過這樣的問題嗎?或者在調試其他單片機時是否有類似現象?麻煩指導一下解決辦
    發表于 12-18 21:48

    靈動微MM32L0130系列32位微控制器的詳細介紹

    全新MM32L0130系列是靈動微電子針對低功耗應用推出的新一代MCU產品,其搭載了Arm?Cortex?-M0+內核,采用了先進的低功耗架構設計和技術手段,實現了最低700nA的RT
    發表于 04-28 16:18 ?523次閱讀

    使用MM32L0130片上IRM模塊實現紅外發碼

    靈動股份推出的MM32L0130系列MCU具有片上IRM紅外調制器,該模塊使用片上的定時器和串口,實現數據的 FSK/ASK 調制,以滿足紅外發碼的需求。
    的頭像 發表于 10-13 17:03 ?982次閱讀

    MM32L0130 RTC日歷和鬧鐘

    RTC 模塊是用于提供時間(時、分、秒、亞秒)和日期(年、月、日)功能的定時計數器,日歷以 BCD碼的格式顯示。內部包含周期性的喚醒單元,用于喚醒低功耗模式。支持夏令時補償,支持數字校準補償晶振精度的偏差。靈動微電子推出的MM32L01
    的頭像 發表于 10-28 10:37 ?990次閱讀

    靈動微電子低功耗單片機MM32L0130開發板申請

    低功耗單片機MM32L0130采用的是M0+內核的32位MCU,工作頻率高達48兆赫茲,內置64KB?Flash,8KBSRAM的高速存儲器,內置段碼式液晶驅動SLCD,可驅動8x36或4x40
    的頭像 發表于 11-21 17:15 ?624次閱讀
    靈動微<b class='flag-5'>電子</b><b class='flag-5'>低功耗</b>單片機<b class='flag-5'>MM32L0130</b>開發板申請

    集成段碼LCD驅動低功耗系列MM32L0130

    靈動微集成段碼LCD驅動低功耗系列MM32L0130搭載了最高主頻為48MHz的Arm Cortex-M0+處理器;提供至多64KB的Flash存儲空間和8KB的SRAM空間。 ? 靈活易用
    發表于 01-31 15:50 ?284次閱讀

    MM32L0130 產品手冊(中文版)

    MM32L0130 產品手冊(中文版)
    發表于 02-27 18:24 ?0次下載
    <b class='flag-5'>MM32L0130</b> 產品手冊(中文版)

    MM32L0130 產品手冊(英文版)

    MM32L0130 產品手冊(英文版)
    發表于 02-27 18:25 ?0次下載
    <b class='flag-5'>MM32L0130</b> 產品手冊(英文版)

    MM32L0130 用戶手冊(中文版)

    MM32L0130 用戶手冊(中文版)
    發表于 02-27 18:26 ?0次下載
    <b class='flag-5'>MM32L0130</b> 用戶手冊(中文版)

    MM32L0130 用戶手冊(英文版)

    MM32L0130 用戶手冊(英文版)
    發表于 02-27 18:26 ?0次下載
    <b class='flag-5'>MM32L0130</b> 用戶手冊(英文版)

    使用MM32L0130和HYS1254的電子秤方案驗證

    NPI提了需求,需要驗證使用友商SDADC芯片和MM32L0130微控制器集成的一個系統應用方案。
    的頭像 發表于 10-17 17:16 ?374次閱讀
    使用<b class='flag-5'>MM32L0130</b>和HYS1254的<b class='flag-5'>電子</b>秤方案驗證
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>