工具/软件:Linux
您好!
我在使用 AM3352和 DDR3-SDRAM 的定制板上的产品开发遇到了一个主要(挂起)问题、但仍在努力寻找根本原因。 请提供一些建议。
问题:
当重复发生深度睡眠1"暂停/恢复"时、暂停会在数百或数千次内失败一次、最终系统挂起。
硬件/软件配置:
硬件
基于 BeaglBone Black 的定制板
-AM3352BZCZD80
-DDR3-SDRAM (MT41K256M16TW-107 IT:P)
-无 VTT 稳压器
-无终止
-PMIC (TPS65910A3A1RSL)
软件
TI-SDK-AM335x-EVM-05.07.00.00
位置
路径:arch/arm/mach-omap2/sleep33xx.S
系统在“DDR 内存自刷新条目”和“WFI”步骤之间挂起
1.与 v7_flush_ICache_all 相同-保存分支
2.保存 EMIF 配置
3.对于 DDR3,通过控制模块将 DDR_RESET 保持在高电平
4.自刷新条目
5.给系统一些时间进入 SR (大约1.0ms)
6.宏 DATA0的弱下拉<-控制模块的 DDR_Data0_ioctrl 写入访问时挂起
7.宏 Data1的弱下拉
8.宏 CMD0的弱下拉
9.宏 CMD1的弱下拉
10.宏 CMT2的弱下拉
11.将 IO 置于 mDDR (CMOS)模式
12.禁用 EMIF
13.禁用 VTP
14.启用 SRAM LDO RET 模式
15.PLL 旁路
16.WFI
调查结果:
-假设 A8被挂起、因为当问题发生时、它无法将 A8内核与 JTAG 连接
-M3内核的 JTAG 连接即使在事件发生后也没有问题。
-当问题发生时、电源电压(VDD_MPU=0.95V、VDDS_DDR=1.5V、VDD_CORE =1.1V)设置在标准范围内
(当它在执行过程期间自动从 PMIC 模式切换到 PFM 模式时,每个电源的电压一致波动±20mV。)
-DDR_CKE 上的低电平(正常)、当问题发生时(大约0V)。
-出现问题时,在 DDR_RESETn (正常)上保持高电平。
我无法确定它是由硬件还是软件引起的。
您是否会提供建议、以确定可能的根本原因或您遇到的类似问题或任何其他问题。


