00001 /**************************************************************************/ 00035 #ifndef __MICROSD_H 00036 #define __MICROSD_H 00037 00038 #include "em_device.h" 00039 #include "microsdconfig.h" 00040 #include "em_gpio.h" 00041 #include "integer.h" 00042 00043 00044 /***************************************************************************/ 00049 /***************************************************************************/ 00054 #ifdef __cplusplus 00055 extern "C" { 00056 #endif 00057 00058 /* Definitions for MMC/SDC command */ 00059 #define CMD0 (0) 00060 #define CMD1 (1) 00061 #define ACMD41 (41 | 0x80) 00062 #define CMD8 (8) 00063 #define CMD9 (9) 00064 #define CMD10 (10) 00065 #define CMD12 (12) 00066 #define ACMD13 (13 | 0x80) 00067 #define CMD16 (16) 00068 #define CMD17 (17) 00069 #define CMD18 (18) 00070 #define CMD23 (23) 00071 #define ACMD23 (23 | 0x80) 00072 #define CMD24 (24) 00073 #define CMD25 (25) 00074 #define CMD41 (41) 00075 #define CMD55 (55) 00076 #define CMD58 (58) 00079 void MICROSD_Init(void); 00080 void MICROSD_Deinit(void); 00081 00082 int MICROSD_Select(void); 00083 void MICROSD_Deselect(void); 00084 00085 void MICROSD_PowerOn(void); 00086 void MICROSD_PowerOff(void); 00087 00088 int MICROSD_BlockRx(uint8_t *buff, uint32_t btr); 00089 int MICROSD_BlockTx(const uint8_t *buff, uint8_t token); 00090 00091 uint8_t MICROSD_SendCmd(uint8_t cmd, DWORD arg); 00092 uint8_t MICROSD_XferSpi(uint8_t data); 00093 00094 void MICROSD_SpiClkFast(void); 00095 void MICROSD_SpiClkSlow(void); 00096 00097 bool MICROSD_TimeOutElapsed(void); 00098 void MICROSD_TimeOutSet(uint32_t msec); 00099 00100 #ifdef __cplusplus 00101 } 00102 #endif 00103 00107 #endif