疑难案例分析1:emmc模式无法启动,而且上电几秒内,复位键不起作用

一、概述

最近遇到一个特别奇怪的问题:客户一个mpsoc的板子,在改板后,启动模式设置成emmc无法启动。而且在上电几秒内,连复位键都不起作用。按道理按复位必然重启,这是硬件逻辑,不可能出现这种情况。

二、问题分析

1.问题复现

到客户现场后,打开秒表计时,同时拍摄视频用于逐帧精确分析。结果发现实际上并不止几秒,而是大概13秒左右才会响应复位。

2.原理图分析

经过审查原理图,板卡的上电顺序为

PS AUX -> PS PLL -> PS MGT -> PS IO -> PS DDR

而复位PS_SRST_B和PS_POR_B都接到了PS AUX,也就是在复位释放的时候io和emmc都还没准备好。所以这时候没法正常启动。

彻底的解决方案是把复位的电源接到最后一个电源上,不改版折衷的情况,加电容延后复位信号,让复位在电源正常后再变高。这个电容值要仔细测试,并且要考虑到批量生产时电容容值的精度,以及高低温下容值的变化,要留出足够的裕量。

3. 为什么上电十几秒内复位键不起作用

原理图上的复位按键是接在PS_SRST_B上。在ug1085的Ch38: Reset System这章有说明,上电时会先执行csu rom,由csu加载boot,根据boot是否为secure模式来决定是否使能PS_SRST_B。

客户这种情况刚好一直读不到boot,导致卡在这里,一直等到超时PS_SRST_B才能正常工作

因此只有接在PS_POR_B上才能保证任意时刻都能复位。官方的开发板比如zcu104和zcu106都是PS_SRST_B和PS_POR_B两个都接,只接一个复位按键的情况下建议保留PS_POR_B而不是PS_SRST_B。

4. 深入分析

但是为什么是十几秒这个值一直困惑着我,由于现场没有示波器无法抓波形,只能暂时搁置了。直到这周调另外一块板时,发现了这个波形

图里这两段波形是qspi模式下BootROM两次读取boot时抓取的,间隔是415ms。

而32*0.415=13.28秒 

怀疑是MultiBoot模式下重试了32次导致的,暂时手头没有带emmc的开发板,后续还需要找到板卡实际验证这个猜想

MultiBoot原理可以参考UG1085的Ch11 Boot and Configuration

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值