I'm原型使用包含

问题描述 投票:0回答:0

遵循Sdio规范

.

事实是,当我在董事会启动例程中从HAL库中运行“HAL_SD_INITSD Card Pic”函数时,有时它可以很好地工作并且我的应用程序运行良好(读取,写入,所有操作都可以),但有时似乎不是,并且似乎完全完全兰多姆和

intermittent

. 我甚至以whal_sd_init方法(仅用于测试目的)包围了HAL_SD_INIT

方法,如果SD初始化是成功的,则董事会只是继续启动例程,同时,我继续在插槽上切换卡片,插入并删除它,直到它神奇地工作并继续执行代码为止。

while(HAL_SD_Init(&hsd) != HAL_OK); 代码似乎很好,我连接了逻辑分析仪,并试图在物理域中分析oknok的情况:

案例:

main说: 命令行(CMD)中的命令序列似乎还可以-CMD0发送,已发送CMD8,CMD8按预期回答,然后一切正常进行。 数据线(D0)保持在此阶段预期的高级空闲中。

  • nok案:
    1. main说:
    2. command行(CMD)中的command序列似乎还可以,但未解决-CMD0发送,已发送CMD8,但没有答案。 另一方面,数据线(D0)不是闲置,而是在传达某些内容(我在SDIO规格中没有发现任何内容)。

OK CASE

  • 最终思想和观察:

    noce行为正在进行中,如果我不尝试删除和重新插入卡,即我可以无限地对卡进行轮询,甚至不关闭董事会,请等待片刻,等待片刻,然后将其打开再次。根本不起作用

    I在初始化阶段尝试将SD CLK更改为较高和较低的值,但没有效果。它继续有些随机和间歇性。

    我无法弄清楚SD卡在CMD行中没有回答我的命令时要返回的内容,而是在D0行中回答某些内容。如果联系人松动,我不希望该卡返回任何东西。

    触点似乎没有松动或不对对准(视觉分析)。我试图将其更多地插入左侧,更多地向右插入,施加向上和上下压力,但未检测到模式。到目前为止,没有任何线索。
      当插入微型SD适配器并插入我的PC时,该卡正常工作。
    1. 我知道是否有任何问题。
    放弃该项目一段时间并重做董事会的电气建筑后,我发现了这个问题。 STM32Cubeide(方便的工具,但不自由错误)自动生成SDIO / FATFS的代码部分。
  • 设置FATF时,它要求我使用“检测到的卡”销。对于我的董事会,该引脚与SDIO D3 PIN相撞。因此,我正在强迫其中一个SD卡数据销(尽管以1位操作)。因此,我开始间歇性行为。
I删除了代码 +的这一部分,完全删除了该卡的PIN,通过软件逻辑对其进行了字幕,并使GPIO非初始化。现在,它就像魅力一样!

enter image description here

embedded stm32 sd-card spi
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.