news 2026/7/7 1:16:54

RK3568 Android14 集成 HYM8563 外部 RTC (I2C接口)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3568 Android14 集成 HYM8563 外部 RTC (I2C接口)

RK3568 Android14 集成 HYM8563 外部 RTC (I2C接口)

前言

虽然 RK3568 SoC 内部自带了 RTC 控制器(rtc-rkw808),但在很多工业板卡或手持设备设计中,为了更低的待机功耗和更灵活的电池备份方案,硬件工程师往往会选择外挂一颗低功耗 RTC 芯片。
HYM8563 (与 BM8563、PCF8563 寄存器兼容)是最常见的一种 I2C 接口 RTC 芯片。本文将记录在 RK3568 Android 14 平台上,如何驱动这颗芯片,并使其成为系统的主 RTC。

一、 硬件原理与连接

1.1 硬件接口

HYM8563 是一颗标准的 I2C 从设备。
通讯接口:I2C (SCL/SDA)
设备地址:0x51 (7-bit address)
中断引脚:INT (输出低电平有效,非常重要,用于实现定时开机/唤醒功能)

1.2 原理图参考

假设我们将 RTC 挂载在 I2C5 总线上,中断脚连接到 GPIO0_D3。

HYM8563与RK3568引脚对应表

BM8563引脚RK3568引脚功能说明
SCLI2C5_SCL_M0I2C时钟信号线
SDAI2C5_SDA_M0I2C数据信号线
INTGPIO0_D3中断输出,用于唤醒主控
VCCVCC_3V3供电(纽扣电池或常电)

二、 内核驱动配置 (Kernel Config)

Rockchip 的 Linux 5.10 / 6.1 内核源码中已经包含了该芯片的通用驱动。

2.1 检查 Menuconfig

执行 make menuconfig,确保勾选以下选项:

Device Drivers--->[*]Real Time Clock---><*>Philips PCF8563/Epson RTC8564/Haoyu HYM8563

对应的 .config 配置项为:

CONFIG_RTC_DRV_HYM8563=y

注意:通常驱动源码位于 drivers/rtc/rtc-hym8563.c。

2.2 设备树配置 (DTS)

这是集成的核心步骤。我们需要在对应的 I2C 节点下添加 RTC 设备,并指定中断引脚。
打开 arch/arm64/boot/dts/rockchip/rk3568-your-board.dts:

/* 启用 I2C3 控制器 */&i2c5{status="okay";/* 添加 RTC 节点 */hym8563:hym8563@51{status="okay";compatible="haoyu,hym8563";reg=<0x51>;pinctrl-names="default";/* 配置中断脚: GPIO0_D3 *//* RK_PD3 需要在头文件中查找或直接写数字,通常推荐使用宏定义 */pinctrl-0=<&rtc_int>;interrupt-parent=<&gpio0>;interrupts=<RK_PD3 IRQ_TYPE_LEVEL_LOW>;};};/* 配置引脚复用(如果该引脚默认为其他功能) */&pinctrl{rtc{rtc_int:rtc-int{rockchip,pins=<0RK_PD3 RK_FUNC_GPIO&pcfg_pull_up>;};};};

三、 编译与验证

编译内核并烧录 boot.img 和 dtbo.img (如有)。

3.1 功能验证 (Linux 层)

# 读取硬件时间 hwclock-r-f/dev/rtc0 # 将系统时间写入硬件 RTC date-s"2025-05-01 12:00:00"hwclock-w-f/dev/rtc0 # 断电重启,再次读取,检查时间是否保存

3.2 唤醒测试 (关键)

HYM8563 的中断脚连接到 GPIO,主要为了支持 “设置闹钟唤醒系统”(深度休眠唤醒)。
设置定时唤醒:

echo+30>/sys/class/rtc/rtc0/wakealarm(表示30秒后触发中断)

让系统进入休眠:

echo mem>/sys/power/state

