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

📄 sdi.h

📁 s3c2410开发板
💻 H
字号:
#ifndef __SD_H__
#define __SD_H__
#include "fs_int.h"

#ifdef __cplusplus
extern "C" {
#endif

#define INICLK	400000//300000
#define NORCLK	5000000
#define SD_BLOCKSIZE  0x200




#define SDICCON_START (1<<8)
#define SDICCON_WRSP (1<<9)
#define SDICCON_LRSP (1<<10)

#define SDICSTA_SENT (1<<11)
#define SDICSTA_TOUT (1<<10)
#define SDICSTA_RSP (1<<9)

#define SDIDSTA_TOUT (1<<5)
#define SDIDSTA_DFIN (1<<4)
#define SDIDSTA_BFIN (1<<3)

#define SDIFSTA_RX (1<<12)
#define SDIFSTA_CNT 0x7F

#define SDIFSTA_TX (1<<13)

#define SDIIMSK_TOUT (1<<15)
#define SDIIMSK_DFIN (1<<7)
#define SDIIMSK_RX_LAST (1<<2)
#define SDIIMSK_RX_FULL (1<<1)
#define SDIIMSK_TX_EMP (1<<3)

#define SDIDCON_TARSP_1 (1<<20)
#define SDIDCON_RACMD_1 (1<<19)
#define SDIDCON_BLK (1<<17)
#define SDIDCON_WIDE (1<<16)
#define SDIDCON_DMA (1<<15)
#define SDIDCON_RX (0x02<<12)
#define SDIDCON_TX  (0x03<<12)


#define SDICON_FRESET (1<<1)

#define SDICON_LE (1<<4)
#define SDICON_ENCLK (1<<0)

#define R0   0
#define R1   1
#define R1B  2
#define R2   3
#define R3   4
#define R6   5

//#define CMD(x)   ((x&0x3f)|0x40)
#define CMD0     0x40
#define CMD2     0x42
#define CMD3     0x43
#define CMD7     0x47
#define CMD9     0x49
#define CMD10    0x4a
#define CMD11    0x4b
#define CMD12    0x4c
#define CMD13    0x4d
#define CMD15    0x4f
#define CMD16    0x50
#define CMD17    0x51
#define CMD18    0x52
#define CMD24    0x58
#define CMD25    0x59
#define CMD27    0x5b
#define CMD28    0x5c
#define CMD29    0x5d
#define CMD30    0x5e
#define CMD32    0x60
#define CMD33    0x61
#define CMD38    0x66
#define CMD55    0x77
#define CMD56    0x78
#define ACMD6    0x46
#define ACMD13   0x4d
#define ACMD22   0x56
#define ACMD23   0x57
#define ACMD41   0x69
#define ACMD42   0x6a
#define ACMD51   0x73


#define CMD0_R     R0
#define CMD2_R     R2
#define CMD3_R     R6
#define CMD7_R     R1
#define CMD9_R     R2
#define CMD10_R    R2
#define CMD11_R    R1
#define CMD12_R    R1B
#define CMD13_R    R1
#define CMD15_R    R0
#define CMD16_R    R1
#define CMD17_R    R1
#define CMD18_R    R1
#define CMD24_R    R1
#define CMD25_R    R1
#define CMD27_R    R1
#define CMD28_R    R1B
#define CMD29_R    R1B
#define CMD30_R    R1
#define CMD32_R    R1
#define CMD33_R    R1
#define CMD38_R    R1B
#define CMD55_R    R1
#define CMD56_R    R1
#define ACMD6_R    R1
#define ACMD13_R   R1
#define ACMD22_R   R1
#define ACMD23_R   R1
#define ACMD41_R   R3
#define ACMD42_R   R1
#define ACMD51_R   R1



#define MAX_CARD          1
#define CMD_ERR           0
#define SD_CARD           1
#define MMC_CARD          2
#define SD_NO_ERR         3
#define SD_ERR            4
#define NO_CARD           5


U8   SD_SendCommand(U8 cmd, U32 param, U8 resptype, U8 *resp);
U8   SD_SelectCard(U16 RCA);
U8   SD_DeSelectCard(void);
U8   SD_Initialize(SDFSDisk *sds);



extern volatile unsigned int TR_end;

void __irq DMA_end(void);
int  Chk_DATend(void);
int  Chk_BUSYend(void);
U8   SD_ReadCard_Status(U16 RCA,U8 len,U8 status[]);
U8   SD_ReadBlock(U32 blocknum,U8 *recbuf);
U8   SD_WriteBlock(U32 blocknum,U8 *recbuf);
U8   SD_EraseSector(const SDFSDisk *sds,U32 sectornum);


// Function prototypes
void Test_SDI(void);
void TR_Buf_new(void);
U8 Rd_Block(U32 block,U32 src,U32 *dst);
U8 Wt_Block(U32 block,U32 *src,U32 dst);
void Flush_Rx_buf(void);
U8 Set_4bit_bus(U16 RCA);
void View_Rx_buf(void);
void View_Tx_buf(void);


#ifdef __cplusplus
}
#endif
#endif /*__SD_H___*/

⌨️ 快捷键说明

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