WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2018-01-12 14:00:35

挖坑人
会员
注册时间: 2018-01-12
累计积分: 5

v3s RTC使用备用电池时,时间只保存,不走怎么回事?

情况说明:
v3s RTC使用备用电池时,时间只保存,不走,每次开始时候还是原先关机的时间。
个人感觉是使用备用电池时候外部32K晶振没使用。

下面贴代码,

dts里面:

ext_osc32k: ext_osc32k_clk {
    #clock-cells = <0>;
    compatible = "fixed-clock";
    clock-frequency = <32768>;
    clock-accuracy = <50000>;
    clock-output-names = "ext-osc32k";
};

rtc: rtc@01f00000 {
    compatible = "allwinner,sun6i-a31-rtc";
    reg = <0x01f00000 0x54>;
    interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
             <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
    clock-output-names = "osc32k";
    clocks = <&ext_osc32k>;
    #clock-cells = <1>;
};


部分启动日志:
[    0.698307] ohci-platform: OHCI generic platform driver
[    0.703768] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[    0.712986] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[    0.719819] sun6i-rtc 1c20400.rtc: RTC enabled
[    0.724802] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.733057] usbcore: registered new interface driver usbhid
[    0.738665] usbhid: USB HID core driver
[    0.742837] NET: Registered protocol family 17
[    0.750274] sun6i-rtc 1c20400.rtc: setting system clock to 2018-01-11 18:46:45 UTC (1515696405)
[    0.759251] vcc3v0: disabling
[    0.762225] vcc3v3: disabling
[    0.765187] vcc5v0: disabling
[    0.800383] random: crng init done

查看rtc驱动代码里,也是有使能外部晶振的。
在driver/rtc-sun6i.c文件里:
部分代码:

/* Switch to the external, more precise, oscillator */
    writel(SUN6I_LOSC_CTRL_KEY | SUN6I_LOSC_CTRL_EXT_OSC,
           rtc->base + SUN6I_LOSC_CTRL);

    /* Yes, I know, this is ugly. */
    sun6i_rtc = rtc;

    /* Deal with old DTs */
    if (!of_get_property(node, "clocks", NULL))
        return;




电路图不知道怎么贴,就简单说明下好了 :
接32k晶振,VCC_RTC引脚接备用3.3V电源 正常使用时候接电源芯片的3.3v。
备用电源掉电时候只接VCC_RTC引脚,不知道这个有没关系。

离线

#2 2018-01-12 14:15:14

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

参考: 将系统时间写到硬件时间

date -s 2011.03.03-13:48:00
这样可以一次设置好日期时间,
hwclock -w :将系统时间写到硬件时间,

hwclock -s  :从硬件时间读到系统时间, 可以写到开机脚本里面 /etc/init.d/rcS


发图片方法: 如何在本站发图片, 顺便吐槽功能弱智的phpbb半自动步木仑

离线

#3 2018-01-12 14:17:40

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

你先用上面的方法确定你的RTC寄存存器是否是正常可读写的, 先可以不管跑不跑的问题。
hwclock -w 写
hwclock -s 读

离线

#4 2018-01-12 14:24:56

挖坑人
会员
注册时间: 2018-01-12
累计积分: 5

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

emm...
断电时候的时间:
[    0.750431]  sun6i-rtc 1c20400.rtc: setting system clock to 2018-01-12 14:18:35 UTC (1515766715)
等几分钟后启动:
# hwclock -s
# date
Fri Jan 12 14:18:47 UTC 2018
# hwclock -r
Fri Jan 12 14:18:55 2018  0.000000 seconds

表示并时间并没有动过。

离线

#5 2018-01-12 14:28:19

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

date 命令执行后,有没有执行hwclock -w?

离线

#6 2018-01-12 14:29:31

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

据我所知,全志V3s的RTC对电容要求很高,很容易不起振。
你最好找个示波器量一下。

离线

#7 2018-01-12 14:29:34

挖坑人
会员
注册时间: 2018-01-12
累计积分: 5

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

