Hello community members.
I have recently started working with SD card using Microchip ARM based uC SAM4. So far I have managed to initialize the HSMCI interface of SAM4 and SD card is also initialized and has responded with the card capacity and the RCA (Relative Card Address). What I need to do now is read and write on the SD card. For this purpose I have extracted some functions implemented in the Atmel Studio examples. What I am confused about is how is the addressing done for the SD card, I realize that the card responds with a RCA but afterwards how is the addressing tracked to read and write data over the SD card and if we want to read data previously written how do we know where to read it from. I understand these are very basic questions but as I mentioned I am very new to this and need assistance.
Thanks in advance.
Regards,
Owais.
Great, If you have the correct Relative Card Address it's easiest. What methode did you use to configure your SD Card Boot ? In the U-Boot sequence cross compiled, you could enter the RCA manually, if i remember clearly.
I am not sure if I understand you correctly, but I have used the initialization sequence as given in the attachment. Now i am trying to understand how to insert this in FreeRTOS+FAT SL. If you have any experience please do share.
Owais
Hi Owais,
I mean the return address is like 0x????????U or somethink like that ? No ?what is the correct RCA ? You have to recompile your code after modify the correct RCA in the correct .h file for exemple : sam4s16e.hI mean it's may only a mistake in a define's entry perhaps ?
Hello,
I mean the address is correct that is why the card is initializing and responding with CSD(Card Specific Data) from which I can collect the correct card size. Thsi is not a problem the initialization is carried out without any error. What is troubling me is the read and write block functions. Here I have attached both of these functions please have a look and suggest.
regards,