⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd_test.h

📁 adi bf54x dsp sd卡程序
💻 H
字号:
#ifndef _SD_TEST_H_
#define _SD_TEST_H_


//////////////////////////////////////////////////////////////////////////////
//
// COMMON DEFINES
//
//////////////////////////////////////////////////////////////////////////////

#define TIMEOUT_VAL	0xF00000
#define	SET_MSEL(x)		(((x)&0x3F) << 0x9)	// Set MSEL = 0-63 --> VCO = CLKIN*MSEL
#define SET_SSEL(x)		((x)&0xF)			// Set SSEL = 0-15 --> SCLK = VCO/SSEL
#define	SD_STUFF_BITS		0x00000000
#define SD_NO_RESPONSE 		0x00000000
#define SD_RCA_NOT_NEEDED 	0
#define SD_RCA_NEEDED 		1
#define SD_BLK_LEN_512		0x00000200


typedef struct _SD_CMD
{
	unsigned char CmdID;			// command ID
	unsigned long CmdArg;			// command argument
	unsigned char CmdResponse;		// command response
	bool UseRCA;					// 0 - does not need RCA, 1 - needs RCA
} SD_CMD;

// SD command IDs
typedef enum
{
	SD_CMD0,
	SD_CMD2,
	SD_CMD3,
	SD_CMD7,
	SD_CMD9,
	SD_CMD13,
	SD_CMD16,
	SD_CMD17,
	SD_CMD24,
	SD_CMD55,

	SD_ACMD6,
	SD_ACMD13,
	SD_ACMD41,
	SD_ACMD42
}enSDCmds;


bool g_bCardDetected = false;
int g_nISR_Count = 0;
int g_nSRC_Index = 0;
int g_nDEST_Index = 0;
int g_nBytesTXed = 0;
int g_nBytesRXed = 0;
unsigned long g_ulCardRCA = 0;

unsigned long RX_DEST_BUF[128];
unsigned long TX_SRC_BUF[128];

typedef struct _SD_CSD_DATA
{
 	unsigned char ucMaxSpeed;
 	unsigned char ucMaxReadBlkLen;
	unsigned short usCardSize;
	unsigned short usSectorSize;
	unsigned char ucMaxWriteBlkLen;
}SD_CSD_DATA;

SD_CSD_DATA CardData;

//////////////////////////////////////////////////////////////////////////////
//
// function prototypes
//
//////////////////////////////////////////////////////////////////////////////
void Init_SD(void);
int TEST_SD(void);
EX_INTERRUPT_HANDLER(SD_ISR);
EX_INTERRUPT_HANDLER(SD_DMA_ISR);
void Init_SD_Interrupts(void);
void Init_DMA(unsigned long *buf_addr, unsigned short config_value);
int SendCommand( SD_CMD *pSD_Cmd, bool bGetStatusReg );
int SD_reset( void );
int SD_ReadCardIdent(void);
int TX_Block(void);
int Set_4BitMode(void);
void Delay_Loop( int nDelay );

#endif //_SD_TEST_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -