Zynq-7000 SoC,SDIO - 如果启用了自动CMD12,则可能会错误地发出第二个CMD12

描述

如果在执行Auto CMD12命令期间,软件发送另一个命令(例如CMD13)以轮询程序状态,则应该将第二个CMD驱动到CMD线。但是,CMD12再次被驱动。

影响:轻微,请参阅下面的解决方法。

受影响的配置:使用SDIO控制器的系统。

受影响的器件版本:全部,无计划修复。请参阅(Xilinx答复47916) Zynq-7000设计咨询主答复记录

变通

在启用Auto CMD12的情况下进行多块传输时,避免发送任何非数据传输命令。换句话说,任何非数据传输命令只应在Auto CMD12完成后发送,如传输完成中断所示(寄存器的第1位为0x030)。软件驱动程序在发出新命令之前轮询此中断。

当软件发出CMD18或CMD25后跟自动CMD12时,控制器如何响应:

1.发送CMD18 / 25。
2. CMD18 / 25的Command_Complete中断。
3. CMD18 / 25和Auto CMD12的Transfer_Complete中断。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:51:00 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它