MicroSdKit Drivers
Detailed Description
SPI driver for micro SD card.
Simple micro SD SPI driver with power control and block transfer support.
         Macros | 
       |
| #define | ACMD13 (13 | 0x80) | 
| #define | ACMD23 (23 | 0x80) | 
| #define | ACMD41 (41 | 0x80) | 
| #define | CMD0 (0) | 
| #define | CMD1 (1) | 
| #define | CMD10 (10) | 
| #define | CMD12 (12) | 
| #define | CMD16 (16) | 
| #define | CMD17 (17) | 
| #define | CMD18 (18) | 
| #define | CMD23 (23) | 
| #define | CMD24 (24) | 
| #define | CMD25 (25) | 
| #define | CMD41 (41) | 
| #define | CMD55 (55) | 
| #define | CMD58 (58) | 
| #define | CMD8 (8) | 
| #define | CMD9 (9) | 
         Functions | 
       |
| int | MICROSD_BlockRx (uint8_t *buff, uint32_t btr) | 
| 
         Receive a data block from micro SD card.
          | 
       |
| int | MICROSD_BlockTx (const uint8_t *buff, uint8_t token) | 
| 
         Send a data block to micro SD card.
          | 
       |
| void | MICROSD_Deinit (void) | 
| 
         Deinitialize SPI peripheral. Turn off the SPI peripheral and disable SPI GPIO pins.
          | 
       |
| void | MICROSD_Deselect (void) | 
| 
         Deselect the micro SD card and release the SPI bus.
          | 
       |
| void | MICROSD_Init (void) | 
| 
         Initialize the SPI peripheral for microSD card usage. SPI pins and speed etc. is defined in microsdconfig.h.
          | 
       |
| void | MICROSD_PowerOff (void) | 
| 
         Turn off micro SD card power. DK doesn't support socket power control, only disable the SPI clock.
          | 
       |
| void | MICROSD_PowerOn (void) | 
| 
         Turn on micro SD card power. DK doesn't support socket power control, only enable the SPI clock.
          | 
       |
| int | MICROSD_Select (void) | 
| 
         Select the micro SD card and wait for the card to become ready.
          | 
       |
| uint8_t | MICROSD_SendCmd (uint8_t cmd, DWORD arg) | 
| 
         Send a command packet to micro SD card.
          | 
       |
| void | MICROSD_SpiClkFast (void) | 
| 
         Set SPI clock to maximum frequency.
          | 
       |
| void | MICROSD_SpiClkSlow (void) | 
| 
         Set SPI clock to a low frequency suitable for initial card initialization.
          | 
       |
| bool | MICROSD_TimeOutElapsed (void) | 
| 
         Check if timeout value set with
         
          MICROSD_TimeOutSet()
         
         has elapsed.
          | 
       |
| void | MICROSD_TimeOutSet (uint32_t msec) | 
| 
         Set a timeout value. The timeout value will be decremented towards zero when SPI traffic to/from the micro SD card takes place. Use
         
          MICROSD_TimeOutElapsed()
         
         to check if timeout has elapsed.
          | 
       |
| uint8_t | MICROSD_XferSpi (uint8_t data) | 
| 
         Do one SPI transfer.
          | 
       |
Macro Definition Documentation
| #define ACMD13 (13 | 0x80) | 
SD_STATUS (SDC)
        Definition at line
        
         48
        
        of file
        
         microsd.h
        
        .
       
| #define ACMD23 (23 | 0x80) | 
SET_WR_BLK_ERASE_COUNT (SDC)
        Definition at line
        
         53
        
        of file
        
         microsd.h
        
        .
       
| #define ACMD41 (41 | 0x80) | 
SEND_OP_COND (SDC)
        Definition at line
        
         43
        
        of file
        
         microsd.h
        
        .
       
| #define CMD0 (0) | 
| #define CMD1 (1) | 
SEND_OP_COND
        Definition at line
        
         42
        
        of file
        
         microsd.h
        
        .
       
| #define CMD10 (10) | 
SEND_CID
        Definition at line
        
         46
        
        of file
        
         microsd.h
        
        .
       
| #define CMD12 (12) | 
| #define CMD16 (16) | 
SET_BLOCKLEN
        Definition at line
        
         49
        
        of file
        
         microsd.h
        
        .
       
| #define CMD17 (17) | 
READ_SINGLE_BLOCK
        Definition at line
        
         50
        
        of file
        
         microsd.h
        
        .
       
| #define CMD18 (18) | 
READ_MULTIPLE_BLOCK
        Definition at line
        
         51
        
        of file
        
         microsd.h
        
        .
       
| #define CMD23 (23) | 
SET_BLOCK_COUNT
        Definition at line
        
         52
        
        of file
        
         microsd.h
        
        .
       
