原理图设计有36.768k无源晶振,有纽扣电池。
用BSP内核,时间可以保存但是掉电不计时。
求解答
menuconfig选择如下
Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
*** RTC interfaces ***
/sys/class/rtc/rtcN (sysfs)
/dev/rtcN (character devices)
<*> sunxi rtc driver
最近编辑记录 小猪佩奇 (2018-12-08 11:34:57)
离线
在确保电池有点的情况下,这个问题基本上和晶振有关系的。你看看你外部晶振能起震不。
离线
刚才想到,在V3S钟是有内部晶振,记得第一次都会先使用内部晶振去初始化RTC然后才切换到外部。可以尝试修改驱动直接使用外部晶振,我记得我就是这样解决的~~
离线
还是晕哥不差钱~:lol
离线
刚才想到,在V3S钟是有内部晶振,记得第一次都会先使用内部晶振去初始化RTC然后才切换到外部。可以尝试修改驱动直接使用外部晶振,我记得我就是这样解决的~~
感谢,问题已经解决,就是修改了,rtcsunxi.c直接使用外部晶振,掉电也计时了,就是太不准了,十分钟能差两分钟
离线
貌似主线也有这种问题, 而且时间还不准,差很远,后来干脆用PCF8563
确实差得远。。。十分钟内能差两分钟,我得看看晶振了。。
离线
晕哥 说:貌似主线也有这种问题, 而且时间还不准,差很远,后来干脆用PCF8563
确实差得远。。。十分钟内能差两分钟,我得看看晶振了。。
额~自从改好后我就没看过时间,时间是否准不准~~那么接下来我就流下默然的泪水~(十分钟二分钟!!!)
离线
在线
Morgan 说:小猪佩奇 说:确实差得远。。。十分钟内能差两分钟,我得看看晶振了。。
额~自从改好后我就没看过时间,时间是否准不准~~那么接下来我就流下默然的泪水~(十分钟二分钟!!!)
那现在方便看下吗, 看能不能再燃起我用内置 RTC 的欲望。
我测试了三次:
1. 5分钟
2. 10分钟
3. 一个小时
三次中我看到的时间和我电脑的时间是一致的,也就是说即使存在误差,那么在我测试的一小时内它的误差最多就是一分钟。
离线
原理图设计有36.768k无源晶振,有纽扣电池。
用BSP内核,时间可以保存但是掉电不计时。
求解答menuconfig选择如下
Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
*** RTC interfaces ***
/sys/class/rtc/rtcN (sysfs)
/dev/rtcN (character devices)
<*> sunxi rtc driver
看到开始的设计~~不应该是32.768Khz的晶振么~
离线
晕哥 说:Morgan 说:额~自从改好后我就没看过时间,时间是否准不准~~那么接下来我就流下默然的泪水~(十分钟二分钟!!!)
那现在方便看下吗, 看能不能再燃起我用内置 RTC 的欲望。
我测试了三次:
1. 5分钟
2. 10分钟
3. 一个小时
三次中我看到的时间和我电脑的时间是一致的,也就是说即使存在误差,那么在我测试的一小时内它的误差最多就是一分钟。
请教用什么命令测试的?具体命令行是什么?
date ? hwclock ?
离线
Morgan 说:晕哥 说:那现在方便看下吗, 看能不能再燃起我用内置 RTC 的欲望。
我测试了三次:
1. 5分钟
2. 10分钟
3. 一个小时
三次中我看到的时间和我电脑的时间是一致的,也就是说即使存在误差,那么在我测试的一小时内它的误差最多就是一分钟。请教用什么命令测试的?具体命令行是什么?
date ? hwclock ?
hwclock
离线
lilo 说:Morgan 说:我测试了三次:
1. 5分钟
2. 10分钟
3. 一个小时
三次中我看到的时间和我电脑的时间是一致的,也就是说即使存在误差,那么在我测试的一小时内它的误差最多就是一分钟。请教用什么命令测试的?具体命令行是什么?
date ? hwclock ?hwclock
这样啊, 大神你用的是官方bsp吧?主线的确实有问题,改天对比一下看什么问题引起
离线
Morgan 说:lilo 说:请教用什么命令测试的?具体命令行是什么?
date ? hwclock ?hwclock
这样啊, 大神你用的是官方bsp吧?主线的确实有问题,改天对比一下看什么问题引起
我用官方的BSP的,主线我还没有用上。官方的BSP搞得都吐血。┭┮﹏┭┮
离线
官方BSP还有什么问题?主线很多外设不支持,我都打算用官方bsp,小白请教有哪些坑?
离线
官方BSP还有什么问题?主线很多外设不支持,我都打算用官方bsp,小白请教有哪些坑?
我的是自己挖的坑,用官方的BSP去做相对应的产品还是很快的~
离线
Morgan 说:小猪佩奇 说:确实差得远。。。十分钟内能差两分钟,我得看看晶振了。。
额~自从改好后我就没看过时间,时间是否准不准~~那么接下来我就流下默然的泪水~(十分钟二分钟!!!)
那现在方便看下吗, 看能不能再燃起我用内置 RTC 的欲望。
我想你可以使用内部的RTC了,不过就如上面说的,需要去对比BSP和主线的RTC驱动。
现在测试的时间和我PC的时间一样,我应该是放了两天~
# hwclock
Fri Dec 14 14:43:32 2018 0.000000 seconds
离线
晕哥 说:Morgan 说:额~自从改好后我就没看过时间,时间是否准不准~~那么接下来我就流下默然的泪水~(十分钟二分钟!!!)
那现在方便看下吗, 看能不能再燃起我用内置 RTC 的欲望。
我想你可以使用内部的RTC了,不过就如上面说的,需要去对比BSP和主线的RTC驱动。
现在测试的时间和我PC的时间一样,我应该是放了两天~
# hwclock
Fri Dec 14 14:43:32 2018 0.000000 seconds
嗯很有可能,感谢你的测试!
在线
晕哥打算填坑?
离线
是的,打错了
小猪佩奇 说:原理图设计有36.768k无源晶振,有纽扣电池。
用BSP内核,时间可以保存但是掉电不计时。
求解答menuconfig选择如下
Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
*** RTC interfaces ***
/sys/class/rtc/rtcN (sysfs)
/dev/rtcN (character devices)
<*> sunxi rtc driver看到开始的设计~~不应该是32.768Khz的晶振么~
离线
主线LINUX
我修改了rtc-sun6i.c
static int sun6i_rtc_osc_set_parent(struct clk_hw *hw, u8 index)
{
struct sun6i_rtc_dev *rtc = container_of(hw, struct sun6i_rtc_dev, hw);
unsigned long flags;
u32 val;
if (index > 1)
return -EINVAL;
spin_lock_irqsave(&rtc->lock, flags);
val = readl(rtc->base + SUN6I_LOSC_CTRL);
val &= ~SUN6I_LOSC_CTRL_EXT_OSC;
val |= SUN6I_LOSC_CTRL_KEY;
val |= 1; //index ? SUN6I_LOSC_CTRL_EXT_OSC : 0;
writel(val, rtc->base + SUN6I_LOSC_CTRL);
spin_unlock_irqrestore(&rtc->lock, flags);
return 0;
}
没有用.需要怎样修改?
离线
这样 RTC 时间还是不对? 看来要把 RTC 相关的寄存器都 dump 出来, 和 bsp linux 一个一个核对?
离线
主线LINUX
我修改了rtc-sun6i.c
static int sun6i_rtc_osc_set_parent(struct clk_hw *hw, u8 index)
{
struct sun6i_rtc_dev *rtc = container_of(hw, struct sun6i_rtc_dev, hw);
unsigned long flags;
u32 val;if (index > 1)
return -EINVAL;spin_lock_irqsave(&rtc->lock, flags);
val = readl(rtc->base + SUN6I_LOSC_CTRL);
val &= ~SUN6I_LOSC_CTRL_EXT_OSC;
val |= SUN6I_LOSC_CTRL_KEY;
val |= 1; //index ? SUN6I_LOSC_CTRL_EXT_OSC : 0;
writel(val, rtc->base + SUN6I_LOSC_CTRL);
spin_unlock_irqrestore(&rtc->lock, flags);return 0;
}没有用.需要怎样修改?
你好,我现在也在使用主线内核的RTC,遇到跟你一样的问题,现在问题解决了吗
离线
看来这个坑还是蛮深的。
离线