两张TOSHIBA的1G和4G(SDHC)的卡,都是class6的,读SCR寄存器查得硬件版本分别是1.10和2.0,即都是支持高速模式的卡. 我先用SWITCH_FUNC(CMD6)指令查询,得到的512bit数据表明卡支持高速,然后切换卡进入高速模式,然后查询卡当前的模式是处在高速模式的,这一系列操作得到的应答及数据都是正确的. 但是测试的时候发现有问题: 我用示波器测量从启动数据传输(写DATACTRL寄存器)到数据传输完成之间的时间,对比18M和36M时钟下的表现. 1.发现读(READ_SINGLE_BLOCK)的速度快了40%,写(WRITE_BLOCK)的速度快了20%,不是预期的时钟由18M到36M,提高一倍,速度提高一倍.[读写采用的DMA传输,程序只是简单的SD测试功能,再无其它任务,所以不需时间总线占用时间],这个速度的提升倒像25M时钟的提升,18M升到25M时钟刚好提高了40%,而普通模式卡最快也是25M. 2.我对比测试两种情况,不用CMD6切换高速模式,直接就设时钟为36M和用CMD6切换到高速模式后再设时钟为36M,发现速度是一样的,没有变化.看clock线时钟是36M. 我用的是LPC2378,MCI时钟最多只能达到36M. 所以我认为我设置之后,卡并没有进入高速模式,还是处在普通模式,而MCI时钟设为36M了后,卡也只跑到了最高时钟25M(普通模式最高时钟是25M).但我的设置每一步似乎都是正确的,看不出有什么问题. 请教各位了! |