| #define CMD24 (24) | 
WRITE_BLOCK
        Definition at line
        
         54
        
        of file
        
         microsd.h
        
        .
       
| #define CMD25 (25) | 
WRITE_MULTIPLE_BLOCK
        Definition at line
        
         55
        
        of file
        
         microsd.h
        
        .
       
| #define CMD41 (41) | 
SEND_OP_COND (ACMD)
        Definition at line
        
         56
        
        of file
        
         microsd.h
        
        .
       
| #define CMD55 (55) | 
| #define CMD58 (58) | 
READ_OCR
        Definition at line
        
         58
        
        of file
        
         microsd.h
        
        .
       
| #define CMD8 (8) | 
| #define CMD9 (9) | 
SEND_CSD
        Definition at line
        
         45
        
        of file
        
         microsd.h
        
        .
       
Function Documentation
| int MICROSD_BlockRx | ( | uint8_t * | 
           
            buff,
           
           | 
         
| uint32_t | 
           
            btr
           
           | 
         ||
| ) | 
Receive a data block from micro SD card.
- Parameters
 - 
         
[out] buffData buffer to store received data. btrByte count (must be multiple of 4).  
- Returns
 - 1:OK, 0:Failed.
 
        Definition at line
        
         186
        
        of file
        
         microsd.c
        
        .
       
References _USART_FRAME_DATABITS_MASK , MICROSD_XferSpi() , USART_CMD_CLEARRX , USART_CMD_CLEARTX , USART_CTRL_BYTESWAP , USART_FRAME_DATABITS_SIXTEEN , and USART_STATUS_RXDATAV .
| int MICROSD_BlockTx | ( | const uint8_t * | 
           
            buff,
           
           | 
         
| uint8_t | 
           
            token
           
           | 
         ||
| ) | 
Send a data block to micro SD card.
- Parameters
 - 
         
[in] buff512 bytes data block to be transmitted. tokenData token.  
- Returns
 - 1:OK, 0:Failed.
 
        Definition at line
        
         255
        
        of file
        
         microsd.c
        
        .
       
References _USART_FRAME_DATABITS_MASK , MICROSD_XferSpi() , USART_CMD_CLEARRX , USART_CMD_CLEARTX , USART_CTRL_BYTESWAP , USART_FRAME_DATABITS_SIXTEEN , USART_STATUS_TXBL , and USART_STATUS_TXC .
| int MICROSD_Select | ( | void | 
           
           
           | 
          ) | 
Select the micro SD card and wait for the card to become ready.
- Returns
 - 1:Successful, 0:Timeout.
 
        Definition at line
        
         144
        
        of file
        
         microsd.c
        
        .
       
References GPIO , and MICROSD_Deselect() .
Referenced by MICROSD_PowerOff() , and MICROSD_SendCmd() .
| uint8_t MICROSD_SendCmd | ( | uint8_t | 
           
            cmd,
           
           | 
         
| DWORD | 
           
            arg
           
           | 
         ||
| ) | 
Send a command packet to micro SD card.
- Parameters
 - 
         
[in] cmdCommand byte. [in] argArgument.  
- Returns
 - Response value.
 
        Definition at line
        
         337
        
        of file
        
         microsd.c
        
        .
       
References CMD0 , CMD12 , CMD55 , CMD8 , MICROSD_Deselect() , MICROSD_Select() , and MICROSD_XferSpi() .
| bool MICROSD_TimeOutElapsed | ( | void | 
           
           
           | 
          ) | 
Check if timeout value set with MICROSD_TimeOutSet() has elapsed.
- Returns
 - True if timeout has elapsed.
 
        Definition at line
        
         421
        
        of file
        
         microsd.c
        
        .
       
| void MICROSD_TimeOutSet | ( | uint32_t | 
           
            msec
           
           | 
          ) | 
Set a timeout value. The timeout value will be decremented towards zero when SPI traffic to/from the micro SD card takes place. Use MICROSD_TimeOutElapsed() to check if timeout has elapsed.
- Parameters
 - 
         
[in] msecMillisecond timeout value (very approximate).  
        Definition at line
        
         410
        
        of file
        
         microsd.c
        
        .
       
| uint8_t MICROSD_XferSpi | ( | uint8_t | 
           
            data
           
           | 
          ) | 
Do one SPI transfer.
- Parameters
 - 
         
dataByte to transmit.  
- Returns
 - Byte received.
 
        Definition at line
        
         122
        
        of file
        
         microsd.c
        
        .
       
References USART_SpiTransfer() .
Referenced by MICROSD_BlockRx() , MICROSD_BlockTx() , MICROSD_Deselect() , and MICROSD_SendCmd() .