STM32如何计算RTC时钟异步预分频和同步预分频
實時時鐘 (RTC) 是一個獨(dú)立的 BCD 定時器/計數(shù)器,提供具有可編程鬧鐘中斷功能的日歷時鐘/日歷,可用于管理所有低功耗模式的自動喚醒單元。在配置RTC時鐘時預(yù)分頻器是關(guān)鍵指標(biāo),通過配置預(yù)分頻器可以自定義計數(shù)周期。
以STM32L0系列MCU為例,介紹RTC時鐘的異步預(yù)分頻和同步預(yù)分頻配置方法。
RTC 時鐘源 (RTCCLK) 通過時鐘控制器從 LSE 時鐘、LSI 振蕩器時鐘以及 HSE 時鐘三者中選擇。預(yù)分頻器分為 2 個可編程的預(yù)分頻器:通過 RTC_PRER 寄存器的 PREDIV_A 位配置的 7 位異步預(yù)分頻器(范圍0~2^7),通過 RTC_PRER 寄存器的 PREDIV_S 位配置的 15 位同步預(yù)分頻器(范圍0~2^15)。如下圖所示:
在參考文檔中給出了(f ck_apre)異步預(yù)分頻和(f ck_spre)同步預(yù)分頻的計算公式,(f ck_apre)異步預(yù)分頻主要是亞秒級計數(shù),(f ck_spre)同步預(yù)分頻是普通得日歷計數(shù)(秒級別),在計算兩個預(yù)分頻器時,推薦將異步預(yù)分頻器(PREDIV_A)配置為較高的值,以最大程度降低功耗。如下所示:
若想實現(xiàn)普通計數(shù)功能,例如使用頻率為 32.768 kHz 的 LSE 獲得頻率為 1 Hz 的內(nèi)部時鐘 (ck_spre),為了最大程度降低功耗,PREDIV_A=127,則(f ck_spre)同步預(yù)分頻=32768Hz/(PREDIV_S+1)x(127+1),1Hz=32768Hz/(PREDIV_S+1)x(127+1),
計算得,PREDIV_S=255。
當(dāng)然用戶計算完成后就可以在STM32CubeMX中配置,自動生成配置好的RTC代碼。
總結(jié)
以上是生活随笔為你收集整理的STM32如何计算RTC时钟异步预分频和同步预分频的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python制作抽奖系统
- 下一篇: STM32F103C8/BT6最小系统原