RTC精度及校准

RTC精度偏差:

        RTC的基准时间和精度与石英晶体的频率相关,晶体的谐振频率取决于温度,因此RTC性能与温度相关,晶体的频率偏差是晶体正常频率的温度反转函数。

一、硬件方面:

1.使用高精度振荡器的RTC模块;

2.使用自带温补的RTC芯片;

3.使用温度补偿晶体振荡器;

4.电路中的晶振负载电容值、阻抗控制、布局时考虑电磁干扰;

5.供电电池的状态;

以上几个方面可以减小硬件带来的精度偏差。

二、软件方面:

1.使用网络时间协议(NTP)服务器同步时间;

2.外部时钟源(如GPS)进行校准;

3.STM32内部RTC校准测量误差,开发校准算法:

        STM32内部RTC精度不高,一般采用两种方法进行补偿;

(1)实测RTC的运行偏差,与标准时钟做对比,例如:每30天跑快的秒数偏差,计算ppm误差;

        校准公式:

        ppm误差=偏差s/基准值s*10^{6}

        例如:每30天跑快的秒数偏差为1.7S,那么误差为1.7s/(30*24*60*60)*10^{6}=0.65ppm。根据计算得到的误差值,查表(AN2604.pdf)得到校准值;

        表格数据转换的计算公式:

        假设校准值为1,每2^{20}时钟周期扣除1个时钟脉冲(注:STM32使用一个周期计数器进行校正,这个数字校正器通过从2^{20}个时钟周期减去0~127个周期的方法校正),(1/2^{20})*10^{6}=0.954ppm ,由于校准值最大为127 ,因此最大可以减慢(0.954*127)=121ppm。

        每30天快1s精度计算:

        1s/(30*24*60*60)*10^{6}=0.386ppm

        假设每30天偏差为100,偏差=100*0.386/0.954=29.97≈30,校准值为30。由此将校准值传入库函数BKP_SetRTCCalibrationValue(校准值)中补偿。

(2)测量TamperPin频率值(需要使用高精度频率计),计算ppm误差:

        局限性:

        校准的精度依赖于主时钟精度(例如STM32使用8M晶振作为主频);RTC校准寄存器只能对跑快时间校准,那么跑慢的时间校准,就需要软件配置晶振值为其范围的最小值。

        方法:

        采用软件自动校准+用户手动校准的方法,使用定时器T2对TamperPin的频率值自动测量,例如晶振使用32.768KHz±2Hz,那么32766作为基准频率,TamperPin=32766hZ/64=511.968Hz,然后使用高精度频率计测量TamperPin频率值,若实测值TamperPin=511.982Hz,误差为(511.982-511.968)/511.968*10^{6}=27.35ppm,查表(AN2604.pdf)得到校准值为28。

        注意:STM32复位会对RTC偏差有影响;

 4.RTC芯片配置校准:

(1)模拟微调寄存器ATR0~5,共6个模拟微调位调整片内负载电容值,用于RTC频率补偿;

(2)数字微调寄存器DTR0-2,共3个调整每秒钟的平均计数值和平均ppm误差;

        采用ATR+DTR微调结合的方法,可调ppm范围更大,具体可参考使用的芯片规格书。

       

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

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

相关文章

MongoDB 基础与应用

一、引言 在当今的数据驱动时代,数据库的选择对于应用程序的性能和可扩展性至关重要。MongoDB 作为一种流行的非关系型数据库,以其灵活的数据模型、强大的可扩展性和高可用性,受到了广泛的关注和应用。对于 Javaer来说,了解 Mongo…

了解bootstrap改造asp.net core MVC的样式模板

我们都知道,在使用默认的asp.net core MVC模板建立项目的时候,里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件,里面有大量的样式类的定义&…

流类库与输入输出

来源:《C语言程序设计》 像C语言一样,C语言也没有输入输出语句。 但C标准库中有一个面向对象的输入输出软件包,即I/O流类库。 流是I/O流类的中心概念。 ------ I/O流类库是C语言中I/O函数在面向对象的程序设计方法中的一个替换产品。 -…

cocos creator 3.8.3物理组件分组的坑

坑,坑的不行的大坑 group用的二进制的左移获取十进制的数值 目前是这样判断的,也不知道对不对,什么get、set Group没找到

hhdb数据库介绍(9-4)

访问安全 权限体系 计算节点有两类用户,一类是计算节点数据库用户,用于操作数据,执行SELECT,UPDATE,DELETE,INSERT等SQL语句。另一类是关系集群数据库可视化管理平台用户,用于管理配置信息。此…

基于MFC实现的赛车游戏

