STM32H743 RTC精密数字校准 深度剖析

一、问题

       项目中数据报文收到的RTC时间总是会慢一些,经过实际几天的测试得出结论:24小时要慢5S左右。根据手册我了解到可以有误差但不会差这么多,所以进行了如下分析并解决问题。

二、分析

1.影响RTC准确性的因素罗列

· 硬件基础误差(也就是待校准部分)                -- 校准解决

· 软件复位误差(复位一次大概会慢不到1S)    -- 校准解决

· 晶振受温度影响带来的误差                              -- 动态温度补偿

下面针对各项误差进行逐一解决

2.RTC配置-STM32CubeMX

        我使用的RTC时钟源采用外部低速的32.768kHz晶振,通过异步分频器的128分频和同步分频器的256分频,最终得到ck_spre = 32768/128/256=1Hz。

3.RTC框图

        由上图可知,RTC有一个精密校准功能,同时RTC可以输出RTC_CALIB,也就是我们在配置界面所添加的Calibration功能,配置完后,可以在输出引脚用示波器测量频率1 Hz 时钟输出。那么接下来我们着重说一下配置精密校准方式,也是困惑我好几天的一个点。

3.RTC精密数字校准

        精密校准就是直接在RTC的时钟源,对一个周期内(一般为32s)的RTC时钟个数,进行增加和/或减少单独的 RTCCLK 脉冲,从而实现频率校正。

       阅读参考手册中的一些内容,第一遍我并没有看明白啥意思,然后我开始研究相关函数,经过查找,确定了两个有关系的函数:平滑校准函数和同步移位控制函数。

第一个函数:平滑校准函数

研究这个函数时我没读明白英文的意思,其实就是不明白后边两个参数到底要干嘛,于是我参考上图参考手册的说明,明白了大概说的是一个意思:可调块,也可调慢。这正是我想要的功能,那接下来就是研究如何调。继续阅读我理解到:

第三个参数(CALP):SmoothCalibPlusPulses ,选SET就是调快512个RTCCLK,选RESET就是不调快。

第四个参数(CALM):SmoothCalibMinusPulsesValue,这个参数就是需要调慢的具体数值,取值范围是0-0x1FF。

