【兴威帆RTC应用经验】SD2059 RTCF莫名复位详情原因分析

 

深圳市兴威RTC SD2059作为一款官方对8563的产品,在客户实际替换过程中虽软件不能百分百兼容,但是对于不大熟悉此款芯片应用的工程师,在调试过程中或多或少会遇到比较棘手与不得其解的问题。

本文意在通过实际案例呈SD2059在客户复杂电源环境中频繁出RTCF(芯片所有电源掉电指示位)置位的现象,最终证实RTC假象。希望通过此篇文字经验总结,帮助各工程师更能深入理SD2059 RTCF设计初衷,避免后续出现类似问题。

案例主要问题与现象如下:客户产品为一款气体探测及报警器,在产品试产过程中,出现一半产品时间复位,万用表测电池电压却又基本是满电,符RTC的供电要求。主要异常点可归纳为产品会随机出现时间误差大、有些刚测试良好的产品,在下一个工序就测试出时间乱、或者本身已经包装OK品的产品,在抽检过程中又出现时间乱等的现象。但是NG品上电后一直通电测试走时,又能稳定计时。客户工程师与产线IE经过多次试验均无法解释问题疑点,请求笔者协助,笔者将分析过程简述如下:

1、       查找客户硬件,客户原理RTC部分与电源部分如下,从电路中可以看到主板中集成了整流桥,恒流恒压的原边反馈控制器,其输出VCC电压直接RTC与主控供电,又12V5V供电,同时备用电源使用电池利BAT54C双路二级管隔开。询SCL/SDA上拉电阻使MCU4.7k上拉RTC部分原理图符合兴威帆官方推荐电路的应用,并无疑点。

img1

img2

2、       RTCF位作为兴威帆引以为傲的掉电复位检测位,可以监RTC的供电是否正常,一旦出现芯片断电,那内部的时间数据自然不再可靠,也是居多用户判RTC正常工作的标志之一,其使用正常情况从未出现过差错。但在本次应用中显然出现了特例RTCF无法准确预RTC掉过电,理由是客户产品表现出来的各种异常现象RTC掉电情况几乎一致,所以笔者暂时VDD电源开始分析,试图从板子上电与下点过程中抓到引RTCF置位,因笔者对此类电源设计的分析在以往异常案例中屡试不爽,暂且感性先入为主认RTC供电电源确实有异常,需要着重分析。

3、       拆开客户产品取PCB板,使用示波器探头挂接VDD,果然在板子上电与下电过程中便抓取到如下异常波形。上电瞬VDD端总会出现幅度较高的振荡杂波,电源有时会掉得很低,窃以为是电源端的波动SD2059 芯片以为掉电了,从而主动置RTCF,同时据客户说,在他们前期的产品中电源输出端均会添加热敏电阻TVS管、电阻等器件尽量减小来自电源端的干扰,但在此款产品中为了达到降成本目的,此类物件直接被省略了。为了验证笔者猜想,直接手工焊接上之前方案中降低电源干扰的器件,希望问题得以解决。

微信图片_202211191512201

微信图片_20221119151220

4、       如前述,在解决了电源干扰的问题后继续RTC不断上下电的实验,满以为问题即将解决时继续试验还是出现RTCF置位的情况,此时电源端的干扰导RTCF置位的解释就不攻自破了,从硬件方式查找问题目前已无计可施了,转而尝试软件方式看下客户代码是否有问题。使用逻辑分析仪抓取客户读0x0F寄存器时序,因RTCF寄存器0xF寄存器bit0位置(如下图)

img5

5、       通过逻辑分析仪多次抓取时序发现如下问题0x0F寄存器值总是在变动,有时变0x21,有时变0x44等随机数值,通过询问客户软件判RTCF位置位方式,客户自述,读0x0F&0x01,一旦判断1则认RTCF置位了,此方式是大多数软件工程师的惯常操作方式,但是多次抓0x0F寄存器值时,偶然发现实际上读到0x0F值不是真正0x0F寄存器值,而是秒寄存0x00的值,进而修改代码同时打0x000x0F寄存器的值,发现二者一致。

6、       此时笔者恍然大悟,客户一直认为RTCF位置位了,并不是真正地置位了,而是因为读到了秒寄存器值,当为奇数秒时误以RTCF置位了就主动改写SD2059的时间,同时再展开读0x00秒寄存器值0x0F寄存器值波形分析发现如下异常信号。客户在读取指定地址值时发送完器件地址、寄存器地址后,理应再发Restart信号,但是无意间因为代码的不完善引入了一Stop信号,放大时序图之后才真正发现导致此批产品时间总是变乱RTCF莫名出现置位报凶,至此真相大白,再修改好时序问题后产品异常现象消失,用户得以正常生产出货。

微信图片_202211191512203

 

2022年11月26日 20:11
首页    应用文章    【兴威帆RTC应用经验】SD2059 RTCF莫名复位详情原因分析