ksws0482846 发表于 2013-1-26 10:44:31

SDHC卡初始化完成,进入传输模式(tran),发送CMD17无效

6410 SD控制器驱动,初始化顺序为
CMD0->CMD8->ACMD41->CMD2->CMD3-CMD7。
发送完CMD7后查询卡状态,为4,即传输泰。
按手册上的状态转换图,此时我发送CMD17的话,卡是应该进入状态5的,即数据态,可无论我怎么发CMD13查询卡状态都只返回状态4,也就是说CMD17命令并没有将卡从传输态转换到数据态。
不知为何,是不是中间还有一些需要配置的东西没弄。

ksws0482846 发表于 2013-1-26 17:47:23

急等高手现身,求解答。

ksws0482846 发表于 2013-1-28 19:45:54

还是我自己结了吧。6410 SD控制器中有一个命令标志位是请求数据线的,在使用读写命令时,一定要置位该标志位。我也是今天无意中看到的

dboyzju 发表于 2013-1-28 21:02:57

CMDREG0里面的bit5?

ksws0482846 发表于 2013-1-29 18:30:12

dboyzju 发表于 2013-1-28 21:02 static/image/common/back.gif
CMDREG0里面的bit5?

我这儿没手册,明天上班看下。应该是的,以前直接软件SPI调的时候什么都不用管,发个CMD0-CMD1就ok,然后发读取命令就会出数据,觉得6410 SD控制器设计上有些乱,到处是标志位。

dboyzju 发表于 2013-1-29 22:11:16

ksws0482846 发表于 2013-1-29 18:30 static/image/common/back.gif
我这儿没手册,明天上班看下。应该是的,以前直接软件SPI调的时候什么都不用管,发个CMD0-CMD1就ok,然后 ...

SPI简单一些,SDIO复杂。

ksws0482846 发表于 2013-1-30 09:57:10

dboyzju 发表于 2013-1-29 22:11 static/image/common/back.gif
SPI简单一些,SDIO复杂。

刚看了下,确实是bit5,Data Present位,数据就绪,其实就是数据线请求标志位,估计是告诉控制机需要使用数据线。

banruoxiaoyi 发表于 2013-4-11 11:12:44

我最近在搞sdio读sd卡,sdio是模拟的,现在标准sd卡是读写没问题的,但是sdhc读总是出问题,卡上电第一次读是正确的,之后读就会出错,跟楼主的情况一样吗?楼主留个联系方式,请教一下

banruoxiaoyi 发表于 2013-4-11 11:13:01

我qq1035548005 般若

ksws0482846 发表于 2013-4-14 19:50:47

banruoxiaoyi 发表于 2013-4-11 11:12 static/image/common/back.gif
我最近在搞sdio读sd卡,sdio是模拟的,现在标准sd卡是读写没问题的,但是sdhc读总是出问题,卡上电第一次读 ...

SDHC卡和SD卡的流程有点不一样,不知道你注意到了吗?
不清楚你说的出错时具体在哪个地方出现了错误,我是初始化完成了,然后发送读取命令不能读到数据

ksws0482846 发表于 2013-4-14 19:52:07

banruoxiaoyi 发表于 2013-4-11 11:13 static/image/common/back.gif
我qq1035548005 般若

大家都是交流学习,可以供他人参考

banruoxiaoyi 发表于 2013-4-18 15:15:16

楼主你好,我这边不能定位问题,现象时sdhc上电后初始化正常,第一次发送cmd17也能读回正确的数据,但是读取一次以后,在发送cmd17读取数据,读取回来的数据就出错了,crc校验码页有问题,现在还不能定位
另外现在我吧sd卡的接口同时接到了stm32的spi和我68013的io上了,stm32的相关io设置成了浮空输入,想只用68013控制sd卡,68013能够正确的发送命令,但是卡不能正确回应,我怀疑是sd卡的驱动能力不够,不知道有没有人这样两个单片机同时接一个sd卡用过,用过的请指点,谢谢

ksws0482846 发表于 2013-4-18 21:54:05

那你为什么不初始化一次读取一次,看第二次初始化能否完成,完成后能否正常读取数据

xiefy21 发表于 2013-8-14 08:47:37

mark……
学习了…
页: [1]
查看完整版本: SDHC卡初始化完成,进入传输模式(tran),发送CMD17无效