📄 sdio.c
字号:
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
else //0X02+0X14,GET FBR CIS BYTE 2
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x20;
Buffer_send[5]=0xc5;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
}
break;
case 0x20: //GET MANFID CODE
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x20;
Buffer_send[5]=0xc5;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x22: //GET MANFD LINK BYTE
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x04;
Buffer_send[5]=0xe9;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x24: //READ MANFID BYTE1
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
//Buffer_send[4]=0x01;
//Buffer_send[5]=0xb3;
Buffer_send[4]=0x96;
Buffer_send[5]=0x7d;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x26: //READ MANFID BYTE2
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
//Buffer_send[4]=0x05;
//Buffer_send[5]=0xfb;
Buffer_send[4]=0x02;
Buffer_send[5]=0x85;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x28: //GET MANU INFO BYTE1
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
//Buffer_send[4]=0x01;
//Buffer_send[5]=0xb3;
Buffer_send[4]=0x47;
Buffer_send[5]=0x17;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x2a: //GET MANU INFO BYTE2
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
//Buffer_send[4]=0xf5;
//Buffer_send[5]=0xe7;
Buffer_send[4]=0x53;
Buffer_send[5]=0x6d;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x2c: //GET CIS SDIO EXTENSION CODE
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x91;
Buffer_send[5]=0x03;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x2e: //GET CIS SDIO EXTENSION LINK DATA
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x02;
Buffer_send[5]=0x85;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x34: //GET CIS SDIO EXTENSION LINK DATA
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0xff;
Buffer_send[5]=0x53;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x18: //0X02+0X16,GET FBR CIS BYTE 3
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x00;
Buffer_send[5]=0xa1;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x1A: //0X02+0X18,GET CSA POINTER BYTE1
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x01;
Buffer_send[5]=0xb3;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x1C: //0X1A+0X02,GET CSA POINTER BYTE2
if((CMD_R[1]&0x70)==0x00)
{
if(timer_index==1)
debug_info=24;
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x80;
Buffer_send[5]=0x23;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x1E: //0X1C+0X02,GET CSA POINTER BYTE3
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x1f;
Buffer_send[5]=0x6b;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x06: //0X00+0X06,test IO ready
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x02;
Buffer_send[5]=0x85;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
else //function 1,0x06(Open_Com)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x03;
Buffer_send[5]=0x97;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}
break;
case 0x08: //Read 0x04 of function 1
if((CMD_R[1]&0x70)==0x10)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=0x03;
Buffer_send[5]=0x97;
//Buffer_send[4]=Uart_Reg_MCR;
//Buffer_send[5]=crc7_CMD52[Uart_Reg_MCR];
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
}// end if
break;
case 0x0a: //Read 0x05 of function 0,int pending bit
if((CMD_R[1]&0x70)==0x00)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
Buffer_send[4]=Int_Pending;
Buffer_send[5]=crc7_CMD52[Int_Pending];
Int_Pending=0;
Timing_Sync();
Write_Res_SD(Buffer_send[0]);
Write_Res_SD(Buffer_send[1]);
Write_Res_SD(Buffer_send[2]);
Write_Res_SD(Buffer_send[3]);
Write_Res_SD(Buffer_send[4]);
Write_Res_SD(Buffer_send[5]);
while(SD_CLK_PIN==0);
SD_CMD_PIN=1;
//
}// end if
break;
case 0x04: //Read 0x02 of function 1,IIR REG
if((CMD_R[1]&0x70)==0x10)
{
Buffer_send[0]=0x34; //command index
Buffer_send[1]=0x00;
Buffer_send[2]=0x00;
Buffer_send[3]=0x20;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -