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

SD2058 FAQ

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


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

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


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

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


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

    A:1. SD2058已完全掉电,再上电读到的时间是随机数(可能是乱码);

          2. SD2058的VBAT脚悬空也可能会读到乱码;

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

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

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


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

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


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

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


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

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


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

    A:可以的。


10. Q:SD2058不起振是什么原因?

      A:1. 晶振两脚之间有走线、受污、凝结等原因存在泄漏。请洗净干燥后再试;

            2. 晶振电路的走线过长,在PCB布线时晶振电路的走线应尽量短且尽可能靠近IC;

            3. 负载电容或匹配电容与晶振不匹配或者电容质量有问题(请参考11.Q);

           4. PCB板受潮,导致阻抗失配而不能起振;

           5. 晶体质量有问题。


11. Q:SD2058应该使用多大的匹配电容?

      A:负载电容为6pf的晶体通常使用7pf的匹配电容;负载电容为12.5pf的晶体通常使用15pf的匹配电容。


12. Q:SD2058的功耗很大,后备电池很快就没电了?

      A:正常情况下SD2058的功耗约为1uA。

            1. 上拉电阻接到了电池端。可参考SD2058手册中介绍应用参考电路;

            2. 可能芯片已损坏,换一个芯片后看是否正常。


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

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


14. Q:SD2058的32K脚是上电就有输出吗,怎么控制它输出和禁止输出?

      A:SD2058上电就会有32K的频率方波从32K脚输出,通过内部寄存器使能32K输出。


15. Q:为什么我给SD2058上电没有测得32K脚输出波形啊?

      A:需要接上拉电阻。


16. Q: 为什么SD2058只能读到12个字节用户RAM寄存器,不是有44个字节吗?

      A:访问SD2058从20H地址开始往后的寄存器均不返回ACK,读写20H以后的地址请不要对SD2058返回的ACK进行判断。


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

      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,则为星期日。


18. Q:怎么从软件上判断SD2058掉电了?

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


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

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


附录:程序问题举例

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/6204.html

分享给朋友:

“SD2058 FAQ” 的相关文章

晶振规格(晶振一般多大)

本文目录晶振一般多大晶振怎么标识m.2晶振多大晶振频率晶振电容大小选取规则主板晶振的型号通用吗晶振一般多大晶振是电子设备中常用的时钟元件,它的大小和频率取决于具体的应用需求。一般来说,晶振的大小可以从几毫米到数十厘米不等,常见的尺寸包括1.2mmx1.2mm、1.5mmx1.5mm、1.6mmx1....

无源晶振电路(有源晶振和无源晶振的引脚定义)

本文目录电路无源晶振引脚电压的问题如下描述晶体管和晶振什么区别无源晶振使用方法12mhz晶振不起振无源晶振为何要选好匹配电容有源晶振和无源晶振的引脚定义电路无源晶振引脚电压的问题如下描述根据描述晶振应该是起振的并频率一致,所以芯片损坏的可能性最大。晶体管和晶振什么区别晶体管和晶振的区别是晶体管可以将...

晶振行业(未来的晶振行业怎么样)

本文目录未来的晶振行业怎么样晶振频率晶振的原理及作用中国十大晶振品牌分别是什么企业晶振产品生产壁垒高吗未来的晶振行业怎么样晶振行业现在市场比较混乱以次充好,价格压的很低,所以到最后是两败俱伤的局面。格局,日本品牌在市场上唱主角,其次是台湾品牌,大陆,欧美品牌,大陆的代表企业是东晶电子和晶源宇丰电子为...

晶振与电容(DS1302晶振和电容怎么选)

本文目录万年历时间不准换晶振还是换电容晶振并联20p电容作用如何正确匹配石英晶振的负载电容晶振旁边两电容电压一样吗DS1302晶振和电容怎么选晶振如何匹配电容万年历时间不准换晶振还是换电容万年历不准时可能是因为晶振老化或损坏,也可能是因为电容问题。如果晶振的频率偏差较大,可以尝试更换晶振来解决时间不...

深圳晶振厂家(珠三角哪个晶振工厂做的比较好)

本文目录什么品牌的晶振好深圳哪家PCBA工厂比较好珠三角哪个晶振工厂做的比较好深圳的SMT加工厂哪家好,是靖邦电子吗什么品牌的晶振好1)扬兴晶振深圳扬兴科技有限公司2、KOAN北京凯擎东光电子有限公司3、台湾晶技台晶(宁波)电子有限公司4、惠伦晶体广东惠伦晶体科技股份有限公司5、星光鸿创深圳市星光鸿...

有源晶振引脚(有源晶振和无源晶振的引脚定义)

本文目录有源晶体和无源晶体怎么区分什么是有源晶振,有何作用有源晶振有分极性吗无源晶振有方向吗晶振管脚怎么判断有源晶振和无源晶振的引脚定义有源晶体和无源晶体怎么区分1无源晶振无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确。无源晶...

发表评论

访客

看不清,换一张

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