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.

[参考译文] TMS570LS3137:使用 SPI 操作 HDK 开发板上的 micro SD

Guru**** 2555630 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1252569/tms570ls3137-use-spi-to-operate-the-micro-sd-on-the-hdk-development-board

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

大家好、

客户尝试使用 TMS570LS3137HDK 开发板使用 microSD 卡测试 SPI 通信、但无法初始化 SD 卡。 已尝试更换32g 和16G SD 卡、但仍然找不到代码示例。 接收到的数据始终为0xFF。  

发送 CMD0后不会接收到 R1信号、这是第一次尝试连接 SD 卡:

int main(void)
{
/* USER CODE BEGIN (3) */
    gioInit();
    sciInit();
    spiInit();

    spiDAT1_t spiDat1;
    spiDat1.CS_HOLD = FALSE;
    spiDat1.WDEL = TRUE;
    spiDat1.DFSEL = SPI_FMT_0;
    spiDat1.CSNR = SPI_PIN_CS0;

    // 发送80个信号
    for (int i = 0; i < 80; i++) {
        spiTransmitData(spiREG2, &spiDat1, 1, 0xFF);
    }

    uint16_t tData[6] = {0x40, 0x00, 0x00, 0x00, 0x00, 0x95};
    uint16_t rData[1] = {0};

    uint32 tRes = spiTransmitAndReceiveData(spiREG2, &spiDat1, 6, tData, NULL);

    while (1) {
        uint32 rRes = spiTransmitAndReceiveData(spiREG2, &spiDat1, 1, NULL, rData);
        if (rData[0] == 0x01) {
            while (1) {
                printf("ok");
            }
        }
    }
/* USER CODE END */

    return 0;
}

下一篇:

您能帮助检查这个问题吗? 谢谢。

此致、

切里

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

    您好、Cherry:

    您能否请客户验证以下主题中附加的 SD 卡示例、并让客户进行必要的修改:

    (+) TMS570LS3137:我找不到对应 MCU 的 SD 卡库。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    如果在参考这些示例后仍无法解决问题、我将尝试在最后调试该问题。

    --

    谢谢。此致、
    Jagadish。

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

     Jagadish、您好!

    感谢您的支持。

    客户下载了该示例、该示例使用 Mibspi。 客户使用带 SPI2的 TMS570ls3137hdk 开发板。 按照此例程初始化 micro SD 卡、但失败了。

    它们还使用闪存 Ultra 16\32\256g 进行了测试、并且无法成功返回 cmd0命令。  他们 还尝试使用 Lenovo 的32g 卡,该卡可以执行 cmd0和 cmd8,但在执行 acmd41时,cmd55从未返回值<=1。  

    谢谢。此致、

    切里

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

    您好、Cherry:

    我很抱歉回复太晚了。

    按照此例程初始化 micro SD 卡,但失败。

    失败意味着它在哪个例程中发生了失败或他遇到了什么类型的错误?

    您能请他分享屏幕截图以便清晰理解吗?

    --

    谢谢。此致、
    Jagdish。