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.

[参考译文] LAUNCHXL-CC2650:SDSPI 驱动程序- FAT FS - SD 卡- SSI/SPI

Guru**** 2563960 points
Other Parts Discussed in Thread: CC2640R2F, LAUNCHXL-CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/587387/launchxl-cc2650-sdspi-driver---fat-fs---sd-card---ssi-spi

器件型号:LAUNCHXL-CC2650
主题中讨论的其他器件:CC2640R2F

您好!

为了在 Lanchxl-CC2650上使用 FAT FS 接口构建 SD 卡、我尝试了解一些事项。 我需要任何专业人士的建议、尤其是在 SDSPI 驱动程序和至少在 SSI 库中。

我使用了传输事务来对 SD 卡特定地址上的原始数据进行 SPI 写/读操作。

现在我想使用 SDSPI 驱动程序、比如 SDSPIMSP432.c 和 SDSPITiva.c 的示例

我学习 了 TI 的以下指南[ http://www.ti.com/lit/ug/spruhd4m/spruhd4m.pdf ]:

-SDSPI 驱动程序:第71页。 除了关于这一行的第5.10.1段的声明外,我做了所有的事情---- var FatFs = xdc.useModule('ti.mw.fatfs.FatFS');,因为我不知道我应该在哪里添加这一行。 哪个是配置.cfg 文件、在哪个路径中?

我还研究了上述同一文件的第7章。

我的代码已准备就绪、其语法正确。 我已经创建了 SDSPI 对象、根据我当前对此主题的了解、一切似乎都是合乎逻辑的。 但是、我面临 SPI 的一个非常重要的问题、它没有响应!!! 为了更加精确、时钟没有任何信号。

SSI/SPI 的定义:

- CPOL=CPHA = 0

- SSI0_BASE

- SSI_FRF_MOTO_MODE_0

- SSI_MODE_MASTER

-SPI 比特率-->我尝试1MHz 到4MHz

- SD 卡速率--> 400kHz

奇怪的是、相同的编程线路有时随机提供一些信号、而大多数情况下 SPI 信号是死的。

成功实现 SD FAT FS 接口的人或者德州仪器团队 SDSPI 驱动程序专家能否为我提供任何帮助、让我向前迈进一步?


 


 

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

    您好!

    正如 Christin 在 这篇文章中评论的那样、TI 不为 CC26xx 器件提供 SDSPI 驱动程序支持。 我建议研究 TI-RTOS 中 CC26xx 的 SPI 驱动程序源代码以及 CC26xx TRM 中相应的 SPI 外设定义。 这将使您充分了解如何修改 SDSPI 驱动程序。

    祝你一切顺利  

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

    您好、JXS、

    非常感谢您的消息。SPI 驱动程序使用"传输事务"和"传输回调"功能、而 SDSPI 驱动程序不使用它们。

    提供我必须看到的具体链接。
    -您说 CC26XX TRM 是什么意思?

    -您知道如何定义 SDSPI 驱动器的时钟信号吗? 我应该使用哪个函数?

    请尽快告诉我。

    谢谢、

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

    CC26xx TRM (技术参考手册)文档 ID SWCU117的同步串行接口部分(通道20)介绍了 SPI 硬件编程模型。 您可以在 TI BLE Wiki 或任何 CC26xx 产品页面上找到链接、例如 CC2640R2F。

    我对 SDSPI 驱动程序不了解详情、因此我建议研究现有驱动程序和 TRM 以获得进一步的见解。 您将需要拥有对驱动程序的任何更改以用于您的实现。

    祝你一切顺利

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

    非常感谢您的提示信息。

    但该文件是 :www.ti.com/.../spruhd4m.pdf
    可从德州仪器(TI)获取。 TI 都不知道该文件、尤其是我在第一篇帖子中提到的第71页和第103页?

    是否有人知道该文件和 FAT FS 的此驱动程序?

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

    关于 SPRUHDM (TI-RTOS v2.20用户指南)、请参阅第43页、了解用于 TivaC 器件(5.2.5)和 CC26xx (5.2.6)的 TI-RTOS 驱动程序实施。 请注意、SDSPI 驱动程序仅支持 TivaC 器件。

    我希望这种解释足以让您推进您的项目。

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

    感谢您的消息和时间。
    我找到了本指南 :www.ti.com/.../spruhu7d.pdf 、它没有第43页和第5章。 请向我发送您建议的指南链接。

    用于 TivaC 的 SDSPI-SD 卡 FAT FS 接口由 TI 实现、对我帮助很大、但我无法理解如何将 TivaC 的某些命令替换为与 CC2650-Lanchxl 对应的命令。

    针对 CC26XX 的 blestack 3.0也提供 SDSPI 驱动程序,因此也支持 CC26XX 器件。 对吧?

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

    器件型号:LAUNCHXL-CC2650

    工具/软件:TI-RTOS

    您好!

    我已经尝试使用 CC2650 和 Code Composer Studio 为 SD 卡构建 FAT FS。 我构建了 SDSPICC26XX 驱动程序、它是 SDSPI 驱动程序和 SD FATFS 之间的"桥梁"。
    我的 SPI 没有响应、并且没有打开任何文件。 请给我任何建议。

    -我最终应该使用 SDSPI 还是 SPI 驱动程序?

    我在这篇文章中看到[ https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/462738/2159374#2159374

    SDSPI_Handle sdspiHandle;
    SDSPI_Params sdspiParams;
    FRESULT fr;
    SDSPI_Params_init (sdspiParams);
    // SDSPI_init ();
    sdspiHandle = SDSPI_OPEN (Board_SDSPI0、DRIVE_NUM、NULL);
    if (sdspiHandle == NULL){
    PUT ("打开 SDSPI\n"\n 时出错);
    }
    fr = f_mkdir ("testdir");
    if (fr = FR_OK){
    PUT ("目录已创建\n");
    }
    FR = f_open (&src、"testdir/file.csv"、fa_create_always|fa_write);
    if (fr = FR_OK){
    放置("文件已创建\n");
    }
    
    f_close (&src);
    SDSPI_Close (sdspiHandle); 

    如果我不注释我的 SDSPI_init(),程序将会在那里执行。

    如果我对 SDSPI_init()进行注释,我得到的消息是“Error opening SDSPI”,这意味着 sdspiHandle 等效于 NULL。

    是否有人了解我的计划为什么会出现这种行为?

    SDSPI_Handle sdspiHandle;
           SDSPI_Params sdspiParams;
           FRESULT fr;

           SDSPI_Params_init (sdspiParams);

           PUT ("SDSPI init");
        //  SDSPI_init ();
           PUT ("EXIT SDSPI init");
           sdspiHandle = SDSPI_OPEN (Board_SDSPI0、DRIVE_NUM、NULL);

           if (sdspiHandle == NULL){
                  PUs ("打开 SDSPI\n"\n 时出错);
              }
           fr = f_mkdir ("testdir");
           if (fr = FR_OK){
               PUT ("目录已创建\n");
           }
           FR = f_open (&src、"testdir/file.csv"、fa_create_always|fa_write);             //测试的函数
           if (fr = FR_OK){
             PUT ("文件已创建\n");
           }