MicroSdKit Drivers
Detailed Description
This module implements the SPI layer needed to control a micro SD card.
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
46
of file
microsd.h
.
| #define ACMD23 (23 | 0x80) |
SET_WR_BLK_ERASE_COUNT (SDC)
Definition at line
51
of file
microsd.h
.
| #define ACMD41 (41 | 0x80) |
SEND_OP_COND (SDC)
Definition at line
41
of file
microsd.h
.
| #define CMD0 (0) |
| #define CMD1 (1) |
SEND_OP_COND
Definition at line
40
of file
microsd.h
.
| #define CMD10 (10) |
SEND_CID
Definition at line
44
of file
microsd.h
.
| #define CMD12 (12) |
| #define CMD16 (16) |
SET_BLOCKLEN
Definition at line
47
of file
microsd.h
.
| #define CMD17 (17) |
READ_SINGLE_BLOCK
Definition at line
48
of file
microsd.h
.
| #define CMD18 (18) |
READ_MULTIPLE_BLOCK
Definition at line
49
of file
microsd.h
.
| #define CMD23 (23) |
SET_BLOCK_COUNT
Definition at line
50
of file
microsd.h
.
| #define CMD24 (24) |
WRITE_BLOCK
Definition at line
52
of file
microsd.h
.
| #define CMD25 (25) |
WRITE_MULTIPLE_BLOCK
Definition at line
53
of file
microsd.h
.
| #define CMD41 (41) |
SEND_OP_COND (ACMD)
Definition at line
54
of file
microsd.h
.
| #define CMD55 (55) |
| #define CMD58 (58) |
READ_OCR
Definition at line
56
of file
microsd.h
.
| #define CMD8 (8) |
| #define CMD9 (9) |
SEND_CSD
Definition at line
43
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
175
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
244
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
133
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
326
of file
microsd.c
.
References CMD0 , CMD12 , CMD55 , CMD8 , MICROSD_Deselect() , MICROSD_Select() , MICROSD_SendCmd() , and MICROSD_XferSpi() .
Referenced by MICROSD_SendCmd() .
| bool MICROSD_TimeOutElapsed | ( | void |
|
) |
Check if timeout value set with MICROSD_TimeOutSet() has elapsed.
- Returns
- True if timeout has elapsed.
Definition at line
410
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
399
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
111
of file
microsd.c
.
References USART_SpiTransfer() .
Referenced by MICROSD_BlockRx() , MICROSD_BlockTx() , MICROSD_Deselect() , and MICROSD_SendCmd() .