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.

[参考译文] CC3220SF:作为 SPI 从器件、可接收多少字节的数据?

Guru**** 2536790 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1122670/cc3220sf-how-many-bytes-of-data-can-be-received-as-a-spi-slave

器件型号:CC3220SF

大家好、

以下是客户提出的问题、可能需要您的帮助:

https://dev.ti.com/tirex/content/simplelink_cc32xx_sdk_6_10_00_05/docs/drivers/doxygen/html/_s_p_i_c_c32_x_x_d_m_a_8h.html

关于上述文档中的示例、客户有以下2个问题:

1) 1) 该程序实际希望传输多少字节的数据、2000字节或?

2) 3 txBuff 和2 rxBuff 之间的关系是什么? TxBuff1\2\3每个点指向一个单独的内存?
或者 txBuff1/txbuff2既是 存储器段的开头,又是 txbuff3是存储器段的中间?

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

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

    Howdy Cherry、

    我将回答此代码中的以下问题。 只是为了确保它们位于同一页上。

    // SPI already opened in callback mode
    SPI_Transaction t0, t1, t2;
    t0.txBuf = txBuff0;
    t0.rxBuf = rxBuff0;
    t0.count = 2000;
    t1.txBuf = txBuff1;
    t1.rxBuf = rxBuff1;
    t1.count = 1000;
    t2.txBuf = txBuff2;
    t2.rxBuf = NULL;
    t2.count = 1000;
    bool transferOk = false;
    if (SPI_transfer(spiHandle, &t0)) {
        if (SPI_transfer(spiHandle, &t1)) {
                transferOk = SPI_transfer(spiHandle, &t2);
            }
        }
    }

    在此代码中、创建结构 SPI_Transactions 的3个实例 t0、t1和 t2。 每个结构具有以下变量。 链接

    size_t 	count
     
    void * 	txBuf
     
    void * 	rxBuf
     
    void * 	arg
     
    SPI_Status 	status
     
    void * 	nextPtr

    1) t0.count 设置为2000。 这意味着在传输2000帧之前、SPI_Transfer (spiHandle、&t0)不会返回1或完成。 传输的字节数最终取决于缓冲器的帧大小、即8位、16位或32位。  

    2.)txBuff1、2、3都是各自 在内存中的独立缓冲区、已分配给每个 TX.buff 变量。

    我希望这对您有所帮助、

    Rogelio

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

    您好、 Rogelio、

    感谢您的支持。

    [引用 userid="496057" URL"~/support/wireless-connectivity/wi-fi-group/wi-fi-fi-fi-forume/1122670/cc3220sf-how -byte-of-data-byte-cand-ce-by-by-by-by-by-by-by-by-by-by-by-by-by-wi-spi-slave"]1) 此程序实际上希望传输多少字节数据或引用2000字节数据[或引用2000字节?]

    例如、SPI 帧大小设置为 8位、即 1个字节。 那么、该程序会发送多少个字节或帧?  

    此外、SPI_Transactions 的第一个实例 t0的计数值设置为2000、已超过1024字节。 它是否仍能正常工作?  

    谢谢、此致、

    樱桃

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

    您好、Cherry、

    是的、由于 DMA 在乒乓模式下工作、它仍然可以工作。

    [~ userid="496057" url="/support/wireless-connectivity/wi-fi-group/wi-fi-fi-fi-forume/1122670/cc3220sf-how -byte-of-data-by-by-by-by-by-by-by-by-by-by-by-by-by-by-by-by-by-by-by-wi-spi-slave/4178896#4178896"]、例如、将 SPI 帧大小设置为 8 字节1、1个字节。 那么、该程序会发送多少个字节或帧?  [/报价]

    以队列的方式处理4000字节。 第一个2000年将来自 SPI 事务 T0、来自 T1的1000、来自 T2的另一个1000。

    此致、

    Rogelio