ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
外设总线时钟 (ULPCLK) 与 RTC 时钟源 (RTCCLK) 异步。因此,在读取和写入某些 RTC 外设寄存器时必须特别小心。
RTC 计数器/日历寄存器每秒更新一次。为了避免在更新时读取任一计数器/日历寄存器(因为这样会导致读取无效时间),提供了一个避让窗口。避让窗口大约在计数器更新前 128/32768 秒。在避让窗口期内,STA 寄存器中的只读 RTCRDY 位被复位,在避让窗口期之外则被置位。在 STA 寄存器中的 RTCRDY 位被复位时,对计数器/日历寄存器的任何读取都可能无效,并且时间读取应被忽略。
RTCRDY 中断机制也可被用于安全读取 RTC 计数器/日历寄存器。如果启用了 RTCRDY 中断,基于 RTCRDY 位的上升沿产生中断,从而设置 RTCRDY 中断标志。这时,应用就会有将近 1 秒整的时间来安全读取任何或所有 RTC 寄存器。为了确保安全读取,可以在中断服务例程中再次读取 STA 寄存器中的 RTCRDY 位,并且可以禁用其他中断。该同步过程可阻止在计数器/日历转换期间读取时间值。当中断得到响应后,RTCRDY 中断标志被自动复位,也可以由软件将其复位。
RTC 计数器/日历寄存器可随时写入。写入日历寄存器需要 2 到 3 个 RTCCLK 周期才能生效。如果对计数器/日历寄存器执行背对背写操作,那么在 2-3 个 RTCCLK 周期内,该寄存器可能会被设置为一个未定义的值。因此,需要避免对日历寄存器进行背对背写入。请注意,由于同步,如果在写入日历寄存器之后立即执行读取操作,则回读值始终是实际计数器值。由于同步新写入的值需要 2-3 个 RTCCLK 周期,因此该值可能与写入的值不同。
下列寄存器受上述限制的影响:SEC、MIN、HOUR、DAY、MON、YEAR。
可随时读取 RTC 控制寄存器 (CTL)。只有当 TEV(间隔计时器)中断被禁用并设置了 RTCRDY 中断后,才应写入 CTL 寄存器。
以下寄存器受上述限制的影响:CTL。
可随时读取 RTC 报警配置寄存器。当相应报警中断被禁用并设置了 RTCRDY 中断后,必须完成对报警寄存器的写入。
下列寄存器受上述限制的影响:A1MIN、A1HOUR、A1DAY、A2MIN、A2HOUR、A2DAY。
只有当设置了 STA 寄存器中的 RTCTCRDY 位时,才能对偏移校正寄存器 (CAL) 和温度补偿寄存器 (TCMP) 进行写入。RTCTCRDY 是一个只读位,在硬件准备引入新的校正或补偿值时设置该位。RTCTCRDY 被清除时应用的写入无效。STA 寄存器中提供了 RTCTCOK 状态位。如果写入 CAL 或 TCMP 成功,则将设置 RTCTCOK,否则它将被复位。在尝试下一次写操作之前,RTCTCOK 将保持其状态。如果写入不成功,当设置 RTCTCRDY 时,软件需要重新尝试写入。
下列寄存器受上述限制的影响:TCMP、CAL。
可以随时读取预分频器间隔控制寄存器。只有当 PS0 和 PS1 中断被禁用时,才应该对预分频器控制寄存器执行写操作。
下列寄存器受上述限制的影响:PSCTL。