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.

[参考译文] TMDSCNCD263P:MMC/SD 示例失败

Guru**** 2875350 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1626842/tmdscncd263p-mmc-sd-examples-fail

器件型号: TMDSCNCD263P
主题: SysConfig 中讨论的其他器件

您好、

我最近就该主题发布了有关 LP-AM263Px 上 MMC/SD 示例故障的内容。 这是对一篇有关 Etherent 示例故障的大型文章的补充、该示例已通过 TI 的补丁修复。

我们购买了新硬件、但仍然存在同样的故障。 我们测试了多个 SD 卡,具有不同的文件系统格式和不同的分区选项,没有工作.

所有示例都显示为正确识别卡、但在切换到 4 位模式后失败。

我们得到的测试的输出为:

[Cortex_R5_0] [MMCSD FILE IO] Starting...
Some tests have failed!!

 

我们的 SDK 是 mcu_plus_sdk_am263px_11_01_00_19、该电路板上的相关示例是 mmcsd_file_io_am263px-cc_r5fss0-0_freertos_ti-arm-clang、但我们测试了所有其他示例、包括原始示例以相同的方式失败。

 

希望 TI 的某人能弄清楚测试失败的原因、甚至可以确认切换到 4 位模式时驱动器代码是否存在问题。

 

谢谢。

 

 

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

    您好、

    最可能的原因
    1.错误的主板型号示例

    您的示例名称为 mmcsd_file_io_am263px-**cc**_r5fss0-0_freertos_ti-arm-clang—-cc 后缀适用于 controlCARD、而不是 LaunchPad (-lp)。 运行错误的电路板型号意味着 example.syscfg 中的 pinmux 和硬件配置对于您的实际电路板是错误的、这将完全影响在 4 位模式下才重要的数据线 (D1–D3)。

    检查:您的 SDK 中是否存在示例的-lp 变体?  -->  C:/ti/mcu_plus_sdk_am263px_11_01_00_19/examples/drivers/mmcsd

    2. D1–D3 线路的引脚多路复用

    卡 ID 仅使用 CMD + D0 + CLK(1 位模式)。 切换到 4 位会激活 D1、D2、D3。 如果这些引脚在 SysConfig 中未正确进行多路复用、它们将悬空或配置为 GPIO。 在 example.syscfg 中检查:验证所有 4 条数据线 (D0–D3)、CMD 和 CLK 是否已分配并多路复用至 MMCSD 外设 — 不保留为默认 GPIO。

    3.强制 1 位模式确认

    作为诊断、您可以临时强制驱动程序保持在 1 位模式。 在 SysConfig MMCSD 模块中、查找总线宽度设置并将其强制为 1 位。 如果测试通过、这确认问题是否在 4 位转换(引脚多路复用,硬件或驱动程序)中。

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

    尊敬的 QJ:

    1.我们购买了 LP 和 CC 硬件。 我可以确认 LP 在红色 LaunchPad 和绿色控制卡上的 CC 上运行。 是、CC 和 LP 示例都位于 examples/drivers 文件夹中。

    2.我们已经浏览了两个电路板的引脚多路复用器配置的数据表。我不记得我们注意到数据线的差异,因为它是同一个 CPU 封装。 无论是哪种方式、我们都手动确认 PinMux 值正确。

    3.在 MMCSD_open () 期间,我们手动强制.auBusSpeed = 1(假设这意味着总线宽度)。 驱动程序可以 ID 卡、但 在具有两个不同固件二进制文件的两个电路板上、测试仍然会像以前一样失败。

    谢谢。

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

    尊敬的 Stomp:

    我之前使用 HC1 16GB SD 卡进行了测试、该示例适用于 CC 和 LP。 如果在 cc 卡上运行 cc 示例或在 LP 板上运行 LP 示例、则无需重新配置 pinmux。 所有示例在发布前都经过测试。  

    AM263Px MCU+ SDK:发布说明 11.00.00

    您是否尝试了较低的 MMCSD 时钟频率? 您是否有任何基本 SD 卡(例如 10 类)或 SD 卡随 CC 和 LP 一起提供来试用?

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

    尊敬的 QJ:

    在驱动程序函数 MMCSD_parseCSDSd () 中有一个错误。

    以下是我们为了让 FreeRTOS+FAT 识别分区而必须进行的修复的说明。

    // 2026-03-24: On the AM263PX, the MMCSD controller
    // stores the R2 (136-bit) response with CSD bits already aligned to the correct
    // positions in RSP76/RSP54/RSP32/RSP10. The original TI code shifted all 4 DWORDs
    // left by 8 bits to compensate for CRC stripping, but on the AM263PX this shift
    // is NOT needed and causes all CSD field extractions to read wrong bit positions.
    //
    // Verified empirically: resp[3]=0x400E0032 gives CSD_STRUCTURE=1 (SDHC v2.0),
    // TRAN_SPEED=0x32 (25MHz), WRITE_BL_LEN=9 (512B) -- all correct WITHOUT shift.
    // With shift: CSD_STRUCTURE=0, WRITE_BL_LEN=0, TRAN_SPEED=0x5B -- all wrong.
    //
    // Register mapping (AM263PX, no shift needed):
    //   resp[3] = RSP76 = CSD[127:96]
    //   resp[2] = RSP54 = CSD[95:64]
    //   resp[1] = RSP32 = CSD[63:32]
    //   resp[0] = RSP10 = CSD[31:0]

    在我的最后一条消息中、我怀疑故障发生在切换到 4 位模式期间、这是不正确的。

    谢谢/