打印

看到自己以前写的RTC调试文档,发出来,呵呵

[复制链接]
1453|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cellee|  楼主 | 2008-3-14 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RTC芯片应该是比较简单的,但是我花了很长时间。事无巨细,都需要认真对待!在这里做一个总结。
我是在ARM平台上调试精工电子的S35390A这个I2C接口的RTC芯片。
该芯片的功能如下:
芯片可以工作在1.3--5.5V的电压范围之内,当工作在1.3--3.0V范围时,I2C的最高通信速率为100KHz,当工作在3.0--5.5V时,I2C的最高通信速率为400KHz。
支持闰年,报警功能,固定的32KHz输出,以及可设定的16/8/4/2/1Hz方波中断输出,可调的占空比。


芯片的通信时序遵循I2C协议,其中需要注意的地方有:
1>芯片进行I2C通信时,地址是采用先MSB,后LSB的方式接收的。数据是采用先LSB后MSB的方式接收的,而OMAP730平台的I2C接口地址数据都是以先MSB后LSB的方式发送接收的,所以需要在程序中进行数据的调整。由于我看资料太粗心,这个地方花了我1天多!
2>这个芯片的SCL、SDA、INT1、INT2引脚都需要上拉。否则INT1、INT2即使不挂接任何负载,也可能无法实现正常的信号输出。
3>芯片的中断方式较多,对INT2,有选择频率稳态中断、分单位边缘中断(占空比50%的和可调的2种)、报警中断共4种。对INT1有32KHz固定输出、选择频率稳态中断、分单位边缘中断(占空比50%的和可调的2种)、报警中断共5种。
4>芯片很多寄存器采用BCD码计数方式,不是10进制,对寄存器设置需要注意。
5>芯片上电后,INT1引脚有可能输出1Hz的时钟,也有可能没有!不能作为芯片是否正常的标准。
6>芯片上电后,应该对它进行复位,芯片有电压监控模块,当电压小于一定数值时,芯片的状态寄存器1的BLD位被置1,即使电压恢复,改位也不会清0,此时若读取到该位为1,则需对芯片进行复位。
7>指示报警中断发生的寄存器位,按DATASHEET的说明应该是状态寄存器1的4=INT1、5=INT2位,实际上是2=INT2、3=INT1。
8>报警功能以分钟为单位,有以下组合:某时某分中断,需使能小时和分钟寄存器位;某时中断,需只使能小时寄存器位;星期x某时某分,需将星期x、小时和分钟寄存器位全部使能。
9>寄存器初始化按地址顺序即可。

阿米驼佛,做事一定要细心!呵呵。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

18

帖子

0

粉丝