晕哥 说:

date 命令执行后,有没有执行hwclock -w?

有的 执行后掉电的

离线

#8 2018-01-12 14:31:04

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

挖坑人 说:
晕哥 说:

date 命令执行后,有没有执行hwclock -w?

有的 执行后掉电的

那应该是没起振了,如果没有示波器就从6p一直换到22p,看哪个能使rtc跑起来。

离线

#9 2018-01-12 14:31:13

挖坑人
会员
注册时间: 2018-01-12
累计积分: 5

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

晕哥 说:

据我所知,全志V3s的RTC对电容要求很高,很容易不起振。
你最好找个示波器量一下。

恩 好的  等下去看看   
rtc电源只提供到VCC_RTC引脚 应该是符合电路要求的吧?

离线

#10 2018-01-12 14:41:58

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

挖坑人 说:
晕哥 说:

据我所知,全志V3s的RTC对电容要求很高,很容易不起振。
你最好找个示波器量一下。

恩 好的  等下去看看   
rtc电源只提供到VCC_RTC引脚 应该是符合电路要求的吧?

对,98脚供3.3v即可。
估计1v多也可以工作了。
具体看手册。

离线

#11 2018-01-12 14:59:17

挖坑人
会员
注册时间: 2018-01-12
累计积分: 5

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

晕哥 说:
挖坑人 说:
晕哥 说:

据我所知,全志V3s的RTC对电容要求很高,很容易不起振。
你最好找个示波器量一下。

恩 好的  等下去看看   
rtc电源只提供到VCC_RTC引脚 应该是符合电路要求的吧?

对,98脚供3.3v即可。
估计1v多也可以工作了。
具体看手册。

好的 非常感谢!

离线

#12 2018-01-22 19:28:12

buaazy
会员
注册时间: 2018-01-22
累计积分: 3

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

我也发现这个问题,zImage使用4.13.y默认配置,RTC掉电就不走了

离线

#13 2018-01-22 19:38:56

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

buaazy 说:

我也发现这个问题,zImage使用4.13.y默认配置,RTC掉电就不走了

是荔枝派zero板吗?
稍等等,我再次确认一下。

离线

#14 2018-01-23 08:20:35

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

我测试过是时间是能跑的,软件reboot,或者硬件reset, hwclock里面的时间是一直跑的。
你用示波器量下晶振是否起振,VCC_RTC 是否有供电。

离线

#15 2018-01-23 16:05:50

bugfix
会员
注册时间: 2017-11-22
累计积分: 123

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

我的板子, 没贴32.768Khz, 但是备份电池都焊上了,现在情况是:
#hwclock  -r --rtc /dev/rtc0
上电时候用hwclock读时间会跑, 关机后再开机,中间这段时间和上面的朋友描述一样,时间没有跑,
下次开机接着跑。

因为没有晶振,时间不跑我能理解,
但是hwclock不是直接读RTC吗?这时候连晶振都没有,他到底读的是谁的时间?

离线

#16 2018-01-25 18:12:51

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

bugfix 说:

我的板子, 没贴32.768Khz, 但是备份电池都焊上了,现在情况是:
#hwclock  -r --rtc /dev/rtc0
上电时候用hwclock读时间会跑, 关机后再开机,中间这段时间和上面的朋友描述一样,时间没有跑,
下次开机接着跑。

因为没有晶振,时间不跑我能理解,
但是hwclock不是直接读RTC吗?这时候连晶振都没有,他到底读的是谁的时间?

看了一下驱动和手册,
不管有没有晶振,
驱动都是去读 RTC的相关寄存器 :
RTC_YY_MM_DD_REG
RTC_HH_MM_SS_REG

如果32.768K晶振正常起振,那么这两个寄存器都会实时更新,
如果不起振,那么寄存器就不会更新。

离线

#17 2018-02-02 11:31:30

bugfix
会员
注册时间: 2017-11-22
累计积分: 123

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

QQ20180202112836.jpg

QQ20180202112307.png

