3。生成日历计数器1赫兹的时钟,程序分频器寄存器(rtc_prer)。 4。在影子寄存器的起始时间和日期值的负载(rtc_tr和rtc_dr),并设置时间格式(12或24小时)通过在rtc_cr FMT点寄存器。
5。退出初始化模式通过清除初始点。实际日历计数器值然后自动装载和计数重新启动后,4 rtcclk时钟周期。
当初始化序列完成,该subseconds价值也重新初始化,所以,接下来的第二增量可以经过一个完整的二次发生。
注:1、系统复位后,应用程序可以在rtc_isr读其标志寄存器检查是否已初始化或没有日历。如果这个标志为0,日历尚未初始化以来的年字段设置在重置默认值功率(0x00)。 2、初始化后看日历,软件必须首先检查RSF标志是否被置位在rtc_isr寄存器。 日光节约时间
日光节约时间的管理是通过位sub1h,add1h执行,与BCK的rtc_cr寄存器。
使用sub1h或add1h,该软件可以减少或在一个单独的操作到日历中添加一个小时没有经过初始化程序。此外,该软件可以使用BCK点记住这个操作。 编程报警
使用以下过程程序或更新可编程报警(报警): 1。在rtc_cr2明确alrae禁用报警A.
2。调查alrawf直到它被设置在rtc_isr1确保报警寄存器的访问允许。在中等密度的设备,它需要大约2 rtcclk时钟周期(由于时钟同步)。在低,中,高密度器件,alrawf总是集,所以可以跳过这一步。
3。程序报警A寄存器:rtc_alrmassrx和rtc_ alrmassmskr(低,培养基+高密度器件)和rtc_alrmarx。
4。在rtc_cr2寄存器再次置位alrae A。
5。在低,中,高密度器件+设定后,alrae为?1‘,报警有效地保持一个额外的ck_apre循环失活。换句话说,一个报警这是一套发生在第一次启用后的第二更新会报警 戴面具。
注意:在rtc_cr2登记每个变化考虑在内后约2 rtcclk时钟由于时钟同步周期。 编程自动唤醒定时器
以下的序列是必需的配置或改变唤醒定时器装载值: 1。在rtc_cr2清除WUTE禁用唤醒定时器。 2。调查wutwf直到它被设置在rtc_isr1确保唤醒自动装弹的访问计数器和wucksel [2:0]位是允许的。它需要大约2 rtcclk时钟周期(由于时钟同步)。
3。程序价值为唤醒定时器(rtc_wutrl和rtc_wutrh)并选择所需的时钟(wucksel [2:0]位rtc_cr1)。
4。在rtc_cr2寄存器组屋特使计时器再次。唤醒定时器将重新启动向下计数。 24.3.6看完日历
●在中等密度的设备,或者当bypshad清除:
为了读取RTC寄存器(rtc_ssrx日历,rtc_trx和rtc_drx)正确,系统时钟频率(fsysclk)必须等于或大于四倍的frtcclk RTC时钟频率。这可以确保一个安全的行为 同步机制。
RSF位设置在trtc_isr寄存器每当日历寄存器复制 在rtx_ssrx,rtc_trx和rtc_drx影子寄存器。副本 执行每rtcclk周期。确保价值观之间的一致性
软件读取日历,所有的影子寄存器的更新(rtc_ssrl,
rtc_ssrh,rtc_tr1,rtc_tr2,rtc_tr3,rtc_dr1,rtc_dr2和rtc_dr3) 冷冻后rtc_ssrl(低,中,高密度器件+)或rtc_tr1
(中密度的装置)是阅读,直到rtc_dr3读。在低,中, 高密度的设备,如果软件不需要读子二值,它
可以先阅读rtc_tr1和所有的值都是锁定直到rtc_dr3读。 如果软件使阅读在一个时间间隔较小的日历的访问
超过1 rtcclk期:RSF必须清除软件的第一个日历后读, 然后该软件必须等到RSF是反复阅读日历影子寄存器之前。 低功耗模式唤醒后,RSF必须清除软件。软件必须 然后等它重新设置在读rtc_tr和rtc_dr寄存器。的 RSF点必须被清除后唤醒和不在进入低功耗模式。
注:1系统复位后,软件必须等到RSF设置阅读rtc_ssrx之前,
rtc_trx和rtc_drx寄存器。事实上,一个系统复位复位影子寄存器的默认值。 2后,初始化(请参阅第:日历的初始化和配置),或在一个 移位操作(请参阅第24.3.8:时钟同步(低,中,高 密度器件)):软件必须等到RSF设置在读 rtc_ssrx,rtc_trx和rtc_drx寄存器。
●在低,中,高密度器件,当bypshad控制点的 rtc_cr1寄存器设置为1(旁路影子寄存器): 看完日历寄存器值给出了直接从日历计数器, 因此不需要等待RSF是集。这是退出后特别有用 从主动停止从影子寄存器不在活动暂停模式更新。 当bypshad设置为1,不同的寄存器的结果可能不一致 对方如果rtcclk边缘之间发生的两个读访问寄存器。 此外,一个寄存器的值可能不正确,如果rtcclk边缘
在读操作期间发生的。软件必须阅读所有的寄存器和两次, 然后比较结果确认数据是一致的和正确的。
注意:当bypshad设置为1,它读取日历寄存器的指令需要一个 额外的系统循环来完成。
24.3.7重置RTC
日历的影子寄存器(rtc_ssrx,rtc_trx和rtc_drx)和RTC的状态 寄存器(rtc_isrx)复位的复位源的所有可用的系统默认值。 相反,RTC寄存器和控制寄存器的当前日历(rtc_crx),该 分频器的寄存器(rtc_sprex和rtc_apre),唤醒定时器寄存器 (rtc_wutrx)和报警寄存器(rtc_alrmassrx和rtc_alrmarx)是
重置为默认值的上电复位只。他们是不是由一个系统复位的影响。 此外,一旦一个时钟在clk_crtcr时钟控制寄存器启用, 实时时钟继续运行在复位(如果复位源以外的上电复位)。
当上电复位时,RTC是停了下来,所有的寄存器被设置为它们的复位值。
24.3.8时钟同步(低,中,高密度+设备)
在低,中,高密度器件,实时时钟可以同步到一个以高精度远程时钟。看完了一秒,一场(rtc_ssrx)
计算可采用的时间通过远程时钟和时钟之间保持精确的偏移。RTC可以精细调整,消除这种抵消―转移‖的时钟不到一秒钟的rtc_shiftrx寄存器。 读了rtc_ssrx寄存器的同步分频器计数器的值。
这允许计算准确的RTC时间下降到1 /分辨率(prediv_s + 1)
秒。作为一个结果,分辨率可以通过增加同步分频器的改进值(prediv_s [ 14 ]。允许的最大分辨率(30.52μ用
32768赫兹的时钟)是prediv_s集到0x7FFF获得。 然而,增加同步分频器值意味着异步
预分频器值(prediv_a [ 6:0 ])必须降低保持同步分频器的输出在1赫兹。因此,异步分频器的输出频率的增加,这可能会增加动态功耗RTC。 实时时钟可以使用RTC换档控制寄存器微调(rtc_shiftr)。写rtc_shiftr可以转移(无论是延迟或提前)到第二时钟以一个 1 /分辨率(prediv_s + 1)秒。
移位操作,包括添加subfs [ 14 ]值同步分频器
计数器SS [ 15:0 ]:这个延迟的时钟。如果在同一时间add1s设置,这增加了一个 第二,在同一时间减去第二个分数,所以这个进步的时钟。
注意:在开始一个移位操作,用户必须检查SS [ 15 ] = 0为了确保没有溢出发生。
当一个移位操作是由一个写的rtc_shiftrl寄存器进行初始化,SHPF国旗是由硬件来表明一个移位操作挂起。这一点是由硬件清除尽快移位操作已完成。
24.3.9 RTC光滑的数字校准(低,中,高 密度的设备)
在低,中,高密度器件,实时时钟频率可以被数字校准 与约0.954 ppm的?487.1 + 488.5 ppm的范围的分辨率。的 的频率校正是用小的调整(增加和/或完成 扣除个人rtcclk时钟周期)。这些调整是均匀分布 所以,RTC以及校准即使观察在短时间内。
校准是在一个周期约220 rtcclk时钟周期,或32秒时,输入频率为32768赫兹。 校准寄存器(rtc_calrx)指定要被掩盖在32秒周期的rtcclk时钟周期数: ●设定点平静[ 0 ] 1的原因只有一个脉冲被掩盖在32— 第二周期。
●设置平静[ 1 ] 1两个额外的周期被掩盖的原因 ●设置SMC [ 2 ] 1造成额外的四周期被掩盖的,
●等多达SMC [ 8 ]设置为1,使256个时钟被掩盖的。 而平静的位允许减少时钟频率高达487.1 ppm的罚款 的分辨率,rtc_calrh寄存器位CaLP可以用来增加频率
488.5 ppm。设置此位1有效地插入一个额外的rtcclk时钟周期的每一个 211 rtcclk周期,这意味着512个时钟周期期间每32秒增加。
使用与CaLP平静的位,偏移量从511到512?rtcclk周期可以在每32秒增加。这相当于一个?校准范围487.1至488.5 ppm的约0.954 ppm的决议。
计算有效校准频率的计算公式(如果)给定的输入频率(frtcclk)如下:
校准时,prediv_a<3
的CaLP点不能设置为1时,异步分频器值(prediv_a位
rtc_aprer寄存器)小于3。如果头皮已设置为1和prediv_a位 设置为小于3的值,卡尔普被忽略和校准操作如卡尔普是 等于0。
与prediv_a小于3进行校准,同步分频器值 (prediv_s)应减少,二是由8 rtcclk时钟加速
周期,这相当于增加256个时钟周期,每32秒。作为一个结果, ?之间255和256个时钟脉冲(对应于从243.3到??校准范围 244.1 ppm)可以有效地在每32秒使用只有平静的位加。
32768赫兹的名义rtcclk频率,当prediv_a等于1(2分频因子),prediv_s应设置为16379而不是16383(4以下)。唯一的其他
有趣的是当prediv_a等于0,prediv_s应设置为32759而 超过32767(8以下)。
如果prediv_s是减少这种方式,给出了校准的输入时钟的有效频率的计算公式如下:
在这种情况下,冷静[7:0]等于0x100(平静的范围的中点)是正确的设置,如果rtcclk正好是32768赫兹。
RTC的校准验证
RTC精度的测量rtcclk精确的频率和计算正确的定值和卡尔普值。然而,对于某些应用,标准规定,RTC精度测量和每个设备验证。一个可选的1 Hz的输出为低,中等+和高密度设备允许应用程序
测量和验证的RTC精度。
在一个有限的时间间隔测量的RTC的精确频率可以导致 在测量期间,高达2 rtcclk时钟周期测量误差, 根据数字校准周期的测量周期排列的。
然而,这种测量误差可以测量周期的校准周期相同长度的消除。在这种情况下,唯一的误差观察到的是由于错误的数字校准的分辨率。 ●默认情况下,校准周期为32秒。
使用这种模式下,在整整32测量1 Hz的输出精度
秒的保证措施是在0.477 ppm(0.5 rtcclk周期超过32秒,由于校准的分辨率的限制)。 ●交替的,rtc_calrh注册calw16点可以被设置为1,力16— 第二校准周期。
在这种情况下,RTC精度测量可以在16秒和0.954 ppm的最大误差(0.5 rtcclk周期超过16秒)。然而,由于
降低分辨率的长期RTC的校准,精度也降低到0.954 ppm的:平静[ 0 ]和calw16不能同时设置为1。
●减少校准周期为8秒,在rtc_calrh的calw8点
寄存器可以设置为1。在这种情况下,RTC精度可测量在8 用1.907 ppm的最大误码秒(0.5 rtcclk周期超过8S)。长
长期RTC精度也降低到1.907 ppm的:平静[1:0]位停留在00的时候 calw8设置为1。 在飞行中重新校准
校准寄存器(rtc_calrh / rtc_calrl)可以动态更新而rtc_isr1 / initf = 0,通过使用以下过程: 1。调查rtc_isr1 / recalpf(重新校准未决标志)。
2。如果它被设置为0,写rtc_calrh新值,如果必要的话。 3写的rtc_calrl寄存器。recalpf则被自动设置为1。 4。在写操作rtc_calrl后三ck_apre周期内,新的 校准设置生效。
24.3.10篡改检测(低,中,高密度+设备) 有三的篡改检测输入。每一个与相关联的标志
tamp1f / tamp2f / tamp3f在rtc_isr2寄存器。每个输入可以通过设置相应的tamp1e / tamp2e / tamp3e位1启用。篡改检测控制位在rtc_tcr1和rtc_tcr2寄存器。 通过设置在rtc_tcr1注册tampie点,产生中断时
篡改检测事件发生。篡改检测事件时产生的2,4,或8个连续样品(取决于tampflt点)是通过tamptrg点配置的水平观察。
篡改输入预充电通过I/O内阻之前的状态进行采样,除非拉是通过设置tamppudis 1残疾人。持续的时间
预充电的tampprch位决定,允许在更大的电容 篡改输入。
之间的权衡延迟和功耗的篡改检测任何通过弱上拉可以通过使用tampfreq确定采样频率优化水平检测。
注:对上拉电阻的电气特性指的是数据表。
24.3.11校准时钟输出
当COE位设置为1的rtc_cr3寄存器,一个参考时钟设置在rtc_calib装置输出。如果COSEL比特(位3在rtc_cr3寄存器)复位和prediv_a = 0x7F的频率,rtc_calib frtcclk / 64。这相当于校准输出在512赫兹的频率在32.768千赫rtcclk。 注:本rtc_calib周期不规则:有下降沿光抖动。因此, 推荐使用上升沿。
在低,中,高密度器件,如果COSEL设置和―prediv_s + 1‖是一个非— 零256的倍数(即:prediv_s [7:0] = 0xFF),rtc_calib频率frtcclk /(256× (prediv_a + 1))。这对应于一个校准输出分频器默认为1赫兹 值(prediv_a = ox7f,prediv_s = 0xFF),一个rtcclk频率在32.768千赫。
24.3.12报警输出
两个函数可以对报警输出选择:alraf,和wutf。他们反映相应的标志寄存器的内容。在沃瑟[1:0]控制位在rtc_cr3寄存器是用来激活和选择功能,输出rtc_alarm。输出的极性是由rtc_cr3 POL控制位确定:所选择的标志位相反的输出rtc_alarm当POL位设置为1。