I am developing a FAT stack for SDHC cards for my MSC thesis, and I have faced with some problems at the very beginnings.
I am trying to initialize my SDHC card from my fimrware but at this point I have stucked:
-First of all, in my configuration I am using SDHC peripheral
-After power up I issue a CMD0 SW reset command to the SDHC card, but I cannot get back the so called R1 response data
-Following up the mandatory routine I issue a CMD8 command, to check voltage range support of the card, and it responds back with
the same pattern, in case I sent valid paramters. This signs that the communication at phy layer should be ok.
-The problem arises when I am issuing ACMD41 command, with 0 Voltage level argument, but I cannot get back the OCR register content of the card. Instead the response register of the micro contains the previous respond. The problem is, that I have not figured out yet, that how could I determine that the micro have not received valid response, however every flag signs that a command successfully executed, and no error flags signs other.
In that case I send invalid parameters as CMD8 argument, that the previous content of the response register remains the same. This terminology means that no response were received (as Phy specification also says: In that case CMD8 args are invalid, that SD card not responds). But the problem is, that I have experienced the same when issuing ACMD41 command, and other commands, I simply cannot get valid answers, and from the sw point of view I am unable to determine that the response fields containing valid data or some previous data.
I am looking for the help of professionals who have deeper lever experience in this case.
Thank you very much in advance!