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-CC1310:CC13-90 SDSPI 问题

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1418547/launchxl-cc1310-cc13-90-sdspi-issue

器件型号:LAUNCHXL-CC1310
Thread 中讨论的其他器件:CC1310

工具与软件:

我刚有一个简单的 SPI SD 读卡器 、要在项目中添加一些存储器、但无法运行 sdraw.c 示例脚本。 它可以读取扇区数(尽管报告的大小比磁盘的实际大小小得多)并成功写入卡、但无法读回结果(获得非常通用的-1错误代码)。试图单步调试器找到 SDSPI.c 代码此部分中出现的错误:

    if (rxBuf[0] != START_BLOCK_TOKEN) {
        /* Return error if valid data token was not received */
        return (false);
    }


    /* Receive the data block into buffer */
    status = spiTransfer(handle, buf, NULL, count)
    if (status != SD_STATUS_SUCCESS) {
        return (false);
    }

    status = spiTransfer(handle, &rxBuf, &txBuf, 2)
    /* Read the 16 bit CRC, but discard it */
    if (status != SD_STATUS_SUCCESS) {
        return (false);
    

我仔细检查了布线是否正确、并完成了以下操作:

- VCC 为3.3V

- GND 已连接

- CS 在 DIO11中

- MOSI 在 DIO9中

- MISO 位于 DIO8

- SCLK 位于 DIO10中

这是我的 board.h

#define Board_SD0               CC1310_LAUNCHXL_SDSPI0

#define Board_SPI0              CC1310_LAUNCHXL_SPI0
#define Board_SPI1              CC1310_LAUNCHXL_SPI1
#define Board_SPI_FLASH_CS      CC1310_LAUNCHXL_SPI_FLASH_CS
#define Board_FLASH_CS_ON       0
#define Board_FLASH_CS_OFF      1

#define Board_SPI_MASTER        CC1310_LAUNCHXL_SPI0
#define Board_SPI_SLAVE         CC1310_LAUNCHXL_SPI0
#define Board_SPI_MASTER_READY  CC1310_LAUNCHXL_SPI_MASTER_READY
#define Board_SPI_SLAVE_READY   CC1310_LAUNCHXL_SPI_SLAVE_READY

#define Board_UART0             CC1310_LAUNCHXL_UART0

#define Board_WATCHDOG0         CC1310_LAUNCHXL_WATCHDOG0

CC1310_LAUNCHXL.h 文件

/* SPI */
#define CC1310_LAUNCHXL_SPI_FLASH_CS          IOID_20
#define CC1310_LAUNCHXL_FLASH_CS_ON           0
#define CC1310_LAUNCHXL_FLASH_CS_OFF          1

/* SPI Board */
#define CC1310_LAUNCHXL_SPI0_MISO             IOID_8          /* RF1.20 */
#define CC1310_LAUNCHXL_SPI0_MOSI             IOID_9          /* RF1.18 */
#define CC1310_LAUNCHXL_SPI0_CLK              IOID_10         /* RF1.16 */
#define CC1310_LAUNCHXL_SPI0_CSN              IOID_11
#define CC1310_LAUNCHXL_SPI1_MISO             PIN_UNASSIGNED
#define CC1310_LAUNCHXL_SPI1_MOSI             PIN_UNASSIGNED
#define CC1310_LAUNCHXL_SPI1_CLK              PIN_UNASSIGNED
#define CC1310_LAUNCHXL_SPI1_CSN              PIN_UNASSIGNED

事实上,它是从卡上的早期脚本中正确读取数据,使我认为它不能是一个接线问题,同样的功能,后来失败在脚本的早期成功。 我只是有点迷失了下一步该做什么。 有人能告诉我吗? 对于此 SDSPI 库、所有 SD 卡是否都是相同的? 我应该以某种方式设置它的格式吗? 已使用非通用 SD 读卡器? 只是在这件事上有点迷失。

提前感谢  

James

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

    即使您说在读取扇区数时能够与 SD 卡通信、您也会说您读取的值是错误的。

    我想、您应该联系 SD 卡制造商、在读取扇区大小时展示您的 SPI 通信的 SPI 图、并且他们可以通信是否针对您正在使用的 SD 卡正确完成了任何操作。

    Siri

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

    嘿,谢谢你的答复,事实证明,这个问题似乎与我使用 SDXC 卡的事实有关。 有关该接口的某些内容在某种程度上是不同的、我对它没有正确的理解。 我把卡换成了 SDHC 卡,它已经工作了。 我只是不想花一整周的时间写一个新的 SD 卡驱动程序。 感谢您的帮助