00001 /**************************************************************************/ 00017 #ifndef __MICROSD_H 00018 #define __MICROSD_H 00019 00020 #include "em_device.h" 00021 #include "microsdconfig.h" 00022 #include "em_gpio.h" 00023 #include "integer.h" 00024 00025 00026 /***************************************************************************/ 00031 /***************************************************************************/ 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 /* Definitions for MMC/SDC command */ 00041 #define CMD0 (0) 00042 #define CMD1 (1) 00043 #define ACMD41 (41 | 0x80) 00044 #define CMD8 (8) 00045 #define CMD9 (9) 00046 #define CMD10 (10) 00047 #define CMD12 (12) 00048 #define ACMD13 (13 | 0x80) 00049 #define CMD16 (16) 00050 #define CMD17 (17) 00051 #define CMD18 (18) 00052 #define CMD23 (23) 00053 #define ACMD23 (23 | 0x80) 00054 #define CMD24 (24) 00055 #define CMD25 (25) 00056 #define CMD41 (41) 00057 #define CMD55 (55) 00058 #define CMD58 (58) 00061 void MICROSD_Init(void); 00062 void MICROSD_Deinit(void); 00063 00064 int MICROSD_Select(void); 00065 void MICROSD_Deselect(void); 00066 00067 void MICROSD_PowerOn(void); 00068 void MICROSD_PowerOff(void); 00069 00070 int MICROSD_BlockRx(uint8_t *buff, uint32_t btr); 00071 int MICROSD_BlockTx(const uint8_t *buff, uint8_t token); 00072 00073 uint8_t MICROSD_SendCmd(uint8_t cmd, DWORD arg); 00074 uint8_t MICROSD_XferSpi(uint8_t data); 00075 00076 void MICROSD_SpiClkFast(void); 00077 void MICROSD_SpiClkSlow(void); 00078 00079 bool MICROSD_TimeOutElapsed(void); 00080 void MICROSD_TimeOutSet(uint32_t msec); 00081 00082 #ifdef __cplusplus 00083 } 00084 #endif 00085 00089 #endif