[IMX] 08.RTC 时钟

news2025/5/30 14:55:30

代码链接:GitHub - maoxiaoxian/imx


目录

1.IMX 的 SNVS 模块

2.SNVS 模块的寄存器

2.1.命令寄存器 - SNVS_HPCOMR

2.2.低功耗控制寄存器 - SNVS_LPCR

2.3.HP 模式的计数寄存器 MSB - SNVS_HPRTCMR

2.4.HP 模式的计数寄存器 LSB - SNVS_HPRTCLR

2.5.LP 模式的计数值 - SNVS_SRTCMR & SNVS_SRTCLR


实时时钟 (Run Time Clock, RTC) 用于提供年、月、日及时间信息,并且系统断电后时钟仍会继续运行

RTC 可以通过专用的实时时钟芯片实现,但大多数 MCU 或 MPU 内部自带实时时钟模块,比如 I.MX6U 内部的 SNVS (Secure Non-Volatile Storage) 模块就提供了 RTC 功能

1.IMX 的 SNVS 模块

I.MX6U 的 SNVS 模块提供实时时钟的功能,该模块包含一个实时计数器 RTC 和一个单调计数器

SNVS 中的外设在芯片掉电后由电池供电继续运行,I.MX6U-ALPHA 开发板上有一个纽扣电池,该纽扣电池在主电源关闭后为 SNVS 供电,如下图所示:

纽扣电池在开发板掉电后继续给 SNVS 模块供电,因此实时计数器 RTC 会一直运行,时间信息不会丢失

在有纽扣电池作为后备电源的情况下,不管系统主电源是否断电,SNVS 都会正常运行

SNVS 模块包含两部分:

  • SNVS_HP:高功耗 SNVS,由系统电源供电,系统主电源断电后 SNVS_HP 也会断电;

  • SNVS_LP:低功耗 SNVS,由系统电源和外部备用电源供电,系统主电源断电后,后备电源 (纽扣电池) 继续为 SNVS_LP 供电,且 SNVS_LP 和芯片复位隔离,因此 SNVS_LP 相关寄存器的值会一直保存;

SNVS 模块的结构如下图所示:

图中各标号部分的作用如下:

  1. VDD_HIGH_IN 为系统/芯片的主电源,该电源会同时给 SNVS_HP 和 SNVS_LP 供电;

  2. VDD_SNVS_IN 为纽扣电池,该电源只会给 SNVS_LP 供电,保证 SNVS_LP 在系统主电源 VDD_HIGH_IN 掉电后继续运行;

  3. SNVS_HP 部分,此部分包含一个 SRTC (Secure Real Time Clock);

  4. SNVS_LP 部分,此部分包含一个 SRTC;

SNVS_HP 和 SNVS_LP 内部都有一个 SRTC,但 SNVS_HP 在系统掉电后会关闭,所以本章实验使用 SNVS_LP 内部的 SRTC

SRTC 的本质是一个定时器,需要外部提供一个 32.768KHz 的时钟源,I.MX6U-ALPHA 核心板上的 32.768KHz 晶振为 SNVS 的时钟源

SNVS 模块的寄存器 SNVS_LPSRTCMR 和 SNVS_LPSRTCLR 保存秒数,直接读取这两个寄存器的值可以得知其运行了多长时间,一般以 1970 年 1 月 1 日为起点,加上经过的秒数得到现在的时间和日期,SRTC 带有闹钟功能,可以在寄存器 SNVS_LPAR 中写入闹钟的时间值,当时钟值和闹钟值匹配时会产生闹钟中断

2.SNVS 模块的寄存器

2.1.命令寄存器 - SNVS_HPCOMR

SNVS_HPCOMR 寄存器控制 SNVS 模块的寄存器访问权限和模块复位功能,其结构如下:

  • NPSWA_EN:控制非特权软件的访问权限,该位置 1 后,允许非特权软件访问所有 SNVS 寄存器,包括只允许特权软件读/写访问的寄存器:

    • 0:仅特权软件可以访问特权寄存器;

    • 1:非特权软件可以访问特权寄存器;

  • LP_SWR_DIS:LP 软件复位控制,该位置 1 后禁止 LP 软件执行复位,仅系统复位才能清除该位:

    • 0:允许 LP 软件执行复位;

    • 1:禁止 LP 软件执行复位;

  • LP_SWR:LP 软件复位请求,将该位置 1 后,复位 SNVS_LP 部分,当 LP_SWR_DIS 置 1 时无法设置该位(无法复位 SNVS_LP),该位会在复位完成后自动恢复为 0:

    • 0:不执行任何操作;

    • 1:复位 SNVS_LP;

2.2.低功耗控制寄存器 - SNVS_LPCR

