MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MMCCARD driver provide card initialization/read/write/erase interface.
Not support yet
~~~~~{.c}
/* Save host information.
Data Structures | |
struct | mmc_card_t |
mmc card state More... | |
Enumerations | |
enum | _mmc_card_flag { kMMC_SupportHighSpeed26MHZFlag = (1U << 0U), kMMC_SupportHighSpeed52MHZFlag = (1U << 1U), kMMC_SupportHighSpeedDDR52MHZ180V300VFlag = (1 << 2U), kMMC_SupportHighSpeedDDR52MHZ120VFlag = (1 << 3U), kMMC_SupportHS200200MHZ180VFlag = (1 << 4U), kMMC_SupportHS200200MHZ120VFlag = (1 << 5U), kMMC_SupportHS400DDR200MHZ180VFlag = (1 << 6U), kMMC_SupportHS400DDR200MHZ120VFlag = (1 << 7U), kMMC_SupportHighCapacityFlag = (1U << 8U), kMMC_SupportAlternateBootFlag = (1U << 9U), kMMC_SupportDDRBootFlag = (1U << 10U), kMMC_SupportHighSpeedBootFlag = (1U << 11U), kMMC_SupportEnhanceHS400StrobeFlag = (1U << 12U) } |
MMC card flags. More... | |
MMCCARD Function | |
status_t | MMC_Init (mmc_card_t *card) |
Initializes the MMC card and host. More... | |
void | MMC_Deinit (mmc_card_t *card) |
Deinitializes the card and host. More... | |
status_t | MMC_CardInit (mmc_card_t *card) |
intialize the card. More... | |
void | MMC_CardDeinit (mmc_card_t *card) |
Deinitializes the card. More... | |
status_t | MMC_HostInit (mmc_card_t *card) |
initialize the host. More... | |
void | MMC_HostDeinit (mmc_card_t *card) |
Deinitializes the host. More... | |
void | MMC_HostReset (SDMMCHOST_CONFIG *host) |
reset the host. More... | |
void | MMC_PowerOnCard (SDMMCHOST_TYPE *base, const sdmmchost_pwr_card_t *pwr) |
power on card. More... | |
void | MMC_PowerOffCard (SDMMCHOST_TYPE *base, const sdmmchost_pwr_card_t *pwr) |
power off card. More... | |
bool | MMC_CheckReadOnly (mmc_card_t *card) |
Checks if the card is read-only. More... | |
status_t | MMC_ReadBlocks (mmc_card_t *card, uint8_t *buffer, uint32_t startBlock, uint32_t blockCount) |
Reads data blocks from the card. More... | |
status_t | MMC_WriteBlocks (mmc_card_t *card, const uint8_t *buffer, uint32_t startBlock, uint32_t blockCount) |
Writes data blocks to the card. More... | |
status_t | MMC_EraseGroups (mmc_card_t *card, uint32_t startGroup, uint32_t endGroup) |
Erases groups of the card. More... | |
status_t | MMC_SelectPartition (mmc_card_t *card, mmc_access_partition_t partitionNumber) |
Selects the partition to access. More... | |
status_t | MMC_SetBootConfig (mmc_card_t *card, const mmc_boot_config_t *config) |
Configures the boot activity of the card. More... | |
status_t | MMC_StartBoot (mmc_card_t *card, const mmc_boot_config_t *mmcConfig, uint8_t *buffer, SDMMCHOST_BOOT_CONFIG *hostConfig) |
MMC card start boot. More... | |
status_t | MMC_SetBootConfigWP (mmc_card_t *card, uint8_t wp) |
MMC card set boot configuration write protect. More... | |
status_t | MMC_ReadBootData (mmc_card_t *card, uint8_t *buffer, SDMMCHOST_BOOT_CONFIG *hostConfig) |
MMC card continous read boot data. More... | |
status_t | MMC_StopBoot (mmc_card_t *card, uint32_t bootMode) |
MMC card stop boot mode. More... | |
status_t | MMC_SetBootPartitionWP (mmc_card_t *card, mmc_boot_partition_wp_t bootPartitionWP) |
MMC card set boot partition write protect. More... | |
struct mmc_card_t |
Define the card structure including the necessary fields to identify and describe the card.
Data Fields | |
SDMMCHOST_CONFIG | host |
Host information. | |
mmccard_usr_param_t | usrParam |
user parameter | |
bool | isHostReady |
Use this flag to indicate if need host re-init or not. | |
bool | noInteralAlign |
use this flag to disable sdmmc align. More... | |
uint32_t | busClock_Hz |
MMC bus clock united in Hz. | |
uint32_t | relativeAddress |
Relative address of the card. | |
bool | enablePreDefinedBlockCount |
Enable PRE-DEFINED block count when read/write. | |
uint32_t | flags |
Capability flag in _mmc_card_flag. | |
uint32_t | rawCid [4U] |
Raw CID content. | |
uint32_t | rawCsd [4U] |
Raw CSD content. | |
uint32_t | rawExtendedCsd [MMC_EXTENDED_CSD_BYTES/4U] |
Raw MMC Extended CSD content. | |
uint32_t | ocr |
Raw OCR content. | |
mmc_cid_t | cid |
CID. | |
mmc_csd_t | csd |
CSD. | |
mmc_extended_csd_t | extendedCsd |
Extended CSD. | |
uint32_t | blockSize |
Card block size. | |
uint32_t | userPartitionBlocks |
Card total block number in user partition. | |
uint32_t | bootPartitionBlocks |
Boot partition size united as block size. | |
uint32_t | eraseGroupBlocks |
Erase group size united as block size. | |
mmc_access_partition_t | currentPartition |
Current access partition. | |
mmc_voltage_window_t | hostVoltageWindowVCCQ |
application must set this value according to board specific | |
mmc_voltage_window_t | hostVoltageWindowVCC |
application must set this value according to board specific | |
mmc_high_speed_timing_t | busTiming |
indicate the current work timing mode | |
mmc_data_bus_width_t | busWidth |
indicate the current work bus width | |
bool mmc_card_t::noInteralAlign |
If disable, sdmmc will not make sure the data buffer address is word align, otherwise all the transfer are align to low level driver
enum _mmc_card_flag |
status_t MMC_Init | ( | mmc_card_t * | card | ) |
card | Card descriptor. |
kStatus_SDMMC_HostNotReady | host is not ready. |
kStatus_SDMMC_GoIdleFailed | Go idle failed. |
kStatus_SDMMC_SendOperationConditionFailed | Send operation condition failed. |
kStatus_SDMMC_AllSendCidFailed | Send CID failed. |
kStatus_SDMMC_SetRelativeAddressFailed | Set relative address failed. |
kStatus_SDMMC_SendCsdFailed | Send CSD failed. |
kStatus_SDMMC_CardNotSupport | Card not support. |
kStatus_SDMMC_SelectCardFailed | Send SELECT_CARD command failed. |
kStatus_SDMMC_SendExtendedCsdFailed | Send EXT_CSD failed. |
kStatus_SDMMC_SetBusWidthFailed | Set bus width failed. |
kStatus_SDMMC_SwitchHighSpeedFailed | Switch high speed failed. |
kStatus_SDMMC_SetCardBlockSizeFailed | Set card block size failed. |
kStatus_Success | Operate successfully. |
void MMC_Deinit | ( | mmc_card_t * | card | ) |
card | Card descriptor. |
status_t MMC_CardInit | ( | mmc_card_t * | card | ) |
card | Card descriptor. |
kStatus_SDMMC_HostNotReady | host is not ready. |
kStatus_SDMMC_GoIdleFailed | Go idle failed. |
kStatus_SDMMC_SendOperationConditionFailed | Send operation condition failed. |
kStatus_SDMMC_AllSendCidFailed | Send CID failed. |
kStatus_SDMMC_SetRelativeAddressFailed | Set relative address failed. |
kStatus_SDMMC_SendCsdFailed | Send CSD failed. |
kStatus_SDMMC_CardNotSupport | Card not support. |
kStatus_SDMMC_SelectCardFailed | Send SELECT_CARD command failed. |
kStatus_SDMMC_SendExtendedCsdFailed | Send EXT_CSD failed. |
kStatus_SDMMC_SetBusWidthFailed | Set bus width failed. |
kStatus_SDMMC_SwitchHighSpeedFailed | Switch high speed failed. |
kStatus_SDMMC_SetCardBlockSizeFailed | Set card block size failed. |
kStatus_Success | Operate successfully. |
void MMC_CardDeinit | ( | mmc_card_t * | card | ) |
card | Card descriptor. |
status_t MMC_HostInit | ( | mmc_card_t * | card | ) |
This function deinitializes the specific host.
card | Card descriptor. |
void MMC_HostDeinit | ( | mmc_card_t * | card | ) |
This function deinitializes the host.
card | Card descriptor. |
void MMC_HostReset | ( | SDMMCHOST_CONFIG * | host | ) |
This function reset the specific host.
host | host descriptor. |
void MMC_PowerOnCard | ( | SDMMCHOST_TYPE * | base, |
const sdmmchost_pwr_card_t * | pwr | ||
) |
The power on operation depend on host or the user define power on function.
base | host base address. |
pwr | user define power control configuration |
void MMC_PowerOffCard | ( | SDMMCHOST_TYPE * | base, |
const sdmmchost_pwr_card_t * | pwr | ||
) |
The power off operation depend on host or the user define power on function.
base | host base address. |
pwr | user define power control configuration |
bool MMC_CheckReadOnly | ( | mmc_card_t * | card | ) |
card | Card descriptor. |
true | Card is read only. |
false | Card isn't read only. |
status_t MMC_ReadBlocks | ( | mmc_card_t * | card, |
uint8_t * | buffer, | ||
uint32_t | startBlock, | ||
uint32_t | blockCount | ||
) |
card | Card descriptor. |
buffer | The buffer to save data. |
startBlock | The start block index. |
blockCount | The number of blocks to read. |
kStatus_InvalidArgument | Invalid argument. |
kStatus_SDMMC_CardNotSupport | Card not support. |
kStatus_SDMMC_SetBlockCountFailed | Set block count failed. |
kStatus_SDMMC_TransferFailed | Transfer failed. |
kStatus_SDMMC_StopTransmissionFailed | Stop transmission failed. |
kStatus_Success | Operate successfully. |
status_t MMC_WriteBlocks | ( | mmc_card_t * | card, |
const uint8_t * | buffer, | ||
uint32_t | startBlock, | ||
uint32_t | blockCount | ||
) |
card | Card descriptor. |
buffer | The buffer to save data blocks. |
startBlock | Start block number to write. |
blockCount | Block count. |
kStatus_InvalidArgument | Invalid argument. |
kStatus_SDMMC_NotSupportYet | Not support now. |
kStatus_SDMMC_SetBlockCountFailed | Set block count failed. |
kStatus_SDMMC_WaitWriteCompleteFailed | Send status failed. |
kStatus_SDMMC_TransferFailed | Transfer failed. |
kStatus_SDMMC_StopTransmissionFailed | Stop transmission failed. |
kStatus_Success | Operate successfully. |
status_t MMC_EraseGroups | ( | mmc_card_t * | card, |
uint32_t | startGroup, | ||
uint32_t | endGroup | ||
) |
Erase group is the smallest erase unit in MMC card. The erase range is [startGroup, endGroup].
card | Card descriptor. |
startGroup | Start group number. |
endGroup | End group number. |
kStatus_InvalidArgument | Invalid argument. |
kStatus_SDMMC_WaitWriteCompleteFailed | Send status failed. |
kStatus_SDMMC_TransferFailed | Transfer failed. |
kStatus_Success | Operate successfully. |
status_t MMC_SelectPartition | ( | mmc_card_t * | card, |
mmc_access_partition_t | partitionNumber | ||
) |
card | Card descriptor. |
partitionNumber | The partition number. |
kStatus_SDMMC_ConfigureExtendedCsdFailed | Configure EXT_CSD failed. |
kStatus_Success | Operate successfully. |
status_t MMC_SetBootConfig | ( | mmc_card_t * | card, |
const mmc_boot_config_t * | config | ||
) |
card | Card descriptor. |
config | Boot configuration structure. |
kStatus_SDMMC_NotSupportYet | Not support now. |
kStatus_SDMMC_ConfigureExtendedCsdFailed | Configure EXT_CSD failed. |
kStatus_SDMMC_ConfigureBootFailed | Configure boot failed. |
kStatus_Success | Operate successfully. |
status_t MMC_StartBoot | ( | mmc_card_t * | card, |
const mmc_boot_config_t * | mmcConfig, | ||
uint8_t * | buffer, | ||
SDMMCHOST_BOOT_CONFIG * | hostConfig | ||
) |
card | Card descriptor. |
mmcConfig | mmc Boot configuration structure. |
buffer | address to recieve data. |
hostConfig | host boot configurations. |
kStatus_Fail | fail. |
kStatus_SDMMC_TransferFailed | transfer fail. |
kStatus_SDMMC_GoIdleFailed | reset card fail. |
kStatus_Success | Operate successfully. |
status_t MMC_SetBootConfigWP | ( | mmc_card_t * | card, |
uint8_t | wp | ||
) |
card | Card descriptor. |
wp | write protect value. |
status_t MMC_ReadBootData | ( | mmc_card_t * | card, |
uint8_t * | buffer, | ||
SDMMCHOST_BOOT_CONFIG * | hostConfig | ||
) |
card | Card descriptor. |
buffer | buffer address. |
hostConfig | host boot configurations. |
status_t MMC_StopBoot | ( | mmc_card_t * | card, |
uint32_t | bootMode | ||
) |
card | Card descriptor. |
bootMode | boot mode. |
status_t MMC_SetBootPartitionWP | ( | mmc_card_t * | card, |
mmc_boot_partition_wp_t | bootPartitionWP | ||
) |
card | Card descriptor. |
bootPartitionWP | boot partition write protect value. |