RTC芯片简介
RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片。RTC芯片是一种能提供日历/时钟(世纪、年、月、时、分、秒)及数据存储等功能的专用集成电路。适合于一切需要微功耗及准确计时的场合。广泛应用于嵌入式领域:车载电子、手机、数码相机、MP3、MP4、电子词典等。
硬件简介
RK3568开发板采用的RTC是HYM8563芯片,HYM8563是一款低功耗CMOS实时时钟/日历芯片。可计时基于 32.768kHz 晶体的秒,分,小时,星期,天,月和年。工作电压范围:1.0~5.5V,低休眠电流:典型值为 0.25μA(VDD =3.0V, TA =25°C)。
DTS驱动配置
板级使能RTC,配置位置:arch/arm64/boot/dts/rockchip/aukun-utx-rk3568jt.dtsi
&i2c5{
status>rtc@51{
status>compatible>reg>};
};
实验调用
测试工具
我们通常在文件系统用i2c-tools调试I2C设备。常用的几个命令:i2cdetect(检测I2C器件工具) 、i2cdump(查看寄存器值工具) 、i2cget(读取寄存器值工具)、 i2cset(设置寄存器值工具)。
sudo apt install i2c-tools
RTC驱动的加载
查询rtc设备驱动
ls /dev/rtc\*
如驱动加载成功,则会生成设备文件的描述:rtc0
I2C挂载的设备
由设备树可知,RTC挂载在I2C5总线上
i2cdetect -a 5 ##0x51地址上UU表示已经被RTC驱动占用
同步RTC时间
1、查看系统时间:
date
2、查看RTC硬件时间:
hwclock -f /dev/rtc0
```
3、将硬件时间同步至系统时间
```bash
hwclock -s #将硬件时间同步到系统时间
再次查看RTC时间已经与系统同步