单板是采用外部纽扣电池3V通过电源芯片转换成1.8V给AM3358的内部RTC供电,电池电量充足的时候,系统启动正常。取下电池的时候,系统也启动正常。但是在电池使用一段时间以后,系统有时候在启动过程中会内核卡死在RTC初始化附近,而且不容易复现,请问下有什么解决方案不?
Shine:
请先确认一下电池用过一段时间后,3V通过电源芯片是否还能转换成1.8v?
user4658072:
回复 Shine:
用过一段时间,3V电池确实有压降。不过后来把电池拔下来可以正常启动,再把电池安装上去也能正常启动。就是想请问下,即使电池掉电了,也不至于会影响到内核启动卡死吧,是不是内核驱动里面需要修改?具体是在那一块呢?
Steven Liu1:
回复 user4658072:
如果RTC部分的供电不正常,但是在内核中需要去进行RTC的初始化,对RTC模块进行读写操作是有可能发生这种问题的。
之前在debug的时候,就曾经提到过,如果不使用RTC的话,需要把内核中的RTC相关模块给注释掉,这样就不会导致RTC卡主内核了。参考如下:
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/51326.aspx
user4658072:
回复 Steven Liu1:
我需要使用RTC呀,那这个bug有什么好的解决办法没?
Steven Liu1:
从外部硬件设计的角度出发,确保你的RTC的相关供电电压工作态是正常的。总不能在硬件设计有供电异常的可能下,期待软件方面给你把这个问题修复吧。
PS: RTC那一路,在我们EVM板的设计上,RTC的1.8V,是直接通过外部的PMIC产生给的。
确认一下,你是希望使用AM335x内部的RTC做掉电时钟保存啊,还是只是为了外部的RTC 32K时钟。如果是后者,可以和EVM保持一样的设计。
user4658072:
回复 Steven Liu1:
主要是前者,用AM335x内部RTC做掉电时钟保存。如果这样,不可能完全保证电池永远不掉电呀。
user4658072:
回复 Steven Liu1:
有什么解决方案么?
Denny%20Yang99373:
回复 user4658072:
最好用外部的RTC
功耗更低