![]() |
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) } |
| 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 |
| Host IO voltage window. | |
| 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. |