打印
[APM32F4]

F411RTC_OUT PIN时钟输出

[复制链接]
276|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peixu|  楼主 | 2023-11-29 18:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Peixu 于 2023-11-30 11:30 编辑

使用APM32F411实现RTC时钟输出的步骤详解介绍
在APM32F411中控制器中内置 1 个了 RTC模块,通过RTC结构框图可以看到时钟输入源引脚分别可以选择: LSECLK 信号输入引脚(OSC32_IN、OSC32_OUT)、HSECLK 信号输入引脚(OSC_IN、OSC_OUT)、LSICLK低速内部时钟输入。并且拥有一个1 个 TAMP 输入信号检测引脚(RTC_TAMP1);默认由 VDD供电,当 VDD断电时,可自动切换至 VBAT供电,RTC 配置及时间数据不丢失;产生系统复位、软件复位、电源复位时,RTC 配置及时间数据不丢失;支持闹钟、日历功能。

RTC_OUT 可以由以下两种的其中一种形式输出:
  • RTC_CALIB:通过 RTC_CTRL 寄存器的 CALOEN 位开启此输出,当 LSECLK 的频率是32.768kHz 时,时钟输出为 512Hz 或者 1Hz。
  • RTC_ALARM:通过 RTC_CTRL 寄存器的 OUTSEL 位开启此输出,闹钟 A。
接下来介绍如何使用RTC_OUT PIN 输出时钟为 512Hz 或者 1Hz的实验,这样我们就能直观的看出RTC时钟误差。
RTC时钟输出校准的重要性:
实时时钟(RTC)在许多嵌入式系统中扮演着至关重要的角色,用于提供准确的时间信息。RTC的时钟输出的准确性对于时间相关的应用非常重要,例如数据记录、定时任务以及时间敏感型应用。然而,所有的时钟都存在一定程度的漂移,这可能会导致时钟输出与实际时间存在微小差异。因此,RTC时钟输出的校准至关重要,以确保时间的精确性。

RTC时钟输出校准的原因:
RTC时钟输出的不准确性可能源自多个因素。硬件方面可能存在晶体振荡器的频率误差或环境温度变化,软件方面可能存在时钟计数器的漂移。这些因素都可能导致RTC时钟输出的不准确性。因此,校准RTC时钟输出是为了纠正这些误差并使其保持与实际时间的一致性。
使用RTC_LSE的外部低速时钟32.768KHz时钟配置:
Struct.AsynchPrediv = 0X7F(十进制127);
Struct.SynchPrediv  = 0XFF(十进制255);
时钟 = LSE/[(255+1)*(127+1)] = 1HZ  

void RTC_LSE_Init(void)
{
......
使用40Khz的LSI内部低速时钟的话设置为:
Struct.AsynchPrediv = 0X63(十进制99);
Struct.SynchPrediv  = 0X18F(十进制399);
40 000 = 400 * 100 ;  

void RTC_LSI_Init(void)
{
   ......
    RTC_ConfigStructInit(&Struct);
    Struct.AsynchPrediv = 0X63;
    Struct.SynchPrediv  = 0X18F;
    RTC_Config(&Struct);
}

配置完成RTC时钟源后,重点加入以下2行代码。
RTC_ConfigCalibOutput(RTC_CALIBOUTPUT_1Hz);
RTC_EnableCalibOutput();

RTC_ConfigCalibOutput(RTC_CALIBOUTPUT_512Hz);
RTC_EnableCalibOutput();






使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

39

帖子

0

粉丝