Hello,
I have written a bare metal program for that uses the MMC-Interfaces. I have tested it on the beagle bones with an sd card. It basically works (read CID, CSD, Blockdata).
Now I use another Board where an eMMC 4.41 compliant chip is attached to MMC1. I adapt my initialistion sequence to MMC. So I do the following:
- CMD0
- CMD1
- CMD2 (I get a valid CID from the card)
- CMD3
- CMD7 (select the card)
- CMD17 (read a data block of 512 bytes)
All Commands work until CMD17 (read single datablock).So the eMMC card basically initialized and working.
Now I want to read a single data block with CMD17.Before CMD17 I enable IE_BRR_ENABLE in the SD_IE Register. Directly after the CMD17 returns sucessfully (R1 shows no errors) I poll for BRR_ENABLE in the SD_STAT register. But this Bit never changes to 1.
Here is the Content of the PSTATE-Register after some timeout:
CMD17: = 0x01e40206
SD_STAT = 0x00000000
On SD-Card read_single_datablock functions works.
Is there any difference when transfer datablock between MMC and SD cards with this MMC-Interface?