亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 請問4G的SD卡能用單片機+SPI驅(qū)動嗎? [打印本頁]

作者: ildpj    時間: 2020-3-22 18:07
標題: 請問4G的SD卡能用單片機+SPI驅(qū)動嗎?
本帖最后由 ildpj 于 2020-3-23 14:51 編輯

請問4G以上的sd卡,能用SPI驅(qū)動嗎? 我使用16G的sd卡,初始化一直沒有通過,前面的CMD0,CMD8,都能正常返回0x01,但就是ACMD41一直返回0x01,困惑了我好久,哪位大佬指點指點我,,,,謝謝

我用的51單片機模擬SPI驅(qū)動的,下面是復位的程序,大神幫忙看看



uchar SD_Reset()
{
    uchar j,time=0,r1,time1;
    cs=1;
   
    SD_Delay=1;              //降低速率
    for(j=0;j<20;j++)      //執(zhí)行160時鐘
    {
        Write_Byte(0xff);        
    }
    cs=0;
    /*發(fā)送CMD0*/
    do
    {
        r1=Write_Common(0,0x00000000,0x95);
        time++;
        if(time>=255)
        {
            cs=1;
            Write_Byte(0xff);
            return 2;
        }
    }
    while(r1!=0x01)    ;                                   //正常
    time=0;
    /*CMD8*/
    do
     {
        r1=Write_Common(8,0x000001AA,0x87);
        time++;
        if(time>254)
        {                           
            cs=1;
            Write_Byte(0xff);        
            return     3;     
         }
     }
    while(r1!=0x01);                                    //正常
    table[0]=Read_Byte();
    table[1]=Read_Byte();
    table[2]=Read_Byte();
    table[3]=Read_Byte();
    sendBin(table[2]);
    sendDate(' ');
    sendBin(table[3]);
   /*ACMD41*/
   time=0;
   time1=0;
        do
        {
            do
            {
                r1=Write_Common(55,0x0000000,0xff);
                time1++;
                if(time1>200)
                {
                    cs=1;
                    Write_Byte(0xff);
                    return     5;                 
                }
            }
            while(r1!=0x01);
            time1=0;
            r1=Write_Common(41,0x4000000,0xff);
            time++;
            if(time>254)
            {
                cs=1;
                Write_Byte(0xff);
                return     r1;             //響應0x01,無法正常初始化   
            }
        }while((r1!=0x00));                   //???
        

    cs=1;
    Write_Byte(0xff);
    SD_Delay=0;
    return 0;

}





作者: xianming    時間: 2020-3-23 12:31
小于2G的卡屬于SD,大于2G的卡屬于SDHC,大于32G的卡是SDXC(單片機一般用不著大于32G的)
SD的ACMD41為69 00 30 00 00 FF
SDHC的ACMD41為69 40 30 00 00 FF

上面都是十六進制。
69是十六進制的41(0x29)加上0x40的結(jié)果,你的好像Write_Common里已經(jīng)加上了。
作者: ildpj    時間: 2020-3-23 14:48
xianming 發(fā)表于 2020-3-23 12:31
小于2G的卡屬于SD,大于2G的卡屬于SDHC,大于32G的卡是SDXC(單片機一般用不著大于32G的)
SD的ACMD41為69 ...

還請問參數(shù)中的 ‘ 30 ’哪里來的,我看手冊上是0x40000000
作者: ildpj    時間: 2020-3-23 18:29
xianming 發(fā)表于 2020-3-23 12:31
小于2G的卡屬于SD,大于2G的卡屬于SDHC,大于32G的卡是SDXC(單片機一般用不著大于32G的)
SD的ACMD41為69 ...

多謝,我找到問題了,我的ox4000000,少寫了一個零




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1