1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: 請(qǐng)問(wèn)4G的SD卡能用單片機(jī)+SPI驅(qū)動(dòng)嗎? [打印本頁(yè)]

作者: ildpj    時(shí)間: 2020-3-22 18:07
標(biāo)題: 請(qǐng)問(wèn)4G的SD卡能用單片機(jī)+SPI驅(qū)動(dòng)嗎?
本帖最后由 ildpj 于 2020-3-23 14:51 編輯

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

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



uchar SD_Reset()
{
    uchar j,time=0,r1,time1;
    cs=1;
   
    SD_Delay=1;              //降低速率
    for(j=0;j<20;j++)      //執(zhí)行160時(shí)鐘
    {
        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;             //響應(yīng)0x01,無(wú)法正常初始化   
            }
        }while((r1!=0x00));                   //???
        

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

}





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

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

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

多謝,我找到問(wèn)題了,我的ox4000000,少寫(xiě)了一個(gè)零




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