williamwanglei 发表于 2007-7-27 10:28:10

kingston 512M TF卡初始化失败

各位大虾



我现在用软件SPI初始化kingston 512M TF卡,发送CMD0失败。想请教以下问题:



1TF卡加了一个SD的适配器应该就和SD卡完全兼容了吧?



2用的程序是elefan大哥的程序:http://www.ouravr.com/bbs/bbs_content.jsp?    bbs_sn=501454&bbs_page_no=1&sub_kind_id=1398&bbs_id=1000,试过了在SCK上升延前后使用不同时间的延时,都不行,请问是什么原因?





3在elefan的发送命令程序中:

unsigned char Write_Command_MMC(unsigned char *CMD)

//****************************************************************************

{

unsigned char tmp;

unsigned char retry=0;

unsigned char i;



//set MMC_Chip_Select to high (MMC/SD-Card disable)

MMC_Disable();

//send 8 Clock Impulse

Write_Byte_MMC(0xFF);

//set MMC_Chip_Select to low (MMC/SD-Card active)

MMC_Enable();



//send 6 Byte Command to MMC/SD-Card

for (i=0;i<0x06;i++)

{

Write_Byte_MMC(*CMD++);

}



//get 16 bit response//这里为何把所有的回应当作2字节来处理?

Read_Byte_MMC(); //read the first byte,ignore it.

do

{ //Only last 8 bit is used here.Read it out.

tmp = Read_Byte_MMC();

retry++;

}

while((tmp==0xff)&&(retry<100));

return(tmp);

}



程序中统一丢掉了返回值的第一个字节,如果是R1类型的1 BYTE大小的返回值的话,启不是会被丢掉?







请大虾门帮忙解释这三个问题,先谢谢拉

williamwanglei 发表于 2007-7-27 17:25:16

大虾们,救我一下吧,莫非真的要我换卡?万一是程序问题,我可心疼偶的MONEY啊

williamwanglei 发表于 2007-7-27 21:25:52

自己发贴,自己解决拉



在这里说一下找到的原因,因为ICCAVR的C编译器不支持,do{}while()语句,所以要把



elefan的代码中所有的此种语句改成while语句。如果不改的话就一直循环,并且不会判断跳



出循环的条件。



用ICCAVR的兄弟们也不少吧?没有人发现这个问题吗?

williamwanglei 发表于 2007-7-28 08:12:37

自己再顶,昨天晚上发现CMD0后面紧跟着发送CMD1时,还是会提示CMD0失败,后来终于自己解决拉,搞到了半夜,成夜猫子拉,呵呵

williamwanglei 发表于 2007-7-29 15:16:40

哈哈,太爽拉,可以操控SD卡拉

下面是我初始化SD卡后的打印信息:





Welcome to williams AVR world!

Initial SD card sucessful!

Product:

SD512

Total:

488MB

piccode 发表于 2007-11-20 11:51:20

hi williamwanglei
我现也用KINGSTON的1G SD CARD,也出现同一问题.可否详细请教一下?

谢谢!

cctnt 发表于 2007-11-20 12:13:04

使用很底速的CLOCK同步,初始化
然后提高CLOCK操作

piccode 发表于 2007-11-20 15:43:16

Hi cctnt

   我试过,不是初始化 CLOCK速度问题, 现在我的问题是初始化OK,
但是读BPB错误, 现猜想是读数据出错,我用是的硬SPI接口.其它的卡OK,就是KINGSTON的有问题.呵

bing8687 发表于 2011-6-14 13:35:21

回复【楼主位】williamwanglei
-----------------------------------------------------------------------

可否介绍一下解决办法?CMD0后面紧跟着发送CMD1时,还是会提示CMD0失败,怎么解决的呢?我的用SD卡就没问题,换成TF卡后,CMD0总是失败。

chenjm 发表于 2013-1-16 14:57:30

说半不说半!

时代还怪 发表于 2013-1-27 23:38:54

我也想知道

时代还怪 发表于 2013-1-27 23:40:00

williamwanglei 发表于 2007-7-28 08:12
自己再顶,昨天晚上发现CMD0后面紧跟着发送CMD1时,还是会提示CMD0失败,后来终于自己解决拉,搞到了半夜, ...

怎么解决的?请教

111111000 发表于 2013-6-5 15:19:41

最后怎么搞定的没说?
页: [1]
查看完整版本: kingston 512M TF卡初始化失败