| EFR32 Blue Gecko 1 Software Documentation
    efr32bg1-doc-5.1.2
    | 
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.  More... | |
| int | MICROSD_BlockTx (const uint8_t *buff, uint8_t token) | 
| Send a data block to micro SD card.  More... | |
| 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.  More... | |
| uint8_t | MICROSD_SendCmd (uint8_t cmd, DWORD arg) | 
| Send a command packet to micro SD card.  More... | |
| 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.  More... | |
| 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.  More... | |
| uint8_t | MICROSD_XferSpi (uint8_t data) | 
| Do one SPI transfer.  More... | |
| #define CMD0 (0) | 
| #define CMD12 (12) | 
| #define CMD55 (55) | 
| #define CMD8 (8) | 
| int MICROSD_BlockRx | ( | uint8_t * | buff, | 
| uint32_t | btr | ||
| ) | 
Receive a data block from micro SD card.
| [out] | buff | Data buffer to store received data. | 
| btr | Byte count (must be multiple of 4). | 
Definition at line 178 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.
| [in] | buff | 512 bytes data block to be transmitted. | 
| token | Data token. | 
Definition at line 253 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.
Definition at line 135 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.
| [in] | cmd | Command byte. | 
| [in] | arg | Argument. | 
Definition at line 342 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.
| 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.
| [in] | msec | Millisecond timeout value (very approximate). | 
| uint8_t MICROSD_XferSpi | ( | uint8_t | data | ) | 
Do one SPI transfer.
| data | Byte to transmit. | 
Definition at line 112 of file microsd.c.
References USART_SpiTransfer().
Referenced by MICROSD_BlockRx(), MICROSD_BlockTx(), MICROSD_Deselect(), and MICROSD_SendCmd().