SNVS_LPCR 寄存器控制低功耗部分的功能,其结构如下所示:

  • PK_OVERRIDE[23]:PMIC ON 请求覆盖,向该位写 1 覆盖 IOMUX 中 PMIC I/O 引脚的功能复用;

  • PK_EN[22]:PMIC ON 使能,该位置 1 关闭 PMIC I/O 引脚的上拉/下拉电阻;

  • ON_TIME[21:20]:SoC 上电前,当 BTN 信号有效后,PMIC 上电的延迟时间:

    • 00:500 ms off->on 延迟;

    • 01:50 ms off->on 延迟;

    • 10:100 ms off->on 延迟;

    • 11:0 ms off->on 延迟;

  • DEBOUNCE[19:18]:配置 BTN 输入信号的消抖时间:

    • 00:50 ms;

    • 01:100 ms;

    • 10:500 ms;

    • 11:0 ms;

  • BTN_PRESS_TIME[17:16]:PMIC 逻辑按钮的按下超时时间:

    • 00:5 s;

    • 01:10 s;

    • 10:15 s;

    • 11:禁止长按电源键;

  • PWR_GLITCH_EN[7]:默认情况下,检查电源故障时不会检查 pmic_en_b 信号,该位置 1 后会检查该信号:

    • 0:禁用;

    • 1:启用;

  • TOP[6]:关闭系统电源,该位置 1 向电源管理 IC 发送信号,关闭系统电源,电源关闭的同时会将该位置 0,该位仅当 Dumb PMIC 使能时有效:

    • 0:打开系统电源;

    • 1:关闭系统电源;

  • DP_EN[5]:Dumb PMIC 使能,该位置 1 后允许软件控制系统电源,该位置 0 时,PMIC 自动控制系统电源:

    • 0:使能 Smart PMIC;

    • 1:使能 Dumb PMIC;

  • MC_ENV[2]:单调计数器启用和有效,该位置 1 后,允许单调计数器递增 (通过向 LPSMCMR 或 LPSMCLR 写值),当 MC_SL 或 MC_HL 位置 1 时禁止修改该位:

    • 0:单调计数器禁用且无效;

    • 1:单调计数器使能且有效;

2.3.HP 模式的计数寄存器 MSB - SNVS_HPRTCMR

该寄存器保存计数值的高 32 位:

2.4.HP 模式的计数寄存器 LSB - SNVS_HPRTCLR

该寄存器保存计数值的低 32 位:

2.5.LP 模式的计数值 - SNVS_SRTCMR & SNVS_SRTCLR

  • SNVS_SRTCMR 寄存器的 0~14 位保存计数值的高 15 位;

  • SNVS_SRTCLR 寄存器的 15~31 位保存计数值的低 17 位;

注意:修改这两个寄存器前需要先关闭 SRTC

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

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

相关文章

PG Craft靶机复现 宏macro攻击

一. 端口扫描 只有80端口开启 二. 网页查看 目录扫描一下: dirsearch -u http://192.168.131.169/ 发现 http://192.168.131.169/upload.php 网站书使用xampp搭建,暴露了路径 还发现上传文件 http://192.168.131.169/uploads/ 发现一个上传点&#x…

ElasticSearch--DSL查询语句

ElasticSearch DSL查询文档 分类 查询类型功能描述典型应用场景示例语法查询所有匹配所有文档,无过滤条件数据预览/测试json { "query": { "match_all": {} } }全文检索查询对文本字段分词后匹配,基于倒排索引搜索框模糊匹配、多字段…

Redis(四) - 使用Python操作Redis详解

文章目录 前言一、下载Python插件二、创建项目三、安装 redis 库四、新建python软件包五、键操作六、字符串操作七、列表操作八、集合操作九、哈希表操作十、有序集合操作十一、完整代码1. 完整代码2. 项目下载 前言 本文是基于 Python 操作 Redis 数据库的实战指南&#xff0…

服务器并发实现的五种方法

文章目录 前言一、单线程 / 进程二、多进程并发三、多线程并发四、IO多路转接(复用)select五、IO多路转接(复用)poll六、IO多路转接(复用)epoll 前言 关于网络编程相关知识可看我之前写过的文章&#xff1…

新能源汽车移动充电服务:如何通过智能调度提升充电桩可用率?

随着新能源汽车的普及,充电需求激增,但固定充电桩的布局难以满足用户灵活补能的需求,尤其在高峰时段或偏远地区,"充电难"问题日益凸显。移动充电服务作为新兴解决方案,通过动态调度充电资源,有望…

SpringCloud Alibaba微服务-- Sentinel的使用(笔记)

雪崩问题: 小问题引发大问题,小服务出现故障,处理不当,可能导致整个微服务宕机。 假如商品服务出故障,购物车调用该服务,则可能出现处理时间过长,如果一秒几十个请求,那么处理时间过…

PARSCALE:大语言模型的第三种扩展范式

----->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<----- 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为推动机器智能向通用人工智能&#xff08;AGI&#xff09;迈进的核心驱动力。然而&#xff0c;传统的…

