fatfs文件系统 高速/低速 SD卡、TF卡调试过程

主要总结遇到的问题:

1、使用低速 SD卡时,初始化不通过。

    for(retry=0; retry<0xFFF; retry++){
            r1 = MMC_send_command(CMD0, 0, 0x95);//Resets all cards to idle state
            if(r1 == 0x01){
                    retry = 0;
                    break;
            }
    }
    /* Timeout return */
    if(retry == 0xFFF){//Reset card into IDLE state failed
        return 1;
    }

  解决办法:在上段代码后面增加1s延时  delay_ms(1000);    

 

2、使用高速SD卡 (4G容量)时,初始化不通过。ACMD41一直返回0x01。

        for(retry=0; retry<0xFFFF; retry++)
        {                     
                  if( MMC_send_command(CMD55, 0, 0) == 0x01){
                    r1 = MMC_send_command(ACMD41, 0x40000000, 0);    /* should be return 0x00 */  
                    if(r1 == 0x00)
                    {
                            retry = 0;
                            break;
                    }
                  }              
        }     
        /* Timeout return */
        if(retry == 0xFFFF)
        {
            return 3;   
        }

      解决办法:把校验位0 改为 0xff ,初始化通过。

MMC_send_command(CMD55, 0, 0xff)  ;  MMC_send_command(ACMD41, 0x40000000, 0xff)

你可能感兴趣的:(fatfs文件系统 高速/低速 SD卡、TF卡调试过程)