调试记录 RTC芯片 型号INS5902A 断电之后再开机系统时间不变的问题。

1. RTC芯片断电之后再开机系统时间不变的问题。

1.1 RTC 芯片资料

 INS5902A  RTC芯片相似的资料:  (可能有些不同) (资源里面有)2236A7EBB7008C9403613B437D9E5451.pdf (szlcsc.com)


1.2  现象及问题说明。 

1.  我们的机器运行的时候,在显示屏上看系统时间正常运行。

2.  当我们关机之后再打开,发现系统时间是上次关机的时间,时间没有变。

3.  RTC芯片是否正常情况未知。观看其表面状态没有发现问题。

4. 在系统终端 上可以写入时间。 命令: hwclock -w -f /dev/rtc0

5. 在系统终端 上不可读取时间。 命令: hwclock -r

链接:嵌入式linux开发,多个rtc实时时钟读取、写入操作命令_/dev/rtc0-CSDN博客

6. RTC时钟  I2C 通信通过电平转换器件来和CPU 通信。

7. 这个  I2C  连接了 两个器件 (主从设备通信)

8. 在 I2C 的挂载上没有看到这个器件。 (这个之前不确定, 实验过后才知道没有这个RTC器件没有挂载,因为 这个I2C  上面有多个器件挂载,不知道里面是否含有 RTC )


1.3 怀疑问题出现的地方

1. 备用电池没有电。

2. 线路问题,备用电池的电没有给到器件。

3. 器件没有焊接好。

4. 器件已经损坏。 

5. CPU 的BIOS 没有配置好。

6. 中间传输信号的线路有问题,  (因为系统下写入命令成功所以排除了)


1.4 问题排除历程

1. 使用万用表测量纽扣电池电压为3.1V 。     (排除备用电池没有电)

2. 万用表蜂鸣档  测量线路是否有短路现象。 无短路现象 (排除线路问题)

3. 使用万用表测量RTC 芯片下的备用电源的电压是否有, 焊盘有3.1V 的电压  (排除线路问题)

4. 在软件上解决问题,再次调整 CPU 的BIOS  发现没有什么可以调整的。 询问CPU公司的技术人员,他说要我们查看这个  I2C 上面有无挂载, 我们看到有挂载器件但是不确定那个就是RTC。没办法了。 (软件行不通)

5. 最后一条路,更换器件, 我们更换了 RTC 的芯片, 之后发现软件上查看 I2C 上多了一个挂载,可以读到这个器件的寄存器, 而且它的寄存器的数值一直在变化。确定那个挂载的器件就是RTC了。 (现在确定器件坏了)

我以为搞好了,但是还有问题!!!!      



2. RTC 断电上电之后 RTC 分钟 秒钟 寄存器复位的问题

2.1 现象及问题说明

1. 在我们解决系统时间在断电之后 RTC 不工作,上电时系统时间和之前断电时的系统时间一样的问题后,又出现了一个新的问题, 我们在每次开机之后, 年月日和小时是和之前一样的,但是 分钟和秒和毫秒都会清零。 

2.我们在断网的情况下把系统时间调整到 6.50 , 断电20 分钟后再上电,发现系统时间变成了 7:00,证明再断电之后RTC器件有工作。在多次测试这个实验后发现结果都一样。 (排除RTC 器件有问题)(记得向RTC 器件写入时间)


2.2  怀疑问题出现的地方

1. 在和自己公司软件人员讨论后,他说可能器件发生复位了,导致器件的寄存器部分清零。 

2. RTC 器件的一部分寄存器坏了。(感觉不可能)

3. 驱动问题 (RTC 有驱动程序的,之前我们没有这个文件)。

4. 系统问题(自动更新时间没有开)。

5.RTC  的时序问题


2.3  问题排除历程

1.硬件问题,上电时候的尖峰电压或者尖峰电流导致器件复位。我是用示波器测量它的上电的电压,没有发现明显的尖峰。 之后我又把RTC器件VDD 电源旁边的电容增大,目的降低那个尖峰电压或者尖峰电流,但是问题没有解决。 (先排除这个问题)

2. 软件上和 RTC芯片的技术人员要了 驱动,之后装上去没有作用。 (排除驱动问题)

3. 时序的话,示波器没有很好的量出来。  (自己的问题)

4. 系统时间自动更新也开了, 没有解决问题。 

5. 之后软件人员一个人搞了许久,他说这个是 PCU 的BIOS 问题,但他没有办法解决。

6. 我想一个办法,我对他(软件技术人员)说: 可以把CPU 的BIOS 对RTC寄存器的操作关闭,使RTC 寄存器的数据保存完整, 到了系统启动之后,到自启动程序中写入一个程序,程序的功能:控制中断读取 I2c 挂载的0X30 寄存器的数据, 读取 年,月,日,小时,分钟,秒,毫秒的数值,然后使用这些数据更新系统时间。 这样保证系统时间正确。(有点误差),(这个办法只能应对紧急的情况)

7. 没办法了,再次换RTC芯片(新的型号:INS5699C, 就是替换料。但是问题一样分钟,秒寄存器有问题。 (人已经疯狂)

8.  最后确定问题出现在 CPU 的BIOS里面。 (这个 BIOS 程序需要CPU 的软件人员提供技术支持)  

一个人的独白:我和那个RTC芯片公司的人聊了一天啊!,还是没有解决问题,各种办法试过了。 还是没有搞好,他最后来了一句,其实这个芯片之前有过多次这种一模一样的案例都没有解决。我靠,我直接崩溃。不早说,我就不在硬件上找问题了。到了最后我们排除了各种出现问题的地方,确定问题出现在 BIOS 上面。 



你可能感兴趣的:(#,硬件知识,调试问题积累,嵌入式硬件)