在
MT6225平台上一个项目的问题,问题小结。
在一个项目上测试发现,进入待机后,打电话不接挂掉,界面弹出POP框后直接死掉。概率在10%,抓了个TRACE,啥也没有,只是显示是看门狗超时复位。
软件查了许久,没有找出原因,后来把
WATCHDOG关闭,没有此现象,那么问题就是看门狗,以前25量产过很多项目都没有这个问题,哪里不对,总结下来很有可能是硬件问题,查找硬件,原理图没有问题,再看PCB LAYOUT,发现32K的线面走了LCD的数据线和MT6302的SPI口的CLK线。马上做实验,把MT6302的SPI口频率降低,发现死机概率也降低,问题就在这个走线干扰了。后来找到MTK有个专门的关于这32K晶振走线的文档,所述的情况和这个项目非常类似。
后来猜测,在主板进入慢时钟的时候,系统会对32K做采样校准,但是在刚进SLEEP的时候,32k收到了干扰,导致出现校准参数不准,影响了看门狗的计数。。纯属猜测。后来修改了32K的幅值,修改一个电阻,RIN管脚的阻值,由150K到68K即可解决改问题。
在这个问题中,还发现在系统计入SLEEP后,MMI的TIMER的定时基准是由这个32K来提供的,因为此时GPT的模块是关闭的,否则无法进入慢时钟。进入慢时钟后,系统的都挂起,代码也停止运行,只有事件或者中断过来才会重新进入正常工作模式。