stm32l0 rtc休眠週期自動喚醒文件整理

2021-09-26 04:40:57 字數 2667 閱讀 2315

stm32l0 rtc

休眠週期自動喚醒

文件整理

wangxl@20190814

一、週期性自動喚醒--手冊文件說明

週期性喚醒標誌由

16 位可程式設計自動過載遞減計數器生成。喚醒定時器範圍可擴充套件至

17 位。

可通過rtc_cr

暫存器中的

wute

位來使能此喚醒功能。

喚醒定時器的時鐘輸入可以是: 2、

4、8 或

16 分頻的

rtc

時鐘(rtcclk)。

當rtcclk

為lse (32.768 khz)

時,可配置的喚醒中斷週期介於

122 µs

和32 s

之 間,且解析度低至

61 µs。

· ck_spre

(通常為

1 hz

內部時鐘)。 當

ck_spre

頻率為1 hz

時,可得到的喚醒時間為

1s 到

36h

左右,解析度為

1 秒。這 一較大的可程式設計時間範圍分為兩部分:

– wucksel [2:1] = 10

時為1s

到18h

– wucksel [2:1] = 11

時約為18h

到36h

。在後一種情況下,會將

216

新增到16

位計數器當前值。完成初始化序列後(請參見

第600

頁的程式設計喚醒定時器

),定時 器開始遞減計數。在低功耗模式下使能喚醒功能時,遞減計數保持有效。此外,當 計數器計數到

0 時,

rtc_isr

暫存器的

wutf

標誌會置

1,並且喚醒暫存器會使用其過載值(

rtc_wutr

暫存器值)動過載。 之後必須用軟體清零

wutf

標誌。

通過將rtc_cr2

暫存器中的

wutie

位置1

來使能週期性喚醒中斷時,它會使器件退出低功耗模式。

如果已通過

rtc_cr

暫存器的位

osel[1:0]

使能週期性喚醒標誌,則該標誌可連線到

rtc_alarm

輸出。可通過

rtc_cr

暫存器的

pol

位配置rtc_alarm

輸出極性。

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

二、配置週期喚醒

配置步驟如下:

1. 禁用週期喚醒功能,復位rtc_cr2中wute位;

2. 等待rtc_isr1中wutwf位置位,表示喚醒計數器可配置;

3. 配置喚醒時鐘,設定rtc_cr1中wucksel[2:0]位:

- 000: rtcclk/16

- 001: rtcclk/8

- 010: rtcclk/4

- 011: rtcclk/2

- 10x: ck_spre(1hz,wut計數範圍:0x0000~0xffff)

- 11x: ck_spre(1hz,wut計數範圍:0x10000~0x1ffff)

4. 配置喚醒週期,裝載暫存器rtc_wutrh和rtc_wutrl;

5. 使能週期喚醒功能,置位rtc_cr2中wute位。(

該中斷會使mcu退出低功耗狀態,進入執行狀態。)

rtcclk,預分頻2,4,8或16。如果rtcclk為lse,即32768hz,則可配置喚醒週期為:(61us ~ 32s)

ck_spre, 1hz時鐘,則可配置喚醒週期為:(1s ~ 36h)

三、rtc時鐘配置

1、時鐘源選擇:rtc時鐘源可選hse,lse,hsi或lsi。

為確保rtc精確工作,要求系統時鐘(sysclk)必須等於或大於4*rtcclk值。如果系統時鐘(sysclk)為lse或lsi,則rtc時鐘必須等於系統時鐘(sysclk),並且禁用rtc同步機制(置位rtc_cr1暫存器ratio位)。

2、配置rtc時鐘源:配置rtc時鐘源為lse,1分頻,即32768hz。

3、配置ck_spre時鐘; ck_spre時鐘,

預設1hz時鐘。

(1) 設定7位非同步預分頻,rtc_apreg:prediva,預設127;

(2) 設定13(medium)或15位同步預分頻,rtc_sprerx:prediv_s,預設255。

即:1hz=32768/((127+1)*(255+1))

ck_spre時鐘可用於日曆和定時喚醒時鐘。

//引數

time 秒

STM32,RTC週期性喚醒(wakeup)中斷

stm32l151 int main void static void mx rtc init void enable the wakeup 配置rtc cr暫存器的低兩位,選擇rtc計數器時鐘的頻率這裡是1hz,cr暫存器的第十四位使能wakeup喚醒中斷,給wakeup定時器賦值為10,這裡就是...

STM32L0 內部EEPROM寫讀

stm32l0內部的eeprom寫操作由解鎖,寫入,加鎖過程組成,讀過程則無需解鎖。至於stm32l0內部的非易失空間區分為flash和eeprom,主要體現在用st link等工具進行整片擦除時,只擦除flash的空間,eeprom的部分不會被擦除,如同外部eeprom晶元,mpu的 公升級不影響...

STM32F0 休眠模式下 ADC取樣失效

筆者最近在作某汽車上的智慧型方向盤按鍵專案,系統要求待機電流小於100ua,同時能檢測系統輸入電壓狀態,做到能自檢欠壓和過壓,並通過lin傳送給中控。故筆者在對輸入電壓加了乙個分壓電路來檢測,現在客戶測試發現過壓和欠壓的判斷閾值與要求不符合,筆者在實際測試過程中也確實發現了問題,但未燒錄過程式的板子...