我现在倒是把那个没法读SD卡的问题解决了,看了看SD协议(我觉的这协议写的有些不明晰,最新版的),是加了延时后就读成功了,先上图吧
第一副图是我改的代码,第二幅第三副是我从SD协议中对读SD卡时间和时序的要求截图。我才开始看那个读SD时间约束时一直犯迷糊(我觉的这个SD协会直接把那个时序约束标在时序图上不行吗!!!),不知道这个延时代码加在哪个地方先是加在了代码的第441行,后加在了第445行。445行后就跑通了,那些不能读的SD卡(都是CLASS4系列)都能读了。我现在也还是不真正明白那个延时加在哪是对,但依现在的情况看,我加在这地方跑通了,我认为我自己对了。网上很多都是SPI模式读SD,大部分都注明要多加8个时钟的延时,我想可能是这个地方吧,我没仔细看他们那些的代码添加。
我现在我设定的SD速率都是25Mhz。后来我又把有试了下那个以前不能正常运行读卡的程序(没加延时!),你们猜结果怎样?那些卡又能读了,不加延时现在又能读了,这到底要我怎样呀?现在实在想不通这事。
我把读卡的速率调成50Mhz,加了延时我也就在那个445行改,换了好多值但是这个50mhz还是不能读成功,和以前才开始读SD卡的现象一样,我看了看那个SD协议是不是还得给它发个CMD6的命令,使我的SD卡运行在high speed mode状态。昨天一白天看协议看烦了,就看电影了,白天不干活,晚上加班干(我活该,又是熬夜调的)以后再也不那么干了。晚上试一试加个CMD6的命令看看怎样?
「该帖子被 笑溜溜 在 2013-08-16 17:36:00 编辑过」