嵌入式——實時時鍾(RTC)
發布時間:2024-01-29 15:12:46
一、初識RTC
1.簡介
實時時鍾是(shì)一個獨立的定時器。RTC模塊擁有一組連續計數的計數器,在相(xiàng)應軟件配置下,可提供時鍾日曆的功能,計數頻(pín)率常爲秒。修改計數器的值可以重新設置系統當前的時間和日期。
2.特性
(1)32位的可編程計數器,可用于較長時間段的測量
(2)能在MCU掉電後運行
(3) 低功耗
3.後備寄存器和RTC寄存器特性
(1)部分寄存器寫保護:RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器不會被系統複位。
(2)數據存儲功能:RTC和後備寄存器不會被系統或電源複位源複位;當從待機模式喚醒時,也不會被複位。後備寄存器可用于保存掉電時的數據。
(3)獨立工作:RTC和後備寄存器通過一個開關供電,在VDD有效時該開關選擇VDD供電,否則由VBAT引腳供電。在VBAT供電時仍可繼續工作。
(4)2個獨立複位:APB1接口由系統複位;RTC核心隻能由後備域複位;
二、RTC組成
1.相(xiàng)關寄存器
(1)控制寄存器高位(RTC_CRH)
(2)控制寄存器低位(RTC_CRL)
位5(RTOFF):RTC操作關閉。(指示對其寄存器進行的最後一次操作的狀态,即指示操作是(shì)否完成)
位4(CNF):配置标志。(隻有當此位在被置’1’并重新由軟件清’0’後,從而允許向RTC_CNT、RTC_ALR或RTC_PRL寄存器寫入數據)
(3)預分頻(pín)裝載寄存器高位(RTC_PRLH)
(4)預分頻(pín)裝載寄存器低位(RTC_PRLL)
(5)計數器寄存器高位(RTC_CNTH)
(6)計數器寄存器低位(RTC_CNTL)
(7)電源控制寄存器(PWR_CR)
(8)APB1 外設時鍾使能寄存器(RCC_APB1ENR)
(9)備份域控制寄存器(RCC_BDCR)
2.RTC結構
RTC由兩個主要部分組成。第一部分(APB1接口)用來和APB1總線(xiàn)相(xiàng)連。另一部分(RTC核心)由一組可編程計數器組成,分成兩個主要模塊。第一個模塊是(shì)RTC的預分頻(pín)模塊(可編程産生最長爲1秒的RTC時間基準TR_CLK)。第二個模塊是(shì)一個32位的可編程計數器,可被初始化爲當前的系統時間。
(2)RTC的APB1單元還包含一組16位寄存器,可通過APB1,總線(xiàn)對其進行讀寫操作。
(3)APB1接口由APB1總線(xiàn)時鍾驅動,用來與APB1總線(xiàn)接口。
(4)RTC的預分頻(pín)模塊包含的是(shì)一個20位的可編程分頻(pín)器(RTC預分頻(pín)器),分頻(pín)系數最高爲2的20次方。
(5)RTC有3個專門的可屏蔽中斷:
(6)如果在RTC_CR寄存器中設置了相(xiàng)應的允許位,則在每個TR_CLK周期中RTC産生一個中斷(秒中斷)。
(7)系統時間按TR_CLK周期累加并與存儲在RTC_ALR寄存器中的可編程時間相(xiàng)比較,如果RTC_CR控制寄存器中設置了相(xiàng)應允許位,比較匹配時将産生一個中斷(鬧鍾中斷)。
3.RTC基本配置步驟
(5)退出配置模式:清除CNF位,等待RTOFF 位爲1(RTC_CRL)即配置完成。
4.RTC系統配置流程描述
(5)查詢RTOFF,直至RTOFF