当前位置:首页 > 压电资讯 > 正文内容

SD2400实时时钟FAQ

小王137134492904个月前 (12-06)压电资讯774
1. Q:为什么SD2400走时不准?
    A:1. 看参照时间是不是准。可用我公司的网络校时工具“About Time”对电脑进行校时。
          2. 内部电池电量过低导致时钟振荡电路停止工作(可测试TEST脚电压确认)。
          3. 查看数字调整寄存器是否已清零。
          4. 环境温度高低会影响走时精度。
2. Q:为什么SD2400不返回ACK,读出来的数值都是0xFF?
    A:1. VDD电压偏低,小于3.3V;
          2. SDA端口没有加上拉电阻(一般是2-10K);
          3. SCL和SDA端口定义反了;
          4. IO口被复用;
          5. SD2400的器件地址没有设置正确,其器件地址应为0x64;
          6. I2C总线上有其它的器件和SD2400的器件地址冲突;
          7. I2C的通信程序的问题(单片机端口配置、时序不规范、总线过快、IO复用等)较多见,见附录;
          8. RTC已损坏。


3. Q:为什么我用仿真器单步调试检测不到RTC返回ACK呢?

    A:因为RTC的I2C总线有0.5s超时自动复位的功能。


4. Q:为什么从SD2400读出来时间有跳秒的现象。如9秒直接跳到16秒,而且会大于60?

    A:RTC采用BCD码计时,BCD码的用0x10表示十进制的10秒,用十进制来看就是会看到从9跳到16(0x10=16)。


5. Q:为什么有时候我读到的时间是乱码?

    A:1. 内部的电池电量耗完,芯片已完全掉电,再上电时读到的时间是乱码;

          2. 总速度太快或通信程序的时序中有不符合规范的地方(见附录);

          3. 控制SCL、SDA的IO口被复用;

     4. 芯片的SDA端口没有加上拉电阻。


6. Q:为什么小时会跑到25点、26点……?

    A:没有正确设置12/24小时制。在小时寄存器(02H)的最高位设置12/24小时制。


7. Q:为什么小时显示90点、91点……?

    A:读出小时数据后没有把最高位(12/24小时控制位)屏蔽掉。


8. Q:时钟芯片产生中断输出的时候的INT脚是高电平还是低电平?

    A:INT端口是一个N沟道开路输出口,使用时通常接一个上拉电阻。没有中断输出的时候是高电平,产生中断后变为低电平。


9. Q:时钟芯片的INT脚在不用的时候可以悬空吗?

    A:可以的。


10. Q:SD2401和SD2405是带充电电池的RTC,充满电能用多长时间,没电多久能充满?

      A:充满电后能用6个月左右,电量耗完的情况下72小时可以充满。


11. Q:为什么2月30日也可以设置进去,芯片不能容错吗?

      A:RTC芯片没有容错功能,请务必保证写入的时间。设定不存在的时间或日期数据将导致计数器不能正常计数。


12. Q:我给RTC设定好年、月、日以后它可以自动调整星期吗?

      A:日历对应的星期系统不能自动调整,可以通过一定的算法来实现,下面介绍一种常用的公式:

            A:最常见的公式:

           W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D

           Y 是年份数,D 是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。

           B:最好用的是蔡勒公式:

           W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1

           C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1 月和 2 月要按上一年的 13 月和14 月来算,这时 C 和 y 均按上一年取值。

            两个公式中的[...]均指只取计算结果的整数部分。算出来的 W 除以 7, 余数是几就是星期几。如果余数是 0,则为星期日。


13. Q:我怎么判断时钟芯片内置的电池快没电了?

      A:在芯片VDD不上电的时候测试芯片TEST脚的电压,若小于TEST脚上的电压1.0V表明内部电池电量低;对于SD2405,TEST脚电压小于2.0V表明内部电池电量低。


14. Q:怎么从软件上判断RTC是否掉电了?

      A:读0FH寄存器,判断该寄存器的最低位(RTCF)是否为1,若为1表明RTC掉电。


15. Q:为什么可以读到RTC的时间,而不能写时间?

      A:RTC内置有三个保护软锁(WRTC1~WRTC3),需要把这三个锁位置1后才可以对寄存器进行写操作。置1解锁的顺序为:WRTC1->WRTC2、WRTC3;当写寄存器操作完成后,把这三个锁位置0对寄存器数据进行保护。置0上锁的顺序为WRTC2、WRTC3-> WRTC1。具体可以参考相关官网的Demo例程。


16. Q:RTC出厂时TEST脚的电压是多少?

      A:SD2401:1.75V≥Vtest≥1.18V

            SD2400、SD2404:1.75V≥Vtest≥1.20V

            SD2405:3.0V≥Vtest≥2.30V


17. Q:内置可充电电池的RTC充不进电是什么原因?

      A:检查Vout脚是否有接地。Vout脚接地是无法完成充电的,请将此脚悬空。


18. Q:SD2400可以过波峰焊和回流焊吗?

      A:可以过波峰焊,但是不能过回流焊。


19. Q:SD2400可以使用超声波清洗吗?

      A:不建议使用超声波对时钟芯片清洗。超声波洗净有时会使晶振受到共振破坏。因不能特别确使用条件(洗净机的种类、电源、时间、槽内状态等),因而不能保证超音波洗净的效果。


