OpenWrt系统下增加RTC(EPSON, RX8010SJ)及驱动详解

亿佰特物联网应用2024-04-07 17:04:26  123

RTC简介

RTC指实时时钟,主要作用是为电子设备提供精准的时间基准。RTC主要分为两类:片内RTC和外部(挂)RTC。

? 内部RTC

集成在芯片内部,RTC模块和时钟配置系统一般处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。

? 外部RTC

独立于主芯片的IC,也称为时钟芯片。通常使用独立电源,一般为纽扣电池。在系统断电后仍能自动运转,为系统更新实时时间。当系统上电后,通过相应的接口从外部RTC读取当前时间,用于同步系统时间。

本文介绍在基于MT76x8的Openwrt系统下增加外部RTC(EPSON,RX8010SJ)及相应的驱动支持。

EPSON,RX8010SJ:

一个基于I2C串行接口的系统实时时钟模块,内部包含一个32.768的晶体振荡器。提供包括但不限于秒、分、时、星期、日、月、年等时间基准。

既然是基于I2C串行接口的模块,那么第一步就需要在系统中添加I2C支持。

第一步:添加I2C支持

1.添加模块支持

make menuconfig

Kernelmodules --->

I2Csupport --->

<*> kmod-i2c-core

<*> kmod-i2c-algo-bit

<*> kmod-i2c-gpio

<*> kmod-i2c-mt7628

Save && Exit.

2.添加内核支持

make kernel_menuconfig

kernel_menuconfig

DeviceDrivers --->

<*> I2C support --->

<*> I2C device interface

I2CHardware Bus support --->

<*> Ralink I2C Controller

<*> MT7621/MT7628 I2C Controller

3.修改dts文件以打开I2C外设功能

&i2c {

status = "okay";

};

同时需要注意I2C引脚是否作他用,如果另作他用,需要调整回来。

4.添加I2C常用工具集

make manuconfig

menuconfig

Base system

Busybox

Miscellaneous Utilities --->

[*] i2cget (5.5 kb)

[*] i2cset (6.7 kb)

[*] i2cdump (7.1 kb)

[*] i2cdetect (7.1 kb)

编译 && 下载到目标板。

经过以上步骤,已经完成了I2C驱动支持,至此已经可以在/dev下看到i2c-0的节点。并且可用通过代码或者指令访问EPSON RX8010SJ芯片,进行简单的设置和读取时间。

查看I2C设备:

查看时间寄存器:

但这种使用非常复杂,接下来需要添加EPSON RX8010SJ相关的驱动,以便使用hwclock更简单的访问时钟芯片。

第二步:添加EPSON RX8010SJ驱动

1.增加内核模组配置

Make kernel_menuconfig增加内核对RTC模块的支持

kernel_menucofig

Device Drivers

Real Time Clock

---Real Time Clock

[*] Set the RTC time based on NTP synchronization

[*] /sys/class/rtc/rtcN(sysfs)

[*] /proc/driver/rtc (procfs for rtcN)

[*] /dev/rtcN (character devices)

<*> Epson RX8010SJ

Save && Exit.

2.修改dts文件,适配芯片

&i2c {

status = "okay";

rtc@32 {

compatible = "epson,rx8010";

reg = <0x32>;

};

};

其中0x32为EPSON RX8010SJ的I2C从机地址,而compatible字段,参考:内核/driver/rtc/rtc-rx8010.c如下:

static const struct of_device_id rx8010_of_match[] = {

{ .compatible = "epson,rx8010" },

};

编译 && 下载到目标板。

第三步:时间读取和写入

通过hwclock指令操作。

在使用hwclock时可能会出现如下错误:

造成以上问题,可能是RTC芯片刚上电时,内部时间非法,及通过驱动读取到非法时间,导致调用驱动时传入参数报错。

此时需要通过写入方式,将EPSON RX8010SJ内部寄存器改为合法值,即将实时时钟更新为系统时间。

再次通过hwclock指令读取RTC时间,即可成功读取到RTC(EPSON RX8010SJ)时间,如下图:

当需要使用RTC更新系统时钟时,可简单的使用指令:hwclock -s。执行完此指令后,可通过date指令查看当前系统时间。

阅读其他文章:

开源啦!多功能开发板EoRa PI,支持Wi-Fi和低功耗蓝牙

全新一代LoRa无线数传电台,自动中继,FEC前向纠错

工业级兼容DIGI XBEE 3 ZigBee3.0无线模块,低功耗且集成自组网功能

2.4G低功耗BLE5.1蓝牙模块,主从一体,更高的兼容性和性价比

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/143405.html
0
随机主题
便宜大碗!实用好用!99元起的迈从G75 上手体验分享一点道理也不讲, 关于小米Civi4 Pro, 知道这几点就够了传媒板块跌幅扩大, 新华都触及跌停蔡斌最喜欢的五名队员, 因为有蔡斌她们才有今天的梅开二度。国外渔民用砗磲壳做陷阱,沉到海底珊瑚缝抓东星斑,大家见识一下多亏他们! 大桥被冲垮前61人安全转移万吨大驱率编队赴南海训练!它的兵力构成和课目设置有何讲究?以闪亮五星红旗驻少年信仰高地 育才学校举行爱国主义教育活动反制说到做到, 中方拉长清单, 外交部宣布出手, 美国政客财路被断虎牢关时期, 谁能抵挡吕布100招? 仅2人可以, 关羽张飞赵云都不行听我的劝告: 早入手小米14 Pro的人别轻易看价格, 你会后悔李天一梦鸽卷钱赴美不归? 84岁李双江投靠前妻儿子晒与大儿子合1962年投资1000万美元,真实装备与军人协助拍摄,被封为二战电影封神之作!舒淇宝格丽之夜疑似被日本女星针对…原来华为手机还藏了3个功能,这都不知手机白买,学到就是赚到 #生活小技巧1950年毛岸英牺牲, 9年后罗瑞卿密电任荣: 主席有一项任务交给你铃木UY125改装3天内2度对美制裁, 中方气场很强大, 却为何只制裁卸任的美国政客申花客胜河南看了年轻时的卡米拉, 才发现, 查尔斯对她念念不忘果然是有原因的美国涨新能源车关税因为拆了海鸥?中国新能源车崛起老美挡不住
最新回复(0)