/*** @brief  Set the Smooth calibration parameters.* @param  hrtc RTC handle* @param  SmoothCalibPeriod Select the Smooth Calibration Period.*          This parameter can be can be one of the following values :*             @arg RTC_SMOOTHCALIB_PERIOD_32SEC: The smooth calibration period is 32s.*             @arg RTC_SMOOTHCALIB_PERIOD_16SEC: The smooth calibration period is 16s.*             @arg RTC_SMOOTHCALIB_PERIOD_8SEC: The smooth calibration period is 8s.* @param  SmoothCalibPlusPulses Select to Set or reset the CALP bi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊,shopee,lazada自养号测评:提高店铺曝光,增加产品销量

如何在较短的时间内让自己的店铺排名升高,提高产品销量,除了依靠选品和广告之外,亚马逊测评 在店铺的运营中也是必不可少的环节。 自养号测评对亚马逊卖家来说,是运营店铺的重要手段之一。一个产品想要有更好的曝光、更高的转化率…

一个开源的汽修rbac后台管理系统项目,基于若依框架,实现了activiti工作流,附源码

文章目录 前言&源码项目参考图: e店邦O2O平台项目总结一、springboot1.1、springboot自动配置原理1.2、springboot优缺点1.3、springboot注解 二、rbac2.1、概括2.2、三个元素的理解 三、数据字典3.1、概括与作用3.2、怎么设计3.3、若依中使用字典 四、工作流—…

剪辑视频怎么把说话声音转成文字?

短视频已然成为了一种生活潮流,我们每天都在浏览各种短视频,或者用视频的形式记录生活,在制作视频的时候,字幕是一个很大的问题,给视频添加字幕可以更直观、更方便浏览。手动添加太费时间,下面就给大家分享…

使用VSCode调试全志R128的C906 RISC-V核心

使用 VSCode 调试 调试 XuanTie C906 核心 准备工具 T-Head DebugServer(CSkyDebugServer) - 搭建调试服务器 下载地址:T-Head DebugServer手册:T-Head Debugger Server User Guide驱动:cklink_dirvers VSCode - 开…

邮箱设置第三方登录授权码获取

以QQ邮箱为例 QQ邮箱设置——账户 开启POP3/SMTP服务——完成验证后获得授权码,保存授权码

吴恩达《机器学习》9-1-9-3:反向传播算法、反向传播算法的直观理解

一、正向传播的基础 在正向传播中,从神经网络的输入层开始,通过一层一层的计算,最终得到输出层的预测结果。这是一种前向的计算过程,即从输入到输出的传播。 二、反向传播算法概述 反向传播算法是为了计算代价函数相对于模型参数…

惠普打印机秋季新品震撼登场,以卓越品质赢得用户信赖,打造无限创新打印体验

北京,2023年11月20日 —— 今日, 2023惠普打印机秋季新品发布暨合作伙伴大会于北京举办。本次发布会以“品质 信赖,创新无界”为主题,惠普公司面向中国市场推出了四大系列、四十三款全新的打印产品,进一步丰富了其在细…

想做副业在哪里找?做好这些副业平台就够了

每个人在生活中都有一些额外的需求和理想,所以越来越多的人开始寻找副业来实现小目标。但是,但是寻找副业的过程并不容易,需要考虑到自己的时间和能力,还有选择一个靠谱的平台。其实,副业平台并不太难,只要…

2024年全网最全的Jmeter+ant+jenkins实现持续集成教程

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具,并配置好环境变量;参考:https://www.cnblogs.com/YouJeffrey/p/16029894.html jmeter默认保存的是.jtl格式的文件,要设置一下bin/jmeter.properties,文件内容…

八股文-TCP的四次挥手

TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它的连接的建立和关闭过程都是经过精心设计的。在TCP连接关闭时,使用四次挥手来保证数据的完整传输和连接的正常终止。 漫画TCP的四次挥手 第一次挥手&#…

Linux下快速确定目标服务器支持哪些协议和密码套件

实现原理是利用TLS协议的特点和握手过程来进行测试和解析响应来确定目标服务器支持哪些TLS协议和密码套件。 在TLS握手过程中,客户端和服务器会协商并使用相同的TLS协议版本和密码套件来进行通信。通过发送特定的握手请求并分析响应,可以确定目标服务器…

财报中连创佳绩,饿了么做对了什么?

双十一刚刚过去,相较于往年定时网购、等待收货的固定流程,这两年,越来越多的消费者开始通过“外卖”形式参与这场消费狂欢:从下单到收货,只有30分钟的等待。而伴随消费者收获越来越多的便利,即时电商业态也…

Vue3 使用教程

目录 一、创建vue3工程1. 使用vue-cli创建2.使用 vite 创建 二、setup使用三、ref函数四、reactive函数五、计算属性与监视属性5.1 computed函数5.2 watch函数5.3 watchEffect函数 六、自定义hook函数七、toRef函数八、shallowReactive 与 shallowRef九、readonly 与 shallowRe…

Netty源码学习4——服务端是处理新连接的netty的reactor模式

零丶引入 在前面的源码学习中,梳理了服务端的启动,以及NioEventLoop事件循环的工作流程,并了解了Netty处理网络io重要的Channel ,ChannelHandler,ChannelPipeline。 这一篇将学习服务端是如何构建新的连接。 一丶网络包…

开发知识点-uniapp微信小程序-开发指南

uniapp Vue的原型链生命周期函数onLoaduni.chooseLocationgetCurrentPages美团外卖微信小程序开发uniapp-美团外卖微信小程序开发P1 成果展示P2外卖小程序后端,学习给小程序写http接口P3 主界面配置P4 首页组件拆分P13 外卖列表布局筛选组件商家 布局测试数据创建样…

flink的window和windowAll的区别

背景 在flink的窗口函数运用中,window和windowAll方法总是会引起混淆,特别是结合上GlobalWindow的组合时,更是如此,本文就来梳理下他们的区别和常见用法 window和windowAll的区别 window是KeyStream数据流的方法,其…

【运维篇】Redis常见运维命令详解

文章目录 1. 前言2. 连接管理命令详解2.1 AUTH命令2.2 PING命令2.3 SELECT命令2.4 QUIT命令 3. 服务器管理命令详解3.1 FLUSHALL命令3.2 SAVE/BGSAVE命令3.3 SHUTDOWN命令 4. 安全管理命令详解4.1 CONFIG命令4.1.1 CONFIG SET命令用法4.1.2 CONFIG GET命令用法 4.2 AUTH命令 5.…

什么是美颜SDK?直播美颜SDK技术深度剖析

在实现实时美颜的过程中,美颜SDK扮演着关键的角色,它为开发者提供了一套强大的工具,使得实时美颜效果能够轻松应用于直播平台。 一、美颜SDK的基本概念 美颜SDK是一种软件工具包,通过集成了丰富的图像处理算法和实时计算技术&a…

springboot使用MongoTemplate根据正则表达式查询日期数据

一、日期正则表达式测试 匹配HH:mm:ss正则表达式写法有很多列举两个 .(点)代表任意匹配 ^必须以xxx开头, 如^[a-z],必须以a-z的字母开头 : 精确匹配,必须是: ([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9]) ^([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$ ([0-1]?…

MIUI查看当前手机电池容量

MIUI查看当前手机电池容量 1. 按如下步骤操作生成bug报告 2. 按如下操作解压bug报告 Last learned battery capacity