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