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

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

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

STM32系列里RTC的亞秒特性及功能(上)

麥辣雞腿堡 ? 來(lái)源:茶話MCU ? 作者:茶話MCU ? 2023-06-21 15:53 ? 次閱讀

絕大多數(shù)STM32系列里的RTC都具有亞秒【或稱子秒】計(jì)數(shù)單元。為了了解亞秒特性及功能,不妨先看RTC的功能框圖。本文中的有關(guān)截圖若無(wú)特別說(shuō)明均來(lái)自STM32L4系列參考手冊(cè)。

圖片

圖片

RTC的時(shí)鐘源【RTCCLK】可以是LSE、LSI或者HSE/32,由RTCCLK最終變成日歷的秒脈沖驅(qū)動(dòng)信號(hào)經(jīng)過(guò)了2次分頻。先經(jīng)過(guò)上圖中A處的異步分頻單元,默認(rèn)分頻系數(shù)是128,形成ck_apre時(shí)鐘,默認(rèn)情況下該時(shí)鐘頻率為256Hz;然后該時(shí)鐘脈沖來(lái)到圖中B處的同步分頻單元,默認(rèn)分頻系數(shù)為256,最終形成1Hz的秒脈沖【ck_spre】到日歷單元。關(guān)于兩分頻單元分頻系數(shù)的配置,通過(guò)對(duì)RTC_PRER寄存器的相關(guān)位編程實(shí)現(xiàn)。

圖片

其中異步分頻系數(shù)配置位【PREDIV_A】有7位,同步分頻系數(shù)【PREDIV_S】有15位。另外,同步分頻單元還包括采用向下計(jì)數(shù)方式的亞秒計(jì)數(shù)器,它基于異步分頻后的時(shí)鐘ck_apre進(jìn)行計(jì)數(shù),溢出時(shí)的重裝值等于PREDIV_S。一般來(lái)講,它的一個(gè)計(jì)數(shù)周期就是1s,其計(jì)數(shù)分辨率或精度為【1/(PREDIV_S+1)】秒。與之配套的亞秒寄存器,實(shí)時(shí)記錄亞秒計(jì)數(shù)器的計(jì)數(shù)值,有效數(shù)據(jù)位乃16位,比PREDIV_S多1位,多出的1位另有它用,此處不表。

圖片

顯然,當(dāng)有了這個(gè)亞秒計(jì)數(shù)器后,我們就可以獲得少于1秒的時(shí)間,或說(shuō)秒的小數(shù)部分---亞秒,其精度由同步分頻系數(shù)PREDIV_S決定,某時(shí)刻的亞秒數(shù)通過(guò)亞秒寄存器獲取,對(duì)應(yīng)的亞秒時(shí)間可以通過(guò)上圖中第2個(gè)紅色方框內(nèi)的算式求得【提醒:亞秒計(jì)數(shù)器采用向下計(jì)數(shù)方式】。

關(guān)于RTC的亞秒概念及基本特性就介紹到這里。稍微小結(jié)下:

1、亞秒是對(duì)少于1秒的時(shí)間稱謂,范圍在0到1秒,并非固定的值;

2、亞秒精度【分辨率】可調(diào),由PREDIV_S參數(shù)決定,即【1/(PREDIV_S+1)】秒;

3、亞秒寄存器【RTC_SSR】實(shí)時(shí)記錄亞秒計(jì)數(shù)器的值,具體由 SS [15:0]體現(xiàn);

