news 2026/7/8 5:50:20

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 23:53:04

小团队与大团队的管理差异

小团队与大团队在管理上的核心差异&#xff0c;根源于“复杂性”和“规模”两个维度。小团队&#xff08;如10人以下&#xff09;的管理依赖于“人治”和“默契”&#xff0c;追求的是极致的敏捷性、灵活性和高频的非正式沟通。 而 大团队&#xff08;如100人以上&#xff09;的…

作者头像 李华
网站建设 2026/7/7 17:51:58

[CISCN2019 华东南赛区]Web4

1.打开是一个欢迎界面 然后点击这个read something会跳转到这个页面 看到这个https://baidu.com&#xff0c;知道这里是可以 ssrf的&#xff0c;使用file看一下 发现触发了waf&#xff0c;使用其他的试一试&#xff0c;最后发现 直接加路径也能进行访问 还有一种方法就是使用lo…

作者头像 李华
网站建设 2026/6/24 18:08:40

内点法求最优潮流附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/7/7 17:17:26

三相PWM整流器有限集模型预测电流控制附Simulink仿真模型

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/7/4 12:39:34

光伏四可“可观”功能:光伏电站全景数字化的底层支撑技术

在光伏产业从“规模扩张”向“质量提升”转型的关键阶段&#xff0c;全景数字化已成为电站降本增效、安全运维的核心路径。而实现光伏电站“设备状态全可视、运行数据全可溯、管理决策全可依”的“可观”功能&#xff0c;正是支撑这一转型的底层技术基石。不同于传统光伏监控仅…

作者头像 李华