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.

[参考译文] CCS/CC3220MOD:CC3220MOD SPI 接口

Guru**** 2554280 points
Other Parts Discussed in Thread: CC3220SF, CC3220MOD

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/798436/ccs-cc3220mod-cc3220mod-spi-interface

器件型号:CC3220MOD
主题中讨论的其他器件:CC3220SF

工具/软件:Code Composer Studio

我有以下代码可从具有 SPI 从器件的传感器读取到 CC3220MOD (SPI 主器件) 

uint8_t spi_read_8bits (spi_handle SPI、uint8_t StartAddress、uint8_t * RxBuffer、uint8_t NREGS){

SPI_Transaction spiTransaction;
uint8_t TxBuffer[32];

布尔 转让;

TxBuffer[0]=(StartAddress + 0x80);
TxBuffer[1]= 0x00;

spiTransaction.count = NREGs+1;
spiTransaction.txBuf =(void *) TxBuffer;
spiTransaction.rxBuf =(void *) RxBuffer;
transferOK = SPI_transfer (SPI、&spiTransaction);

退货(转让? 0:1);
} 

我还在使用逻辑分析仪监听 SPI 端口。 它表明 MOSI、MISO、SCLK、SPI_CS 信号正常、并且符合传感器的规格。

但 RxBuffer 不包含我在逻辑分析仪中看到的相同数据。 我已经尝试了 SPI 主器件的多种配置、但没有成功。

我正在使用的 SPI 的配置是

{
baseAddr = GSPI_base、
.intNum = INT_GSPI、
.intPriority =(~0)、
spiPRCM = PRCM_GSPI、
.csControl = SPI_SW_CTRL_CS、
csPolarity = SPI_CS_ACTIVELOW、
.pinMode = SPI_4PIN_MODE、
.TurboMode = SPI_Turbo_OFF、
scratchBufPtr =&spiCC3220SDMAscratchBuf[CC3220SF_STARPORTS_SPI1]、
defaultTxBufValue = 0、
.rxChannelIndex = UDMA_CH6_GSPI_RX、
txChannelIndex = UDMA_CH7_GSPI_TX、
.minDmaTransferSize = 10、
.mosipin = SPICC32XXDMA_PIN_07_MOSI、
MISO 引脚= SPICC32XXDMA_PIN_06_MISO、
clkPin = SPICC32XXDMA_PIN_05_CLK、
.csPin = SPICC32XXDMA_PIN_08_CS
} 

提前感谢

Andoni

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

    配置看起来与 Resource Explorer 中的 SPI 主器件示例非常相似。

    baseAddr = GSPI_base、
    .intNum = INT_GSPI、
    .intPriority =(~0)、
    spiPRCM = PRCM_GSPI、
    .csControl = SPI_HW_CTRL_CS、
    csPolarity = SPI_CS_ACTIVELOW、
    .pinMode = SPI_4PIN_MODE、
    .TurboMode = SPI_Turbo_OFF、
    scratchBufPtr =&spiCC3220SDMAscratchBuf[CC3220SF_LAUNCHXL_SPI1]、
    defaultTxBufValue = 0、
    .rxChannelIndex = UDMA_CH6_GSPI_RX、
    txChannelIndex = UDMA_CH7_GSPI_TX、
    .minDmaTransferSize = 10、
    .mosipin = SPICC32XXDMA_PIN_07_MOSI、
    MISO 引脚= SPICC32XXDMA_PIN_06_MISO、
    clkPin = SPICC32XXDMA_PIN_05_CLK、
    csPin = SPICC32XXDMA_PIN_08_CS 

    CC3220SF_STARPORTS_SPI1是否定义正确?  您是否看到了该示例的相同问题?

    此致、

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、正确。 我对原始代码进行了一些修改、SPI 接口在逻辑分析仪中看起来很好。
    唯一的问题是由于某种原因 MISO 信号未存储在 Rx 缓冲器中。
    我将为该示例提供一个 GO。

    此致

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

    找到问题。 这是 CC3220MOD 的硬件问题(MISO 引脚有故障)、我已经尝试过新的 Lauchpad、它工作正常。

    为了进行测试、我将 MISO 和 MOSI 连接在一起以测试 SPI 驱动器。

    此致

    Andoni

    [引用 user="Andoni Irizar"]是的、正确。 我对原始代码进行了一些修改、SPI 接口在逻辑分析仪中看起来很好。
    唯一的问题是由于某种原因 MISO 信号未存储在 Rx 缓冲器中。
    我将为该示例提供一个 GO。

    此致

    Andoni

    [/报价]