一、问题描述 游戏背景为一环形车道图,选择菜单选项“开始游戏”则可开始游戏。游戏的任务是使用键盘上的方向键操纵赛道上的蓝色赛车追赶红色赛车,红色赛车沿车道顺时针行驶,出发点和终点均位于车道左上方。任一赛车先达到终点则比赛结束。…

RHCE的学习(12)

第九章 Ubuntu 什么是Ubuntu 概述 Ubuntu(乌班图)属于Debian系列,Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。 Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch&…

【案例】故障雪花屏

开发平台:Unity 6.0 开发工具:Shader Graph 参考视频:【U2D Shader Graph】❄️雪❄️花❄️屏❄️   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路:雪花屏幕效果 (混合) 原图像 最终图像…

图像手动标注-labelme+yolo格式导出

conda环境 运行以下命令来激活你的虚拟环境: conda activate labelme如果你没有创建 labelme 环境,首先需要创建一个环境并安装 labelme: conda create -n labelme python3.8 conda activate labelme conda install -c conda-forge labelm…

有什么办法换网络ip动态

在数字化时代,网络已成为我们生活、工作不可或缺的一部分。然而,随着网络应用的日益广泛,IP地址作为设备在网络中的唯一标识,其重要性不言而喻。动态换IP,作为一种灵活且高效的网络技术,正逐渐受到越来越多…

unity实习生面试

北京教育中厂的成都分部 11.5 时长有28分钟 一面二面合并了 面试官人挺好的,也不是特别急,答的不是很好的问题面试官直接跳过了 顺序不是很统一 只写记得的部分 1.问了值类型和引用类型的区别 2. 问了ugui的组件有哪些 ugui有哪些优化方案 答用打图集…

Spring Boot中集成MyBatis操作数据库详细教程

目录 前言1. 项目依赖配置1.1 引入MyBatis和数据库驱动依赖1.2 数据源配置 2. 创建数据库映射实体类3. 创建Mapper层接口4. 创建Service层4.1 定义Service接口4.2 实现Service接口 5. 创建Controller层6. 运行和测试项目6.1 启动项目6.2 测试接口 7. 总结 前言 在Java开发中&a…

OpenCV相机标定与3D重建(2)鱼眼相机模型

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 鱼眼相机是一种具有非常宽视野的相机,通常会产生强烈的径向畸变。鱼眼相机模型旨在捕捉这种畸变,以便能够准确地处理和校…

Matplotlib 绘图艺术:从新手到高手的全面指南

引言 在数据科学和机器学习领域,数据可视化是一项至关重要的技能。一个优秀的可视化图表可以直观地展示数据的内在规律,帮助我们更好地理解数据,并做出更明智的决策。而在众多的绘图库中,Matplotlib 是 Python 中最强大、最灵活的…

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏 目录 文章目录 【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果代码推荐阅读指数&…

RocketMQ部署教程

拉取 RocketMQ 镜像: 首先,从 Docker Hub 获取最新的 RocketMQ 镜像: docker pull apache/rocketmq:latest创建 Docker 网络: 为了使各容器之间能够通信,创建一个名为 rocketmq 的网络: docker network cre…

ORACLE批量插入更新如何拆分大事务?

拆分大事务 一、批量插入更新二、拆分事务之前文章MYSQL批量插入更新如何拆分大事务?说明了Mysql如何拆分,本篇文章探讨Oracle或OceanBase批量插入更新拆分大事务的问题 一、批量插入更新 oracle批量插入更新可使用merge语法eg: merge test ausing test_tmp bon (a.id = b.id…

鸿蒙next打包流程

目录 下载团结引擎 添加开源鸿蒙打包支持 打包报错 路径问题 安装DevEcoStudio 可以在DevEcoStudio进行打包hap和app 包结构 没法直接用previewer运行 真机运行和测试需要配置签名,DevEcoStudio可以自动配置, 模拟器安装hap提示报错 安装成功,但无法打开 团结1.3版本新增工具…

chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB

目录 chatgpt3.5权重参数有多少MB llama7B权重参数有多少MB chatgpt3.5权重参数有多少MB 关于ChatGPT 3.5的权重参数占用的存储空间大小,虽然直接给出具体的MB数值可能较为困难(因为这取决于多种因素,如参数表示的精度、是否进行了压缩等),但可以根据其参数量来估算一个…

基于Jeecgboot3.6.3vue3的flowable流程online表单的审批使用介绍

更多技术支持与服务请加入我的知识星球或加我微信,名称:亿事达nbcio技术交流社区https://t.zsxq.com/iPi8F 今天介绍一下基于jeecgboot3.6.3的flowable流程使用online表单进行审批的情况 1、首先建立一个online应用类型的流程,如下: 2、进行…