遵循Sdio规范
.。
事实是,当我在董事会启动例程中从HAL库中运行“HAL_SD_INIT”函数时,有时它可以很好地工作并且我的应用程序运行良好(读取,写入,所有操作都可以),但有时似乎不是,并且似乎完全完全兰多姆和
. 我甚至以whal_sd_init方法(仅用于测试目的)包围了HAL_SD_INIT
方法,如果SD初始化是成功的,则董事会只是继续启动例程,同时,我继续在插槽上切换卡片,插入并删除它,直到它神奇地工作并继续执行代码为止。while(HAL_SD_Init(&hsd) != HAL_OK);
代码似乎很好,我连接了逻辑分析仪,并试图在物理域中分析ok和nok的情况:
案例:
main说: 命令行(CMD)中的命令序列似乎还可以-CMD0发送,已发送CMD8,CMD8按预期回答,然后一切正常进行。 数据线(D0)保持在此阶段预期的高级空闲中。
nok案:
noce行为正在进行中,如果我不尝试删除和重新插入卡,即我可以无限地对卡进行轮询,甚至不关闭董事会,请等待片刻,等待片刻,然后将其打开再次。根本不起作用
I在初始化阶段尝试将SD CLK更改为较高和较低的值,但没有效果。它继续有些随机和间歇性。我无法弄清楚SD卡在CMD行中没有回答我的命令时要返回的内容,而是在D0行中回答某些内容。如果联系人松动,我不希望该卡返回任何东西。
触点似乎没有松动或不对对准(视觉分析)。我试图将其更多地插入左侧,更多地向右插入,施加向上和上下压力,但未检测到模式。到目前为止,没有任何线索。