观察:
30秒后,系统应该自动亮屏或串口打印唤醒日志。如果无法唤醒,请检查:
INT 引脚的硬件连接是否正确。
DTS 中 interrupts 极性配置是否为 IRQ_TYPE_LEVEL_LOW。
示波器测量 INT 脚是否有电平拉低动作。

四.、常见问题 (FAQ)

Q1: 读取时间报错 “RTC_RD_TIME: Invalid argument”
原因:RTC 芯片内部寄存器数据非法(通常是电池没电或初次上电未初始化,Voltage Low 标志位被置起)。
解决:写入一次正确时间即可清除标志位:hwclock -w。

Q2: 系统重启后时间变回 1970 年
原因:纽扣电池没电,或者板子上并没有给 VCC 脚接常电。
解决:测量电池电压;检查 hctosys 是否开启(内核配置 CONFIG_RTC_HCTOSYS=y)。

Q3: I2C 通讯失败 (Timeout / No ack)
原因:地址错误(7位地址是 0x51,8位读地址是 0xA3),或者 I2C 上拉电阻缺失。
解决:检查原理图,确认 SDA/SCL 是否有 4.7k 上拉电阻。

总结

集成 HYM8563 相对简单,主要是标准的 I2C 设备调试。但在 Android 14 上,需要额外注意 aliases 别名 的设置,确保系统将 HYM8563 识别为 rtc0,否则系统可能依然读取 SoC 内部的默认时间,导致掉电时间不准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 18:23:21

冒泡排序与选择排序详解

《冒泡排序和选择排序》冒泡排序&#xff1a;冒泡排序&#xff1a;两两相比&#xff0c;如果前面大于后面的值交换位置外循环要经过多少轮比较 一轮找出一个最值内循环比较多少次 例如5个数比较4次即可 下一轮的时候 不用和上传最值进行比较&#xff0c;所以写内循环次数可以 这…

作者头像 李华
网站建设 2026/7/6 23:38:37

告别AI痕迹:5款智能工具

现在AI“大行其道”&#xff0c;很多同学都学会了用chatgpt或者其他AI工具来辅助写论文&#xff0c;但是一些论文检测平台却管得更严了&#xff0c;不仅有查重检测&#xff0c;居然还有AI率检测&#xff01;很多高校也开始卡AI率&#xff0c;AI率不过关的很有可能论文不通过&am…

作者头像 李华
网站建设 2026/7/7 9:59:45

探索 SCN - Adaboost 的回归预测之旅

SCN-adaboost基于随机配置网络SCN的Adaboost回归预测&#xff0c;SCN-Adaboost回归预测&#xff0c;多输入单输出模型。 评价指标包括:R2、MAE、MSE、RMSE和MAPE等&#xff0c;代码质量极高&#xff0c;方便学习和替换数据。在机器学习的广袤世界里&#xff0c;回归预测一直是一…

作者头像 李华
网站建设 2026/7/7 6:16:38

探索对称双向半桥LLC谐振变换器双向运行仿真模型

对称双向半桥LLC谐振变换器双向运行仿真模型。 模型采用闭环PI控制&#xff0c;频率控制方法。 输出效果好&#xff0c;效率高。 如展示图所示。 matlab/simulink最近在研究电力电子相关内容时&#xff0c;接触到了对称双向半桥LLC谐振变换器双向运行仿真模型&#xff0c;感觉特…

作者头像 李华
网站建设 2026/7/7 14:05:34

小程序商城工具挑选指南:功能、生态与商家需求解析

在小程序商城软件这个领域当中 &#xff0c;商家面临着呈现出多元化态势的需求 &#xff0c;此时去挑选一款具备专业性 、突出高效性质并且能够精准贴合自身业务所具有的独特特点的工具是极其关键重要的 。当下市场里占据主流地位的产品各自有着不同的侧重方向 &#xff0c;商家…

作者头像 李华