310 RC系列产品EMMC调试问题案例
问题背景:
310 RC系列产品在回板调试中,发现产品在emmc启动配置下启动失败,打印如下:
Get Bootarg raram:U
BootMode: Ox1. PXE Boot!
non-secure boot.
send CMD 1 errord=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error, Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89Ll emmc init error Ret = 0x7!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error, Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error Ret = 0x7!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error, Ret = OxZ!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[7OL] emmc init error, Ret = OXFFFFFFFF!
[EMMCBlockReadBlocks]:[89L] emmc init error Ret = 0xZ!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error, Ret = Ox7!
current keypoint[93], last keypoint[11. NumOfLoadFileHandles = 4, Status = Success [PxeLoadFilellndex = 0, Status = 0.
Checking media [Passl
无法建立EMMC连接开始制卡。
定位思路:
- 确定问题类型:
是单体环境的偶发现象,还是多台环境的必现问题?——多台环境的必现问题
固件包是否使用最新的固件——是
- 问题界定:
从打印来看,是emmc读取方面出了问题,固件已是最新版本,且启动过程在较为初始的软件阶段,初步可以排除软件问题,往硬件问题的方向定位。
验证结论
检测emmc颗粒在上电过程中的时钟波形如下:

从图像中可以看出以下信息:
- 时钟电平不对,高电平只有1.2V,正常的EMMC时钟高电平应该在1.8V左右
- 时钟频率是正常的,启动阶段,时钟频率可以达到400kHZ
什么原因会引起高电平数值不达标呢?
- 电源供电问题:eMMC的电源电压供应不足会导致时钟信号的高电平达不到预期值。 1
- 检查电源线路是否有接触不良或损坏的情况,确保电源能够稳定地提供所需的电压。
- 验证电源管理IC(PMIC)的输出电压是否符合规范,特别是1.8V的电源轨。
- 电路设计问题:电路设计不合理也会影响信号电平。
- 检查PCB布局是否存在信号线过长、走线不佳等问题,这可能导致信号衰减,影响电平质量。
- 确认信号线上是否有适当的匹配电阻,以减少反射和信号干扰。
- 探头选择不当:使用不合适的示波器探头也会导致测量结果与实际值有偏差。
- 建议使用高带宽的无源探头或有源探头进行测量,确保探头带宽至少为信号频率的5倍以上,以获得准确的测量结果。
- 检查探头是否与示波器正确连接,避免因连接问题导致测量误差。
- 环境噪声:外部电磁干扰(EMI)可能会对信号造成影响,导致测量结果不准确。
- 尝试在屏蔽环境中进行测量,以排除外界噪声的干扰。
- 检查附近是否有强电流、高频信号源等可能的干扰源。
问题确认
以上述思路进行排查,发现在电路设计时,时钟的对地电容(红圈位置)过大,客户选择了0.1uf(100000pf)的电容,实际的参考原理图给出的电容为27pf。,修改电容容值后,问题解决。

设计的问题点:
未考虑到 RC充放电延迟效应,单纯的增大了对地电容的数值
时间常数(τ = RC):时钟
的输出阻抗(R)与对地电容(C)共同构成RC回路。电容增大时,时间常数τ增大,导致信号充放电速度变慢。
电平建立时间不足:在高速时钟下,若τ接近或超过时钟周期的1/2,驱动器无法在半个周期内将电压充/放到目标值(如逻辑高电平)。例如:
若时钟频率为100 MHz(周期10 ns),驱动器需在5 ns内完成充电。若τ过大(如5 ns),电压仅能充到约63%的目标值,导致高电平不足。
310 RC系列产品EMMC调试问题案例
问题背景:
310 RC系列产品在回板调试中,发现产品在emmc启动配置下启动失败,打印如下:
Get Bootarg raram:U
BootMode: Ox1. PXE Boot!
non-secure boot.
send CMD 1 errord=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error, Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89Ll emmc init error Ret = 0x7!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error, Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error Ret = 0x7!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error, Ret = OxZ!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[7OL] emmc init error, Ret = OXFFFFFFFF!
[EMMCBlockReadBlocks]:[89L] emmc init error Ret = 0xZ!
send CMD 1 error coed=0x104 emun eMMC error!
[EMMCReadWriteBlocksl:[70L] emmc init error Ret = OxFFFFFFFF!
[EMMCBlockReadBlocksl:[89L] emmc init error, Ret = Ox7!
current keypoint[93], last keypoint[11. NumOfLoadFileHandles = 4, Status = Success [PxeLoadFilellndex = 0, Status = 0.
Checking media [Passl
无法建立EMMC连接开始制卡。
定位思路:
是单体环境的偶发现象,还是多台环境的必现问题?——多台环境的必现问题
固件包是否使用最新的固件——是
从打印来看,是emmc读取方面出了问题,固件已是最新版本,且启动过程在较为初始的软件阶段,初步可以排除软件问题,往硬件问题的方向定位。
验证结论
检测emmc颗粒在上电过程中的时钟波形如下:
从图像中可以看出以下信息:
什么原因会引起高电平数值不达标呢?
问题确认
以上述思路进行排查,发现在电路设计时,时钟的对地电容(红圈位置)过大,客户选择了0.1uf(100000pf)的电容,实际的参考原理图给出的电容为27pf。,修改电容容值后,问题解决。
设计的问题点:
未考虑到 RC充放电延迟效应,单纯的增大了对地电容的数值
时间常数(τ = RC):时钟
的输出阻抗(R)与对地电容(C)共同构成RC回路。电容增大时,时间常数τ增大,导致信号充放电速度变慢。
电平建立时间不足:在高速时钟下,若τ接近或超过时钟周期的1/2,驱动器无法在半个周期内将电压充/放到目标值(如逻辑高电平)。例如:
若时钟频率为100 MHz(周期10 ns),驱动器需在5 ns内完成充电。若τ过大(如5 ns),电压仅能充到约63%的目标值,导致高电平不足。