SD卡 CMD7的问题
最近闲来无事,把MINI2440翻出来玩了玩,想研究一下SD卡。根据SD2.0 SPEC驱动了一把,用的是SDI接口,4 DATA,发现初始化到 CMD7 时卡住了。
过程中第一次发CMD3的时候卡回的 RCA=1 但这个时候卡的状态依然是 Identification ,于是我又发了一次CMD3,卡返回的 RCA = 2,卡的状态就进入Stand-by
CMD7是R1B的response,第一次发CMD7,检查response,发现依然处于stand-by状态下,继续发CMD7,就是连续的超时,没有response,这时候发CMD0复位倒是可以的。我在想是不是应为是R1B的response,所以要检查一下busy,根据SPEC,busy是从DAT线上反馈的,难道是发CMD7之后还需要连续检查是否busy的机制?
第一次研究SD卡,知道的大大帮忙分析分析。 问题解决。
发CMD7回的response可以不管,继续发CMD55+ACMD6设置DAT总线宽度,此时CMD55回的response下的状态已经是Transfer-state了。
不知道是卡个体的原因还是对SPEC的那个流程图的误解,反正流程图上画的是 Stand-by-State ----> CMD7 ----> Transfer-State。
改天早找其他的卡试试。
还有就是该SD卡的 Manufacturer ID = 0,OEM/Application ID = 0, Product name = APPSD....
难道又是假冒伪劣的KINGSTON!!! 我也遇到和你一样的问题,但是这样通过后所有的命令都无法进入data状态,而且按手册上说的也无法回到Stand-by-State 我也遇到这个问题,示例程序上的做法可行,但是我自己的程序无论等待多长时间一直是stdby状态,没找到原因。 你好,我也在调试这个SD卡的SD模式,现在碰到了和你一样的问题,请问你是怎样解决的?发送完CMD7之后再发个CMD0吗?谢谢了 我最近也在学,你第一次发完CMD7后应该用个循环不断查询卡的状态(用CMD13,返回状态)一直到进入Transfer State,另外现在进展如何?我也遇到了一些问题,希望能帮我解答一下,我的问题是:
工作在SD模式下,之前发送ACMD41就是CMD55+ACMD41返回都正确,后来进入了Transfer State想发送ACMD6设置为4-bit总线,但是发送完CMD55后返回0x00000920,表示Transfer State,期待ACMD,再发送ACMD6之后返回仍为0x00000920,还期待ACMD?有没有人做过SD卡裸机驱动,帮忙分析一下,弄了好多天了,进展缓慢,刚有点进展又卡在这里了。。。忘了说了,我的卡是金士顿的4G SDHC卡,Class4的。
页:
[1]