在评估RX72M的SDHI模块功能时,我调试了示例代码(r01an4233xx0300-rx-sdmemory)。我遇到了以下问题。 SD卡初始化过程中:r_sdc_sd_send_cmd_arg(card_no, SDC_SD_CMD7, SDC_SD_RESP_R1b, p_hndl-> rca [0])的返回值现在是SDC_SD_ERR_HOST_TOE。可能的原因是什么?备注: (1) CMD7 之前的命令(SMD0、CMD8、ACMD41、CMD2、CMD3、CMD9、CMD13)运行良好。响应是准确的。 (2) sd卡为8G存储卡。 (3)发送CMD7前,sd卡状态为standby。
日文区的一个提问,我遇到和他一摸一样的问题。有回答说换张卡试试,然后就没有下文了。
一张UHS-1 8G MLC卡,一张Class10 8G MLC卡,一张2G卡。
我把SDC_SD_TIMEOUT_RESP改成原来的10倍,现在是SDC_SD_ERR_CARD_TOE了。
发了CMD7后SDSTS2.CBSY一直是1。
CMD线上的信号看着没问题,DAT0一直是低。
关于错误的详细些的说明,可以参考以下文档:
https://www.renesas.com/us/en/document/apn/rx-family-sd-mode-sd-memory-card-driver-firmware-integration-technology-rev300?language=en&r=1169346
另外,请确认以下内容:
1、SD卡是否可用
2、对照SD卡的datasheet,接收cmd之前有没有要求?例如,需要为SD卡提供至少多少个时钟周期后才能接收命令?或者在发送CMD之前需要将CS设置为低。
感谢您的回复。我正在读datasheet。SD卡没有用SPI模式,发送CMD0时CS为高。我之前怀疑是板子有问题,所以在RSK+RX65N-2M的官方开发板上也试了r01an4233xx0300-rx-sdmemory这个示例代码,结果现在出现了ACMD41超时。
问题解决了。
SDHI的信号没有上拉。我还特意去看了最新版的电路图,是有上拉的,结果我手里的原型机是旧版。而RX65N开发板上的上拉要额外做一个配置才能起作用。
所以原型机不好使,开发板也不好使。