通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  下士

注册:2009-10-21
跳转到指定楼层
1#
发表于 2010-5-10 20:57:51 |只看该作者 |倒序浏览
这几天在做RTC的应用,内核选择的是kernel2.6.20,gcc版本:3.4.1,选择的外围芯片是DS1307,电路参照datasheet。过程中遇到的问题如下:
       1.对内核组成不熟,在RTC驱动选择中选择了:

导致内核打印
<7>at91_rtc at91_rtc: rtc intf: sysfs
<7>at91_rtc at91_rtc: rtc intf: proc
<7>at91_rtc at91_rtc: rtc intf: dev (254:0)
<6>at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
<7>at91_rtc_readtime(): 1998-00-01 00:00:30
<6>at91_rtc at91_rtc: setting the system clock to 1998-01-01 00:00:30 (883612830)

如果如上选择:会出现<7>i2c-core: driver [ds1307] registered

自己写RTC读写代码,对rtc0进行操作,编译运行发现:
时间正常读取和写入,也能够向后计时,但是:无论是掉电重启、还是复位,时间都会消失,恢复到<7>at91_rtc_readtime(): 1998-00-01 00:00:30
内核debug发现,根本就没走到DS1307.c中的函数,也就是说registered at91_rtc as rtc0,只是对at91rm9200-rtc.c进行了操作,说明这是自带的RTC电路,跟CPU相关,操作相关寄存器即可对其控制。
去掉:

此时会注册ds1307为rtc0设备文件。过程发现
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
内核debug发现是
读取时间为-1、0等,导致判断month、mday范围出界,goto exit导致跳出,打不开即报上述错误。
DS1307 init!
i2c /dev entries driver
DS1307 detect!
DS1307 1!
DS1307 BCD!
DS1307 +0!
DS1307 min!+3
DS1307 3!
DS1307 ds_1307!
DS1307 attach client!
ds1307 0-0068: rtc core: registered ds1307 as rtc0
DS1307 register!
at91_i2c at91_i2c: AT91 i2c bus driver.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
ds1307 0-0068: hctosys: invalid date/time
注释掉相关时间判断goto语句,最后运行如上。
不管这些错误,此时rtc0已经出现。(注意,如果regieter失败,是无法找到rtc0的)。
./rtc -r
2000.-1.00,-1,00:00:00
./rtc -w 2010.04.08,1,17:03:00
重启系统发现

ds1307 0-0068: setting the system clock to 2010-04-08 17:03:00 (1270746180)
时间掉电保护,但是没走

看datasheet可以看到CH影响计时器的使能,但是内核有判断,并置位为0,enable;
所以考虑可能是晶振没有起来,自然不会计时。首先是去测试上电、掉电的晶振频率,发现内核这边有32.768k左右的频率,但是外围RTC的晶振没有,尝试第二板也没有,换掉电容、晶振还是测试不出来。但是第三板是好的,两个地方都是32K左右,估计肯定行!果然,加上电池,效果出现了,掉电保护,并且正常计时。

另外一个问题就是使用示波器的知识:测试频率,最好打成10倍衰减档,不然32K测不出来

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-16 11:35 , Processed in 0.107881 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部