当前位置: 首页 > news >正文

RK3588V2--HYM8563TS RTC 实时时钟适配移植

1. 什么是RTC

RTC(Real-Time Clock,实时时钟)是一种电子设备或芯片,它用于保持当前时间和日期,即使系统关闭或断电也能持续计时。RTC 通常用于计算机、嵌入式系统、物联网设备等需要精确时间管理的场景。

1.1 RTC 的特点

低功耗:RTC 采用独立的电池(如纽扣电池 CR2032)供电,即使系统断电也能持续运行。
高精度:RTC 通过内置的石英晶振(通常为 32.768 kHz)提供高精度的时间基准。
独立运行:即使主系统重启或关闭,RTC 仍能保持正确的时间。
提供时间戳:常用于日志记录、定时任务等。

1.2 RTC 的常见应用

计算机系统:用于存储系统时间,即使断电也能保持时间同步。
物联网(IoT)设备:需要定时唤醒设备执行任务或进行数据记录。
工业控制:定时触发某些操作,如设备自检、数据采集等。
嵌入式系统:用于时间同步、定时触发事件等。
智能家居:自动控制家电设备的开关,如定时开关灯、空调等。

1.3 RTC 的组成

一个典型的 RTC 主要由以下部分组成:

  1. 振荡器(Oscillator):一般是 32.768 kHz 的石英晶振,用于提供精确的时间基准。
  2. 计时寄存器:存储当前的秒、分钟、小时、日期、月份和年份等信息。
  3. 备用电源:独立的纽扣电池(如 CR2032),即使主系统掉电,RTC 仍能继续计时。
  4. I²C/SPI 通信接口:与主系统(MCU、CPU)进行通信,获取时间或设置时间。

2. 适配过程

RTC 部分需要移植的主要为一个 I2C 设备(HYM8563TS, 是一款低功耗CMOS实时时钟/日历芯片,由武汉昊昱公司设计生产), 原理图如下:
在这里插入图片描述
从控制角度看,RTC无非是带有一个中断引脚的I2C设备。
从 PCB 中可以看出, 一个中断引脚和 I2C 引脚

2.1 设备树配置

&i2c6 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&i2c6m0_xfer>;

    hym8563: hym8563@51 {
        compatible = "haoyu,hym8563";
        reg = <0x51>;
        #clock-cells = <0>;
        clock-frequency = <32768>;
        clock-output-names = "hym8563";
        pinctrl-names = "default";
        pinctrl-0 = <&rtc_int>;
		# gpio默认配置为上拉,使能低电平中断。
        interrupt-parent = <&gpio0>;
        interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
        wakeup-source;
    };
};


&pinctrl {
    hym8563 {
        rtc_int: rtc-int {
        # 通过芯片手册可以看出, 中断引脚需要默认上拉.
            rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
        };
    };
}

3. 测试

3.1 系统内RTC功能测试

root@LPA3588:/dev# dmesg | grep rtc
[    9.673251] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    9.704414] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    9.731203] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    9.737375] rtc-hym8563 6-0051: rtc information is valid
[    9.742877] rtc-hym8563 6-0051: registered as rtc0
[    9.743916] rtc-hym8563 6-0051: setting system clock to 2000-01-01T00:00:23 UTC (946684823)
root@LPA3588:/dev# hwclock -r
2000-01-01 00:48:18.485166+00:00
root@LPA3588:/dev# hwclock --set --date "2025-02-05 15:30:00"
root@LPA3588:/dev# hwclock -r
2025-02-05 15:30:03.097318+00:00
root@LPA3588:/dev# ll rtc*
lrwxrwxrwx 1 root root      4 Sep  8 09:58 rtc -> rtc0
crw------- 1 root root 250, 0 Sep  8 09:58 rtc0

内核配置中可以看出RTC初始化成功。并且可以设置以及同步系统时间。
正常!

相关文章:

  • QTday4
  • 谈谈你对 Seata 的理解?
  • 第四章:go 不同进制的区分 for _, r :=range 使用
  • 【入门级篇】保姆级教程:零基础实现DeepSeek本地部署的两种终极方案(附避坑指南)
  • 红果短剧安卓+IOS双端源码,专业短剧开发公司
  • vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案
  • 如火如荼的deepseek,AI初试探!
  • 如何基于LLM及NL2SQL打造对话式智能BI助手
  • 网络与网络安全
  • Springboot-mybatis配置多数据源
  • 加油站小程序实战教程09显示站点信息
  • Z字形字符串转换力扣6
  • 网站总报SSL错误?常见原因及解决方案
  • 开启mysql远程登录
  • 面试过了,总结测试工程师面试题(含答案)
  • 【Git原理与使用二】Git 分支管理
  • 深度学习(斋藤康毅)学习笔记(六)反向传播3
  • 面试中常问的mysql数据库指令【杭州多测师_王sir】
  • 盛铂科技 FlexDDS - NG波形发生器(直接数字信号合成器(DDS)):量子光学研究的得力助手
  • HTML学习笔记(全)
  • 邢台论坛吧/seo实战培训中心
  • 论坛做网站好吗/流程优化四个方法
  • 武汉新公司做网站|武昌专业做网站--武汉金宇盈科技有限公司/产品线下推广方式都有哪些
  • wordpress登陆界面打开慢/seo 重庆
  • 建设一个广告联盟的网站/全球搜官网
  • 免费设计网站平台/线上广告推广