4、亞秒時(shí)間通過(guò)算式(PREDIV_S- SS/ (PREDIV_S+1)求得;

我們知道RTC除了提供基本的日歷功能外,還有很好的低功耗特性,常用于低功耗的喚醒。有些低功耗應(yīng)用場(chǎng)合,雖然系統(tǒng)需要周期性的喚醒,但對(duì)喚醒周期的一致性要求往往并不嚴(yán)格、很多時(shí)候的周期值往往遠(yuǎn)達(dá)不到秒級(jí),比方在10個(gè)毫秒上下、幾十個(gè)毫秒左右、100毫秒量級(jí)不等。像這種場(chǎng)合,我們可以考慮使用RTC的亞秒特性和ALARM功能實(shí)現(xiàn)周期性喚醒。

假設(shè)某STM32用戶有這樣的需求,他的系統(tǒng)涉及低功耗,需要周期性地做休眠與喚醒的切換。他希望系統(tǒng)進(jìn)入休眠后每隔50±20ms的時(shí)間范圍內(nèi)被喚醒,喚醒后做些基本的檢測(cè)處理后又進(jìn)入休眠。要實(shí)現(xiàn)這個(gè)需求,對(duì)于很多帶LPTIM的STM32系列也很方便實(shí)現(xiàn)。

不過(guò),今天主要想聊聊如何通過(guò)RTC來(lái)實(shí)現(xiàn)該需求。了解STM32的RTC的人可能知道,RTC模塊往往還自帶一個(gè)專門的16位向下計(jì)數(shù)的喚醒定時(shí)器,即下面RTC局部框圖中紅框所在單元。我這里要分享的也不是這個(gè)專用喚醒定時(shí)器,而是想基于ALARM事件和亞秒特性來(lái)實(shí)現(xiàn)上面需求。

圖片

對(duì)于RTC的ALARM功能我們都不陌生,即先預(yù)設(shè)需要ALARM的時(shí)間點(diǎn),當(dāng)日歷時(shí)間跟設(shè)定的ALARM時(shí)間匹配時(shí)就可以觸發(fā)ALARM事件及中斷。對(duì)于ALARM時(shí)間點(diǎn)的報(bào)警條件可以有很多靈活的組合配置,比方我們可以設(shè)置在某月某日某時(shí)某分某秒ALARM,也可以設(shè)置在某分某秒ALARM,其它不關(guān)心,或者僅設(shè)置在某個(gè)亞秒時(shí)刻ALARM,其它不關(guān)心。

圖片

上圖中四種ALARM設(shè)置,灰色部分表示不關(guān)心項(xiàng),即不參與日歷值與ALARM設(shè)定值相關(guān)項(xiàng)的比較。這里分別表示的警情時(shí)刻是:

第一種,只要日歷中跟ALARM設(shè)置的時(shí)、分、秒匹配時(shí)報(bào)警,其它不關(guān)心;

第二種,只要日歷中跟ALARM設(shè)置的分值、秒值匹配時(shí)報(bào)警,其它不關(guān)心;

第三種,只要日歷中跟ALARM設(shè)置的秒值和亞秒低3位值匹配時(shí)報(bào)警,其它不關(guān)心;

第四種,只要日歷中跟ALARM設(shè)置的亞秒的低4位值匹配時(shí)報(bào)警,其它不關(guān)心;

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

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352482
  • 控制
    +關(guān)注

    關(guān)注

    4

    文章

    1005

    瀏覽量

    122508
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    511

    瀏覽量

    65897
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    轉(zhuǎn):STM32CubeMX系列教程13:實(shí)時(shí)時(shí)鐘(RTC)

    和 31 天。只要芯片的備用電源一直供電,RTC的時(shí)間會(huì)一直走。2.新建工程本章程序在串口printf工程的基礎(chǔ)修改,復(fù)制串口printf的工程,修改文件夾名。點(diǎn)擊STM32F7
    發(fā)表于 07-06 16:53

    STM32RTC該怎么配置

    RTC實(shí)時(shí)時(shí)鐘部分,之前也是有講到過(guò)的。Hi3516A開(kāi)發(fā)–RTC電路接下來(lái)看一下STM32RTC該怎么配置一、
    發(fā)表于 08-11 08:59

    關(guān)于RTC中斷功能

    RTC(Real Time Clock)是實(shí)時(shí)時(shí)鐘的意思,它其實(shí)和TIM有點(diǎn)類似,也是利用計(jì)數(shù)的原理,選擇RTC時(shí)鐘源,再進(jìn)行分頻,到達(dá)計(jì)數(shù)的目的。該文主要講述關(guān)于RTC中斷
    發(fā)表于 08-13 06:57

    關(guān)于RTC中斷功能

    Ⅰ、概述RTC(Real Time Clock)是實(shí)時(shí)時(shí)鐘的意思,它其實(shí)和TIM有點(diǎn)類似,也是利用計(jì)數(shù)的原理,選擇RTC時(shí)鐘源,再進(jìn)行分頻,到達(dá)計(jì)數(shù)的目的。該文主要講述關(guān)于RTC
    發(fā)表于 08-16 08:19

    STM32CubeMX RTC簡(jiǎn)介

    和 31 天。只要芯片的備用電源一直供電,RTC的時(shí)間會(huì)一直走。STM32RTC 外設(shè)(Real Tim
    發(fā)表于 08-18 06:37

    具有帶32位喚醒計(jì)數(shù)器的RTC的超低MCU有哪些

    我目前正在使用 STM32WLE5CC MCU,它具有帶 32 位喚醒計(jì)數(shù)器的 RTC 的強(qiáng)大功能,但我的其他非 lorawan 項(xiàng)目需
    發(fā)表于 12-02 06:14

    RTC 計(jì)不均勻

    STM32F103RCT6的RTC 計(jì)不均勻
    發(fā)表于 12-07 18:13 ?0次下載

    STM32F10x _RTC中斷

    STM32F10x_RTC中斷
    的頭像 發(fā)表于 03-25 11:39 ?3035次閱讀
    <b class='flag-5'>STM32</b>F10x _<b class='flag-5'>RTC</b><b class='flag-5'>秒</b>中斷

    STM32開(kāi)發(fā) -- RTC詳解

    RTC實(shí)時(shí)時(shí)鐘部分,之前也是有講到過(guò)的。Hi3516A開(kāi)發(fā)–RTC電路接下來(lái)看一下STM32RTC該怎么配置一、
    發(fā)表于 11-30 13:06 ?27次下載
    <b class='flag-5'>STM32</b>開(kāi)發(fā) -- <b class='flag-5'>RTC</b>詳解

    STM32CubeMX學(xué)習(xí)筆記(14)——RTC實(shí)時(shí)時(shí)鐘使用

    包含二進(jìn)碼十進(jìn)數(shù)格式 (BCD) 的、分鐘、小時(shí)( 12 或 24 小時(shí)制)、星期幾、日期、月份和年份。此外,還可提供二進(jìn)制格式的值。系統(tǒng)可以自動(dòng)將月份的天數(shù)補(bǔ)償為 28、29(閏年)、30 和 31 天。只要芯片的備用電
    發(fā)表于 12-05 21:06 ?13次下載
    <b class='flag-5'>STM32</b>CubeMX學(xué)習(xí)筆記(14)——<b class='flag-5'>RTC</b>實(shí)時(shí)時(shí)鐘使用

    STM32CubeMX | 基于STM32使用HAL庫(kù)驅(qū)動(dòng)RTC時(shí)鐘及鬧鐘功能

    STM32使用HAL庫(kù)驅(qū)動(dòng)RTC時(shí)鐘及鬧鐘功能目錄STM32使用HAL庫(kù)驅(qū)動(dòng)RTC時(shí)鐘及鬧鐘功能
    發(fā)表于 12-06 09:21 ?52次下載
    <b class='flag-5'>STM32</b>CubeMX | 基于<b class='flag-5'>STM32</b>使用HAL庫(kù)驅(qū)動(dòng)<b class='flag-5'>RTC</b>時(shí)鐘及鬧鐘<b class='flag-5'>功能</b>

    STM32片內(nèi)RTC特性以及應(yīng)用演示的分享

    絕大多數(shù)STM32系列RTC都具有【或稱子
    的頭像 發(fā)表于 04-15 11:27 ?2469次閱讀
    <b class='flag-5'>STM32</b>片內(nèi)<b class='flag-5'>RTC</b><b class='flag-5'>亞</b><b class='flag-5'>秒</b><b class='flag-5'>特性</b>以及應(yīng)用演示的分享

    STM32片內(nèi)RTC特性的應(yīng)用示例(

    絕大多數(shù)STM32系列RTC都具有【或稱子
    的頭像 發(fā)表于 04-30 16:28 ?835次閱讀
    <b class='flag-5'>STM32</b>片內(nèi)<b class='flag-5'>RTC</b><b class='flag-5'>亞</b><b class='flag-5'>秒</b><b class='flag-5'>特性</b>的應(yīng)用示例(<b class='flag-5'>上</b>)

    STM32片內(nèi)RTC特性的應(yīng)用示例(下)

    這個(gè)專用喚醒定時(shí)器,而是想基于ALARM事件和特性來(lái)實(shí)現(xiàn)上面需求。 對(duì)于RTC的ALARM功能我們都不陌生,即先預(yù)設(shè)需要ALARM的時(shí)間
    的頭像 發(fā)表于 04-30 16:32 ?1412次閱讀
    <b class='flag-5'>STM32</b>片內(nèi)<b class='flag-5'>RTC</b><b class='flag-5'>亞</b><b class='flag-5'>秒</b><b class='flag-5'>特性</b>的應(yīng)用示例(下)

    STM32系列RTC特性功能(下)

    ,就這樣延續(xù)下去。 這樣操作也是可以的,即每次在ALARM中斷修改新的ALARM時(shí)間點(diǎn)。下圖是對(duì)ALARM值進(jìn)行編程的流程【設(shè)置時(shí)先要關(guān)閉ALARM,修改ALARM值后再手動(dòng)開(kāi)啟ALARM單元】: 不過(guò),結(jié)合眼前的應(yīng)用需求,我們可以不使用上面的做法,而是巧妙地使用RTC
    的頭像 發(fā)表于 06-21 15:56 ?1311次閱讀