e
SDCard.h@0:3fe14de7b0cf, 2015-07-13 (annotated)
- Committer:
- Jackson_lv
- Date:
- Mon Jul 13 09:21:41 2015 +0000
- Revision:
- 0:3fe14de7b0cf
sd
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jackson_lv | 0:3fe14de7b0cf | 1 | #ifndef _MMC_SD_H_ |
Jackson_lv | 0:3fe14de7b0cf | 2 | #define _MMC_SD_H_ |
Jackson_lv | 0:3fe14de7b0cf | 3 | |
Jackson_lv | 0:3fe14de7b0cf | 4 | #include "mbed.h" |
Jackson_lv | 0:3fe14de7b0cf | 5 | |
Jackson_lv | 0:3fe14de7b0cf | 6 | |
Jackson_lv | 0:3fe14de7b0cf | 7 | //the type of SD card |
Jackson_lv | 0:3fe14de7b0cf | 8 | #define SD_TYPE_ERR 0X00 |
Jackson_lv | 0:3fe14de7b0cf | 9 | #define SD_TYPE_MMC 0X01 |
Jackson_lv | 0:3fe14de7b0cf | 10 | #define SD_TYPE_V1 0X02 |
Jackson_lv | 0:3fe14de7b0cf | 11 | #define SD_TYPE_V2 0X04 |
Jackson_lv | 0:3fe14de7b0cf | 12 | #define SD_TYPE_V2HC 0X06 |
Jackson_lv | 0:3fe14de7b0cf | 13 | //order of SD card |
Jackson_lv | 0:3fe14de7b0cf | 14 | #define CMD0 0 //card reset |
Jackson_lv | 0:3fe14de7b0cf | 15 | #define CMD1 1 |
Jackson_lv | 0:3fe14de7b0cf | 16 | #define CMD8 8 //order8,SEND_IF_COND |
Jackson_lv | 0:3fe14de7b0cf | 17 | #define CMD9 9 //order9,read CSD data |
Jackson_lv | 0:3fe14de7b0cf | 18 | #define CMD10 10 //order10,read CID data |
Jackson_lv | 0:3fe14de7b0cf | 19 | #define CMD12 12 //order12,stop data transfer |
Jackson_lv | 0:3fe14de7b0cf | 20 | #define CMD16 16 //order16,set SectorSize ,ought to return 0x00 |
Jackson_lv | 0:3fe14de7b0cf | 21 | #define CMD17 17 //order17,read sector |
Jackson_lv | 0:3fe14de7b0cf | 22 | #define CMD18 18 //order18,read Multi sector |
Jackson_lv | 0:3fe14de7b0cf | 23 | #define CMD23 23 //order23,set multi setor erase N block before writting |
Jackson_lv | 0:3fe14de7b0cf | 24 | #define CMD24 24 //order24,write sector |
Jackson_lv | 0:3fe14de7b0cf | 25 | #define CMD25 25 //order25,write Multi sector |
Jackson_lv | 0:3fe14de7b0cf | 26 | #define CMD41 41 //order41,should return 0x00 |
Jackson_lv | 0:3fe14de7b0cf | 27 | #define CMD55 55 //order55,should return 0x01 |
Jackson_lv | 0:3fe14de7b0cf | 28 | #define CMD58 58 //order58,read information of OCR |
Jackson_lv | 0:3fe14de7b0cf | 29 | #define CMD59 59 //order59,enable/disable CRC,should return 0x00 |
Jackson_lv | 0:3fe14de7b0cf | 30 | //the meaning of return data after writing |
Jackson_lv | 0:3fe14de7b0cf | 31 | #define MSD_DATA_OK 0x05 |
Jackson_lv | 0:3fe14de7b0cf | 32 | #define MSD_DATA_CRC_ERROR 0x0B |
Jackson_lv | 0:3fe14de7b0cf | 33 | #define MSD_DATA_WRITE_ERROR 0x0D |
Jackson_lv | 0:3fe14de7b0cf | 34 | #define MSD_DATA_OTHER_ERROR 0xFF |
Jackson_lv | 0:3fe14de7b0cf | 35 | //SD card respond sign |
Jackson_lv | 0:3fe14de7b0cf | 36 | #define MSD_RESPONSE_NO_ERROR 0x00 |
Jackson_lv | 0:3fe14de7b0cf | 37 | #define MSD_IN_IDLE_STATE 0x01 |
Jackson_lv | 0:3fe14de7b0cf | 38 | #define MSD_ERASE_RESET 0x02 |
Jackson_lv | 0:3fe14de7b0cf | 39 | #define MSD_ILLEGAL_COMMAND 0x04 |
Jackson_lv | 0:3fe14de7b0cf | 40 | #define MSD_COM_CRC_ERROR 0x08 |
Jackson_lv | 0:3fe14de7b0cf | 41 | #define MSD_ERASE_SEQUENCE_ERROR 0x10 |
Jackson_lv | 0:3fe14de7b0cf | 42 | #define MSD_ADDRESS_ERROR 0x20 |
Jackson_lv | 0:3fe14de7b0cf | 43 | #define MSD_PARAMETER_ERROR 0x40 |
Jackson_lv | 0:3fe14de7b0cf | 44 | #define MSD_RESPONSE_FAILURE 0xFF |
Jackson_lv | 0:3fe14de7b0cf | 45 | |
Jackson_lv | 0:3fe14de7b0cf | 46 | |
Jackson_lv | 0:3fe14de7b0cf | 47 | #define SD_CS PBout(2) //SD Card CS pin |
Jackson_lv | 0:3fe14de7b0cf | 48 | |
Jackson_lv | 0:3fe14de7b0cf | 49 | extern u8 SD_Type;//SD card type |
Jackson_lv | 0:3fe14de7b0cf | 50 | |
Jackson_lv | 0:3fe14de7b0cf | 51 | |
Jackson_lv | 0:3fe14de7b0cf | 52 | |
Jackson_lv | 0:3fe14de7b0cf | 53 | //functions |
Jackson_lv | 0:3fe14de7b0cf | 54 | u8 SD_SPI_ReadWriteByte(u8 data); |
Jackson_lv | 0:3fe14de7b0cf | 55 | void SD_SPI_SpeedLow(void); |
Jackson_lv | 0:3fe14de7b0cf | 56 | void SD_SPI_SpeedHigh(void); |
Jackson_lv | 0:3fe14de7b0cf | 57 | u8 SD_WaitReady(void); //�ȴ�SD���� |
Jackson_lv | 0:3fe14de7b0cf | 58 | u8 SD_GetResponse(u8 Response); //������Ӧ |
Jackson_lv | 0:3fe14de7b0cf | 59 | u8 SD_Initialize(void); //��ʼ�� |
Jackson_lv | 0:3fe14de7b0cf | 60 | u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt); //���� |
Jackson_lv | 0:3fe14de7b0cf | 61 | u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt); //� |
Jackson_lv | 0:3fe14de7b0cf | 62 | u32 SD_GetSectorCount(void); //�������� |
Jackson_lv | 0:3fe14de7b0cf | 63 | u8 SD_GetCID(u8 *cid_data); //��SD��CID |
Jackson_lv | 0:3fe14de7b0cf | 64 | u8 SD_GetCSD(u8 *csd_data); //��SD��CSD |
Jackson_lv | 0:3fe14de7b0cf | 65 | |
Jackson_lv | 0:3fe14de7b0cf | 66 | #endif |
Jackson_lv | 0:3fe14de7b0cf | 67 | |
Jackson_lv | 0:3fe14de7b0cf | 68 | |
Jackson_lv | 0:3fe14de7b0cf | 69 | |
Jackson_lv | 0:3fe14de7b0cf | 70 |