附录:程序问题举例

1.在切换端口方向的时候引入了STOP信号。

     这个函数开始便设置IO口的输入输出,本没有错。SCL在此操作之前是低电平,但是一些单片机把SCL端口置为输出的时候会使SCL变成高电平,那么问题来了,把SDA置为输入的时候SDA也会由低电平变成高电平,这就形成了一个STOP信号了,总线立刻被释放掉了,之前发送的数据也清零了,当然就等不到ACK回应了。

     SCL线只有一个方向,一直都是输出,只要在START函数里设置一次就可以了。修改的方法是把 DDRA|=0x08 这条语句屏蔽掉就好了。


2.发送STOP信号的时候引入START也可能会是I2C从器件工作不正常。

     上面发送STOP信号的这个函数,看上去没什么错误,但是如果在调用这个函数之前SCL线的状态是高电平,那在这个函数开始调用的时候便会产生一个START信号。比较保险的做法是先拉低SCL,再拉低SDA,把SDA1_CLR和SCL1_CLR调换一下位置就可以了。


3. 对I2C协议总线协议不熟悉导致读指定地址寄存器失败。

     上面的程序看起来好像也没有问题,但实际上是没有了解I2C的传输协议,想当然的认为发送了读命令以后再发送一个地址就可以读到指定寄存器的数据了。正确的时序图如下:

寄存器的地址不是用读命令发送出去的,而是用写命令发送出去的。正确的写法如下:

4. 启动信号保持时间、数据建立或数据保持的时间太短等,可能会导致总线不能响应。

    上面这个程序的问题就在于SDA数据建立的时间太短。对一些处理速度快的MCU,数据是发送出去了,RTC是响应不到的。正确的做法是在p_Clock_CLK=1; 的前面加一个延时:

5. 器件地址错误导致读写寄存器失败。

    上面的程序很显然是对器件地址理解上的错误和I2C总线操作流程不熟悉,没有搞清楚器件地址的读写操作。


扫描二维码推送至手机访问。

版权声明:本文由压电侠晶振资讯网发布,如需转载请注明出处,如有侵权请联系删除。

本文链接:https://news.piezoman.com/piezo/6206.html

分享给朋友:

“SD2400实时时钟FAQ” 的相关文章

晶振工作原理(一分钟看懂晶振的原理)

本文目录晶振的原理及作用晶振在电路中起什么作用晶振是起什么作用的,还有他是根据什么原理造成的时钟晶振电路工作原理晶振的原理一分钟看懂晶振的原理晶振的原理及作用1.晶振作用:给单片机正常工作提供稳定的时钟信号。原理:在石英晶体的两个极板上加一个电场,晶片会产生机械变形,对极板施加机械力使其变形,又会在...

钟表晶振(晶振是IC吗)

本文目录晶振频率晶体管和晶振什么区别晶振电路时钟怎么计算晶振是IC吗时钟芯片和晶振的区别和联系晶振和钟振的區別晶振频率32.768K是最常用的频率,在日常生活中不可或缺。基本信息中文名32.768KHZ晶振含意32.768KHZ是一个很有意义的数字国家日本含意32.768KHZ是一个很有意义的数字,...

三脚的晶振(三脚晶振引脚说明)

本文目录怎样判断三脚晶振的好坏三脚晶振正确接线方法三脚晶振引脚说明两脚晶振与三脚晶振在功能上有何区别三脚晶振有正负极吗三脚陶瓷晶振检测方法怎样判断三脚晶振的好坏根据不同的标准来判断,但总体来说,可以通过以下方面来判断三脚晶振的好坏。首先,结论是可以根据三脚晶振的频率是否稳定来判断好坏,如果频率相对较...

u盘的晶振(u盘里面的晶振是有源吗)

本文目录u盘里面的晶振是有源还是无源u盘的内部结构U盘的内部结构u盘里面的晶振是有源吗u盘裂了还能恢复吗u盘虚焊修补方法u盘里面的晶振是有源还是无源U盘里面的晶振是有源的。晶振是一种通过外加电压来激发内部振荡的元件,也就是说,它需要外部电源来工作。在U盘中,晶振通过将电信号转换为机械振动,来产生一个...

外接晶振(片上晶振与外置晶振有什么区别)

本文目录功放里怎么加晶振单片机外部晶振和内部振荡哪个好片上晶振与外置晶振有什么区别单片机晶振引脚怎么接晶振对音质的影响大吗51单片机晶振怎么改功放里怎么加晶振双击晶振,进入编辑元件的界面,可以修改晶振大小等参数。输入关键字CRYSTAL,即可出现晶振,是无源的,protues中没有有源晶振,在pro...

晶振的焊接(晶振遥控器怎么配对)

本文目录u盘如何换晶振三脚晶振分不分方向石英钟晶振更换方法晶振的负载电容怎么计算晶振遥控器怎么配对温度焊接的正确方法u盘如何换晶振U盘上的晶振大多是12M,24M的晶振,这东西很好找,去电脑城找就行了,只不过不知道你的晶振是什么样子的,厂家拿货才2毛多一颗,单买可能要贵点.你最好是把U盘上的那个拆下...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。