在Windows上,将 Ubuntu WSL 安装并迁移到 D 盘完整教程(含 Appx 安装与迁移导入)

&#x1f4bb; 将 Ubuntu WSL 安装并迁移到 D 盘完整教程&#xff08;含 Appx 安装与迁移导入&#xff09; 本文记录如何在 Windows 系统中手动启用 WSL、下载 Ubuntu 安装包、安装并迁移 Ubuntu 到 D 盘&#xff0c;避免默认写入 C 盘&#xff0c;提高系统性能与可维护性。 ✅…

企微获取会话内容,RSA 解密函数

企微获取会话内容&#xff0c;RSA 解密函数 企微获取会话内容下载SDKSDK配置解密过程解密代码参考SDK文件上传到服务器最后 企微获取会话内容 官方文档&#xff1a; https://developer.work.weixin.qq.com/document/path/91774 下载SDK 根据自己的环境下载对应的SDK。 SDK配置…

MyBatis入门:快速搭建数据库操作框架 + 增删改查(CRUD)

一、创建Mybatis的项目 Mybatis 是⼀个持久层框架, 具体的数据存储和数据操作还是在MySQL中操作的, 所以需要添加MySQL驱动 1.添加依赖 或者 手动添加依赖 <!--Mybatis 依赖包--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactI…

离线安装Microsoft 照片【笔记】

实验环境为&#xff1a;Windows 10 企业版 LTSC。 1.下载好相关离线依赖包和安装包。 2.管理员身份运行powershell&#xff0c;输入以下命令行&#xff1a; Add-AppPackage .\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb3d8bbwe.Appx Add-AppPackage .\Microsoft.NET…

【后端高阶面经:Elasticsearch篇】39、Elasticsearch 查询性能优化:分页、冷热分离与 JVM 调优

一、索引设计优化:构建高效查询的基石 (一)分片与副本的黄金配置 1. 分片数量计算模型 # 分片数计算公式(单分片建议30-50GB) def calculate_shards(total_data_gb, single_shard_gb=30):return max

基于 ZU49DR FPGA 的无线电射频数据采样转换开发平台核心板

无线电射频数据采样转换开发板及配套开发平台的核心板&#xff0c;该SOM核心板是一个最小系统&#xff0c;包括AMD公司的 Zynq UltraScale RFSOC 第3代系列XCZU49DR-2FFVF1760I FPGA、时钟、电源、内存以及 Flash。与其配套的底板是标准的全高全长Gen4.0 x8的PCIE卡&#xff0c…

软考 系统架构设计师系列知识点之杂项集萃(69)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;68&#xff09; 第114题 若对关系R(A&#xff0c;B&#xff0c;C&#xff0c;D)和S(C&#xff0c;D&#xff0c;E)进行关系代数运算&#xff0c;则表达式 与&#xff08;&#xff09;等价。 A.…

leetcode 83和84 Remove Duplicates from Sorted List 和leetcode 1836

目录 83. Remove Duplicates from Sorted List 82. Remove Duplicates from Sorted List II 1836. Remove Duplicates From an Unsorted Linked List 删除链表中的结点合集 83. Remove Duplicates from Sorted List 代码&#xff1a; /*** Definition for singly-linked l…

【LeetCode 热题 100】买卖股票的最佳时机 / 跳跃游戏 / 划分字母区间

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 买卖股票的最佳时机跳跃游戏跳跃游戏 II划分字母区间 买卖股票的最佳时机 买卖股票的最佳时机 class Solution { pu…

万亿参数背后的算力密码:大模型训练的分布式架构与自动化运维全解析

目录 一、技术融合的时代背景 二、深度学习在 AI 大模型中的核心作用 2.1 预训练与微调机制 2.2 多模态深度学习的突破 三、分布式计算&#xff1a;大模型训练的基础设施 3.1 分布式训练核心原理 3.2 数据并行实战&#xff08;PyTorch DDP&#xff09; 3.3 模型并行与混…

Linux10正式版发布,拥抱AI了!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南

当然可以&#xff01;以下是一篇结构清晰、语言通俗易懂的技术博客草稿&#xff0c;供你参考和使用&#xff1a; 在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南 背景介绍 最近在对一台内网的 OpenEuler-22.03 服务器进行安全扫描时&#xff0c;发现其 SSH 版本存在…

全能邮箱全能邮箱:实现邮件管理的自动化!

全能邮箱全能邮箱&#xff1a;实现邮件管理的自动化&#xff01; 全能邮箱全能邮箱的配置教程&#xff1f;如何注册烽火域名邮箱&#xff1f; 全能邮箱全能邮箱作为一种创新的邮件管理解决方案&#xff0c;正逐渐改变我们处理邮件的方式。蜂邮EDM将围绕全能邮箱全能邮箱&…