终于解决V3s自带的RTC不准问题,
电阻电容调大又调小,始终解决不了时间不准问题,
淘宝买一片PCF8563, 外挂上去解决这个问题。


dts修改:

&i2c0 {
    status = "okay";

    ns2009: ns2009@48 {
        compatible = "nsiway,ns2009";
        reg = <0x48>;
    };


    rtc@51 {
        compatible = "nxp,pcf8563";
        reg = <0x51>;
    };

};

PCF8563驱动加入内核:

CONFIG_RTC_DRV_PCF8563=y

离线

#18 2018-11-26 13:01:02

john78
会员
注册时间: 2018-07-19
累计积分: 131

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

我也遇到这样的问题,断电(电池供电)没有走时。
上电 hwclock -r 时钟是走的

离线

#19 2018-11-26 13:55:36

lilo
会员
注册时间: 2017-10-15
累计积分: 214

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

john78 说:

我也遇到这样的问题,断电(电池供电)没有走时。
上电 hwclock -r 时钟是走的

我怀疑主线上的 RTC 驱动还是有问题,

否则V3s的行车记录仪怎么保存时间的?

离线

#20 2018-11-26 14:34:35

john78
会员
注册时间: 2018-07-19
累计积分: 131

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

是硬件没有起振,内置RTC都比较挑剔。后续还是考虑外置了

离线

#21 2019-03-25 16:13:07

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

离线

#22 2019-03-25 23:42:25

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

QQ20190325233404A.jpgQQ20190325233408.jpg

离线

#23 2019-03-26 13:18:36

john78
会员
注册时间: 2018-07-19
累计积分: 131

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

我已经放弃了,用外内置晶振的RTC,稳稳的,就是价格多了些

离线

#24 2019-07-10 22:01:41

605364021
会员
注册时间: 2018-10-23
累计积分: 251

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

bugfix 说:

https://whycan.cn/files/members/370/QQ20180202112836.jpg

https://whycan.cn/files/members/370/QQ20180202112307.png

终于解决V3s自带的RTC不准问题,
电阻电容调大又调小,始终解决不了时间不准问题,
淘宝买一片PCF8563, 外挂上去解决这个问题。


dts修改:

&i2c0 {
    status = "okay";

    ns2009: ns2009@48 {
        compatible = "nsiway,ns2009";
        reg = <0x48>;
    };


    rtc@51 {
        compatible = "nxp,pcf8563";
        reg = <0x51>;
    };

};

PCF8563驱动加入内核:

CONFIG_RTC_DRV_PCF8563=y

我通用选择外接pcf8563芯片用作外部rtc,但是我从打印信息中看到,系统使用的依旧是内部RTC?设备节点有2个RTC,分别是sun6i-rtc和rtc-pcf8563,我想问一下需要在设备树在禁止sun6i-rtc?我认为我的v3s现在并没有使用外接的pcf8563-rtc
_20190710215618.png

还有一个问题就是,我在查看pcf8563-rtc时间时hwclock -f /dev/rtc1 提示
rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
hwclock: RTC_RD_TIME: Invalid argument
有人外接时候碰到过吗?这是pcf8563-rtc没有用上?

最近编辑记录 605364021 (2019-07-10 22:38:58)

离线

#25 2019-07-11 21:34:49

605364021
会员
注册时间: 2018-10-23
累计积分: 251

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

有没有大佬可以解答一下

离线

#26 2019-07-11 21:59:09

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

1. 驱动或者设备禁用内置RTC 都可以.

2. rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable.
电压不够或者没有放rtc电池。
https://blog.csdn.net/qq_39346729/article/details/80509599

离线

#27 2019-08-16 16:42:52

bugfix
会员
注册时间: 2017-11-22
累计积分: 123

Re: v3s RTC使用备用电池时,时间只保存,不走怎么回事?

https://whycan.cn/t_686.html#p2745

太妖秀了, 今天从办公室柜子翻出这个 PCF8563 的模组, 躺了18个月, 时间只慢了44秒.

pcf8563_diff.png

离线

页脚