rtc

Android RTC 时钟

allwinner rockchip

Posted by LXG on April 4, 2023

全志软件架构

a133_rtc

全志RTC驱动

sun50iw10p1.dtsi


                rtc: rtc@07000000 {
                        compatible = "allwinner,sunxi-rtc";
                        device_type = "rtc";
                        wakeup-source;                                   // 表示RTC是具备休眠唤醒能力的中断唤醒源
                        auto_switch;                                     // 支持RTC使用的32k时钟源硬件自动切换
                        reg = <0x0 0x07000000 0x0 0x200>;                // RTC寄存器基地址和映射范围
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        gpr_offset = <0x100>;                            // RTC通用寄存器的偏移
                        gpr_len    = <8>;
                        gpr_cur_pos = <6>;                               // RTC通用寄存器的个数
                };

全志查看RTC寄存器


ceres-c3:/ # echo 0x07000000,0x07000200 > /sys/class/sunxi_dump/dump                                                                                                                                                           
ceres-c3:/ # cat /sys/class/sunxi_dump/dump                                                                                                                                                                                    

0x0000000007000000: 0x00004011 0x00000001 0x0000000f 0x7a000000
0x0000000007000010: 0x00004bfe 0x000a350e 0x00000000 0x00000000
0x0000000007000020: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000030: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000040: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000050: 0x00000001 0x00000000 0x00000000 0x00000000
0x0000000007000060: 0x00000001 0x00000000 0x00000000 0x00000000
0x0000000007000070: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000080: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000090: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000a0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000b0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000c0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000d0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000e0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070000f0: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000100: 0x00000000 0x00000000 0x00000000 0x0000b00f
0x0000000007000110: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000120: 0x20000000 0x00000000 0x00000000 0x00000000
0x0000000007000130: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000140: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000150: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000160: 0x083f10f7 0x00000043 0x00000000 0x00000000
0x0000000007000170: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000180: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000190: 0x00000004 0x00000000 0x00000000 0x00000000
0x00000000070001a0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070001b0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070001c0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070001d0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070001e0: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000000070001f0: 0x00000000 0x00000000 0x00000000 0x00000000
0x0000000007000200: 0x00000000

查看硬件RTC时间

Linux时间有两个, 系统时间(Wall Time), RTC时间, 上电–>RTC驱动加载–>从RTC同步时间到WT时间


1|ceres-c3:/ # hwclock --show 
Thu Apr  6 10:55:57 2023  0.000000 seconds

查看Linux内核维护的时间


ceres-c3:/ $ date
Mon Apr  3 17:41:05 CST 2023

A133 RTC 原理图

a133_rtc_hardware

BAT54C

BAT54C

BAT54C是一款正向电压为520mV的半导体二极管

  • VCC-RTC 是正常供电电源 1.8V
  • J13 是电池供电电源 3V (随着时间会有衰减),实际上1.8V的电池即可满足要求

当电源供电时,电压大的二极管导通,当电池供电时,下边的二极管导通

RK3288 HYM8563 原理图

HYM8563 是一款低功耗CMOS实时时钟/日历芯片,它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址和数据都通过I2C总线接口串行传递。

HYM8563.pdf

rk3288_rtc_hardware