e

Dependents:   MusicShield

Committer:
Jackson_lv
Date:
Mon Jul 13 09:21:41 2015 +0000
Revision:
0:3fe14de7b0cf
sd

Who changed what in which revision?

UserRevisionLine numberNew 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