LPCOpen Platform  v1.03
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sdmmc_17xx_40xx.h File Reference
#include "lpc_sdmmc.h"

Go to the source code of this file.

Data Structures

struct  SDMMC_EVENT_T
 SDC Event structure. More...
 

Macros

#define SDC_IDENT_CLOCK_RATE   (400000) /* 400KHz */
 
#define SDC_TRAN_CLOCK_RATE   (20000000) /* 20MHz */
 
#define CMDRESP_NONE_TYPE   (SDC_COMMAND_NO_RSP)
 
#define CMDRESP_R1_TYPE   (SDC_COMMAND_SHORT_RSP)
 
#define CMDRESP_R1b_TYPE   (SDC_COMMAND_SHORT_RSP)
 
#define CMDRESP_R2_TYPE   (SDC_COMMAND_LONG_RSP)
 
#define CMDRESP_R3_TYPE   (SDC_COMMAND_SHORT_RSP)
 
#define CMDRESP_R6_TYPE   (SDC_COMMAND_SHORT_RSP)
 
#define CMDRESP_R7_TYPE   (SDC_COMMAND_SHORT_RSP)
 
#define SD_GO_IDLE_STATE   (SDC_COMMAND_INDEX(MMC_GO_IDLE_STATE) | CMDRESP_NONE_TYPE | SDC_COMMAND_INTERRUPT)
 
#define SD_CMD1_SEND_OP_COND   (SDC_COMMAND_INDEX(MMC_SEND_OP_COND) | CMDRESP_R3_TYPE | 0)
 
#define SD_CMD2_ALL_SEND_CID   (SDC_COMMAND_INDEX(MMC_ALL_SEND_CID) | CMDRESP_R2_TYPE | 0)
 
#define SD_CMD3_SET_RELATIVE_ADDR   (SDC_COMMAND_INDEX(MMC_SET_RELATIVE_ADDR) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD3_SEND_RELATIVE_ADDR   (SDC_COMMAND_INDEX(SD_SEND_RELATIVE_ADDR) | CMDRESP_R6_TYPE | 0)
 
#define SD_CMD7_SELECT_CARD   (SDC_COMMAND_INDEX(MMC_SELECT_CARD) | CMDRESP_R1b_TYPE | 0)
 
#define SD_CMD8_SEND_IF_COND   (SDC_COMMAND_INDEX(SD_CMD8) | CMDRESP_R7_TYPE | 0)
 
#define SD_CMD9_SEND_CSD   (SDC_COMMAND_INDEX(MMC_SEND_CSD) | CMDRESP_R2_TYPE | 0)
 
#define SD_CMD12_STOP_TRANSMISSION   (SDC_COMMAND_INDEX(MMC_STOP_TRANSMISSION) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD13_SEND_STATUS   (SDC_COMMAND_INDEX(MMC_SEND_STATUS) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD16_SET_BLOCKLEN   (SDC_COMMAND_INDEX(MMC_SET_BLOCKLEN) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD17_READ_SINGLE_BLOCK   (SDC_COMMAND_INDEX(MMC_READ_SINGLE_BLOCK) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD18_READ_MULTIPLE_BLOCK   (SDC_COMMAND_INDEX(MMC_READ_MULTIPLE_BLOCK) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD24_WRITE_BLOCK   (SDC_COMMAND_INDEX(MMC_WRITE_BLOCK) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD25_WRITE_MULTIPLE_BLOCK   (SDC_COMMAND_INDEX(MMC_WRITE_MULTIPLE_BLOCK) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD32_ERASE_WR_BLK_START   (SDC_COMMAND_INDEX(SD_ERASE_WR_BLK_START) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD33_ERASE_WR_BLK_END   (SDC_COMMAND_INDEX(SD_ERASE_WR_BLK_END) | CMDRESP_R1_TYPE | 0)
 
#define SD_CMD38_ERASE   (SDC_COMMAND_INDEX(SD_ERASE) | CMDRESP_R1b_TYPE | 0)
 
#define SD_CMD55_APP_CMD   (SDC_COMMAND_INDEX(MMC_APP_CMD) | CMDRESP_R1_TYPE | 0)
 
#define SD_ACMD6_SET_BUS_WIDTH   (SDC_COMMAND_INDEX(SD_APP_SET_BUS_WIDTH) | CMDRESP_R1_TYPE | 0)
 
#define SD_ACMD13_SEND_SD_STATUS   (SDC_COMMAND_INDEX(MMC_SEND_STATUS) | CMDRESP_R1_TYPE | 0)
 
#define SD_ACMD41_SD_SEND_OP_COND   (SDC_COMMAND_INDEX(SD_APP_OP_COND) | CMDRESP_R3_TYPE | 0)
 

Functions

int32_t Chip_SDMMC_IRQHandler (LPC_SDC_T *pSDC, uint8_t *txBuf, uint32_t *txCnt, uint8_t *rxBuf, uint32_t *rxCnt)
 SD card interrupt service routine.
 
int32_t Chip_SDMMC_Acquire (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo)
 Function to enumerate the SD/MMC/SDHC/MMC+ cards.
 
SDMMC_STATE_T Chip_SDMMC_GetCardState (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo)
 Get card's current state (idle, transfer, program, etc.)
 
uint32_t Chip_SDMMC_GetCardStatus (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo)
 Get 'card status' of SD Memory card.
 
int32_t Chip_SDMMC_GetSDStatus (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo, uint32_t *pStatus)
 Get 'sd status' of SD Memory card.
 
int32_t Chip_SDMMC_ReadBlocks (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo, void *buffer, int32_t startblock, int32_t blockNum)
 Performs the read of data from the SD/MMC card.
 
int32_t Chip_SDMMC_WriteBlocks (LPC_SDC_T *pSDC, SDMMC_CARD_T *pCardInfo, void *buffer, int32_t startblock, int32_t blockNum)
 Performs write of data to the SD/MMC card.