|
Control Codes |
|
#define | MMCARD_GETSTATUS 0x2001 |
| | Retrieve card status.
|
|
#define | MMCARD_GETOCR 0x2002 |
| | Retrieve operation condition register.
|
|
#define | MMCARD_GETCID 0x2003 |
| | Retrieve card identification.
|
|
#define | MMCARD_GETCSD 0x2004 |
| | Retrieve card specific data.
|
Defines |
|
#define | MMCMD_HOST 0x40 |
|
#define | MMCMD_RESET_CRC 0x95 |
| #define | MMCMD_GO_IDLE_STATE 0 |
| | Reset card to idle state.
|
|
#define | MMCMD_SEND_OP_COND 1 |
| | Activate card's initialization process.
|
| #define | MMCMD_ALL_SEND_CID 2 |
| | Send operation condition register.
|
|
#define | MMCMD_SEND_RELATIVE_ADDR 3 |
| | Assign relative card address.
|
|
#define | MMCMD_SELECT_CARD 7 |
| | Assign relative card address.
|
|
#define | MMCMD_SEND_CSD 9 |
| | Query card's CSD.
|
|
#define | MMCMD_SEND_CID 10 |
| | Query card's CID.
|
|
#define | MMCMD_STOP_TRANSMISSION 12 |
| | Stop multiple block transmission.
|
|
#define | MMCMD_SEND_STATUS 13 |
| | Query card's status register.
|
|
#define | MMCMD_SET_BLOCKLEN 16 |
| | Select block length for following read/write commands.
|
|
#define | MMCMD_READ_SINGLE_BLOCK 17 |
| | Initiate single block read.
|
|
#define | MMCMD_READ_MULTIPLE_BLOCK 18 |
| | Initiate continuous block read.
|
|
#define | MMCMD_WRITE_BLOCK 24 |
| | Initiate single block write.
|
|
#define | MMCMD_WRITE_MULTIPLE_BLOCK 25 |
| | Initiate continuous block write.
|
|
#define | MMCMD_PROGRAM_CSD 27 |
| | Initiate programming of programmable CSD bits.
|
|
#define | MMCMD_SET_WRITE_PROTECT 28 |
| | Enable card's optional write protection.
|
|
#define | MMCMD_CLR_WRITE_PROTECT 29 |
| | Disable card's write protection.
|
|
#define | MMCMD_SEND_WRITE_PROTECT 30 |
| | Query card's write protect status.
|
|
#define | MMCMD_TAG_ERASE_GROUP_START 35 |
| | Set address of the first erase group.
|
|
#define | MMCMD_TAG_ERASE_GROUP_END 36 |
| | Set address of the last erase group.
|
|
#define | MMCMD_ERASE 38 |
| | Erase previously selected sectors.
|
|
#define | MMCMD_LOCK_UNLOCK 42 |
| | Set/clear password or lock/unlock the card.
|
|
#define | MMCMD_READ_OCR 58 |
| | Query card's operating condition register.
|
| #define | MMCMD_CRC_ON_OFF 59 |
| | Enable or disable CRC mode.
|
|
#define | MMR1_IDLE_STATE 0x00 |
| | Card is idle.
|
|
#define | MMR1_NOT_IDLE 0x01 |
| | Card is busy.
|
|
#define | MMR1_ERASE_RESET 0x02 |
| | Erase sequence was cleared before execution.
|
|
#define | MMR1_ILLEGAL_COMMAND 0x04 |
| | Illegal command code detected.
|
|
#define | MMR1_COM_CRC_ERROR 0x08 |
| | Bad command CRC detected.
|
|
#define | MMR1_ERASE_SEQ_ERROR 0x10 |
| | Bad erase sequence.
|
|
#define | MMR1_ADDRESS_ERROR 0x20 |
| | Misaligned address did not match block length.
|
|
#define | MMR1_PARAMETER_ERROR 0x40 |
| | Command parameter is out of range.
|
|
#define | MMR2_CARD_LOCKED 0x01 |
| | Card is locked.
|
|
#define | MMR2_WP_ERASE_SKIP 0x02 |
| | Erasing write protected sector or password error.
|
|
#define | MMR2_ERROR 0x04 |
| | General or unknown error occured.
|
|
#define | MMR2_CC_ERROR 0x08 |
| | Internal card controller error.
|
|
#define | MMR2_ECC_FAILED 0x10 |
| | Bad internal ECC.
|
|
#define | MMR2_WP_VIOLATION 0x20 |
| | Failed to write to protected block.
|
|
#define | MMR2_ERASE_PARAMETER 0x40 |
| | Invalid erase parameter.
|
|
#define | MMR2_OUT_OF_RANGE 0x80 |
| | Command parameter is out of range.
|
|
#define | MMCSR_OUT_OF_RANGE 0x80000000 |
|
#define | MMCSR_ADDRESS_ERROR 0x40000000 |
|
#define | MMCSR_BLOCK_LEN_ERROR 0x20000000 |
|
#define | MMCSR_ERASE_SEQ_ERROR 0x10000000 |
|
#define | MMCSR_ERASE_PARAM 0x08000000 |
|
#define | MMCSR_WP_VIOLATION 0x04000000 |
|
#define | MMCSR_COM_CRC_ERROR 0x00800000 |
|
#define | MMCSR_ILLEGAL_COMMAND 0x00400000 |
|
#define | MMCSR_ERROR 0x00080000 |
|
#define | MMCSR_CIDCSD_OVERWRITE 0x00010000 |
|
#define | MMCSR_WP_ERASE_SKIP 0x00008000 |
|
#define | MMCSR_CARD_ECC_DISABLED 0x00004000 |
|
#define | MMCSR_ERASE_RESET 0x00002000 |
|
#define | MMCSR_STATE_MASK 0x00001E00 |
|
#define | MMCSR_READY_FOR_DATA 0x00000100 |
|
#define | MMCSR_IS_IDLE 0x00000000 |
|
#define | MMCSR_IS_READY 0x00000200 |
|
#define | MMCSR_IS_IDENT 0x00000400 |
|
#define | MMCSR_IS_STBY 0x00000600 |
|
#define | MMCSR_IS_TRAN 0x00000800 |
|
#define | MMCSR_IS_DATA 0x00000A00 |
|
#define | MMCSR_IS_RCV 0x00000C00 |
|
#define | MMCSR_IS_PRG 0x00000E00 |
|
#define | MMCSR_IS_DIS 0x00001000 |
|
#define | MMDR_ACCEPTED |
|
#define | MMDR_CRC_ERROR |
|
#define | MMDR_WRITE_ERROR |
|
#define | MMCERR_TIMEOUT 0x00000001 |
|
#define | MMCOP_NBUSY 0x80000000 |
|
#define | MMCARD_CIDR_SIZE 16 |
| | Number of bytes in the CID register.
|
|
#define | MMCARD_CSDR_SIZE 16 |
| | Number of bytes in the CSD register.
|
|
#define | MMCARD_OCR_SIZE 32 |
| | Number of bytes in the operating condition register.
|
Typedefs |
|
typedef _MMCIFC | MMCIFC |
| | Low level access information structure.
|
|
typedef _MMC_CID | MMC_CID |
| | Multimedia card identification register.
|
|
typedef _MMC_CSD | MMC_CSD |
| | Multimedia card identification register.
|
Functions |
| int | MmCardDevInit (NUTDEVICE *dev) |
| | Initialize high level MMC driver.
|
| int | MmCardIOCtl (NUTDEVICE *dev, int req, void *conf) |
| | Perform MMC control functions.
|
| int | MmCardBlockRead (NUTFILE *nfp, void *buffer, int len) |
| | Read data blocks from a mounted partition.
|
| int | MmCardBlockWrite (NUTFILE *nfp, CONST void *buffer, int len) |
| | Write data blocks to a mounted partition.
|
| int | MmCardBlockWrite_P (NUTFILE *nfp, PGM_P buffer, int len) |
| | Write data blocks from program space to a mounted partition.
|
| NUTFILE * | MmCardMount (NUTDEVICE *dev, CONST char *name, int mode, int acc) |
| | Mount a partition.
|
| int | MmCardUnmount (NUTFILE *nfp) |
| | Unmount a previously mounted partition.
|