コード例 #1
0
ファイル: sdi.c プロジェクト: ceeback/FriendlyARM_DemoCode
int Chk_SD_OCR(void)
{
    int i;

    //-- Negotiate operating condition for SD, it makes card ready state
    for(i=0;i<50;i++)	//If this time is short, init. can be fail.
    {
    	CMD55();    // Make ACMD

    	rSDICARG=0xff8000;	//ACMD41(SD OCR:2.7V~3.6V)
//    	rSDICARG=0xffc000;	//ACMD41(MMC OCR:2.6V~3.6V)
    	rSDICCON=(0x1<<9)|(0x1<<8)|0x69;//sht_resp, wait_resp, start, ACMD41

	//-- Check end of ACMD41
    	if( Chk_CMDend(41, 1) & rSDIRSP0==0x80ff8000 )
	{
	    rSDICSTA=0xa00;	// Clear cmd_end(with rsp)

	    return 1;	// Success
	}
	Delay(200); // Wait Card power up status
    }
    //Uart_Printf("SDIRSP0=0x%x\n",rSDIRSP0);
    rSDICSTA=0xa00;	// Clear cmd_end(with rsp)
    return 0;		// Fail
}
コード例 #2
0
ファイル: sdi.c プロジェクト: ceeback/FriendlyARM_DemoCode
void SetBus(void)
{
SET_BUS:
    CMD55();	// Make ACMD
    //-- CMD6 implement
    rSDICARG=Wide<<1;	    //Wide 0: 1bit, 1: 4bit
    rSDICCON=(0x1<<9)|(0x1<<8)|0x46;	//sht_resp, wait_resp, start, CMD55

    if(!Chk_CMDend(6, 1))   // ACMD6
	goto SET_BUS;
    rSDICSTA=0xa00;	    // Clear cmd_end(with rsp)
}
コード例 #3
0
ファイル: sdi.c プロジェクト: HunterJason/MINI2440-NO_OS
void SetBus(void)
{
	do
	{
		CMD55(); // Make ACMD
		//-- CMD6 implement
		SDICARG = Wide << 1; //Wide 0: 1bit, 1: 4bit
		SDICCON = (0x1 << 9) | (0x1 << 8) | (MAGIC_NUMBER | 6); //sht_resp, wait_resp, start, CMD55

		if (!Chk_CMDend(6, 1)) // ACMD6
			continue;

		SDICSTA = 0xa00; // Clear cmd_end(with rsp)
	} while (0);
}