This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM2634-Q1:mmcsd 模块问题

Guru**** 2535150 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1565294/am2634-q1-mmcsd-module-issues

器件型号:AM2634-Q1


工具/软件:

大家好!

我在使用 TI AM263x 和 MCU+SDK (10.02.00.13) 调试 SDIO 时遇到一些问题:

  1. 我使用轮询模式发送和接收命令:

    设置了响应、但 MMCSD_LLD_cmdCompleteStatusPoll 不报告错误后、MMCSD_LLD_transferPoll 中的 MMCSD_getResponse 不会获得正确的响应、需要手动添加延迟。 逻辑分析仪确认另一端已回复。
    器件已设置为“需要响应“、不会对结束响应、但是 MMCSD_LLD_cmdCompleteStatusPoll 未返回任何错误、代码正确、日志没有相关的标志位。
    代码错误:
    MMCSDLLD_Object 的 cmdErrorStat 和 xferErrorStat 属于 uint16_t 类型、但库中的赋值代码格式为:object->xferErrorStat =(intrStatus & 0xFFFF0000U);
    这导致错误标志位始终为 0。
  2. 是否有 SDIO 初始化的建议? 主机端初始化完成后、SDIO 器件初始化具有大量命令和寄存器操作、需要了解 SDIO 规格、这可能会导致两个参数不匹配
  3. 我需要异步中断 (DAT[1]) 函数。 这些寄存器可以找到 MMC_AC2 -> AI_ENABLE。 但是、未找到处理此中断的示例。 是否有任何相关材料?

此致、

Jenney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Jenney:

    我已阅读 MMCSD 驱动程序。 该驱动程序不支持专用的 SDIO 命令、例如 CMD52、CMD53、CMD5、CMD6 等 AM263x 器件上的 MMCSD 硬件接口支持高达 4.3 的 MMC 规范修订版和 SD、SDIO 修订版 2.00。 SD rev2.0 的最大数据速率为 25MB/s MMC Rec4.3 支持高达 50MB/s 的最大数据速率  

    您使用哪种 SDIO 卡通过 SDK 10.02 进行测试? 是使用 1 位数据传输模式还是 4 数据传输模式? 您正在使用哪些 SD 命令?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Qingjun:

    1. WiFi SDIO 卡;
    2. 4 位数据传输模式;
    3. SD 命令:启动 —  CMD5、CMD3、CMD7,传输数据 — CMD52、CMD53
      因此、在轮询模式下发送和接收的现象是 CMD52 和 CMD53 引起的、对吧?  是否建议使用传输数据命令?   
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jenney:

    很抱歉、我没有用于测试 SDK MMCSD 驱动程序的 SDIO WiFi 卡或 BT 卡。 MMCSD 驱动程序不支持 CMD5 (IO 发送 OP COND)、CMD52 (IO_RW_DIRECT) 和 CMD53 (IO_RW_EXTENDED)、这些是用于 SDIO 的特定命令。

    CMD5 用于启动 SDIO 卡并检查其就绪情况。 CMD52 是直接读取或写入单字节或短寄存器。 CMD53 用于 读取或写入多个字节或数据块、从而实现从器件进行高效的扩展数据传输。  

    您可以使用 CMD17(读取单个块)进行字节读取、使用 CMD24(写入单个块)进行字节写入、并使用 CMD18(读取多个块)进行块读取、使用 CMD25 进行块写入(写入多个块)。 这是我的理解,你可以尝试他们。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Qingjun:

      CMD5 怎么样? 您建议用于 SDIO 初始化的命令是什么?   

    此致、

    Jenney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jenney:

    在 SDIO 协议中、 CMD5 在初始化阶段用于查询 SDIO 卡的 I/O 操作条件寄存器 (OCR)。 它有助于确定卡的电压范围以及它是否支持 SDIO 功能。

    我看不到等效的 CMD。 您可以尝试使用 ACMD41 (CMD55 + CMD41) 获取 OCR。