前面从CMD0,CMD55,ACMD41,CMD2,CMD3,CMD7,CMD55,ACMD6,都能过,且都能进入相应的状态,对照着规格书上相应的response,和状态都是对的。但是在我发送CMD17的时候,根据规格书上说发完后就要从TRANS进入DATA模式,但是我始终是没有进入DATA模式,我现在又怀疑一下几点
1.我的CLK的设置,我是这么做的,在初始化的时候在100K的模式下进行的,当我在发送CMD17之前我就将CLK直接设置到了25M.并没有所谓的和SD卡的协商。
2.我在发出CMD17后。我读present status寄存器的read transfer active,和DATA line active.都是1, 表明SD卡上的DAT line in use.但是我用示波器测DAT[0],DAT[1],都一直是高,根本就没有数据过来,不知道是不是数据传的太快了,我只是为了去读分区表,所以CMD17的argument 填的是0.也不知道这个位置有错没。
4.我在发送完CMD17后,我连续去读BDATAbuffer寄存器,发现每次都读的不一样,我也不知道这是不是我要的数据。但是我永远也读不到0x55aa
3.还有 stop at block gap这个寄存器的用法能不能给我个解释