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.

[参考译文] CC3235MODASF:CC3235MODASF SPI 驱动器通信大小

Guru**** 2468610 points
Other Parts Discussed in Thread: CC3235MODASF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1519362/cc3235modasf-cc3235modasf-spi-driver-communication-size

器件型号:CC3235MODASF

工具/软件:

您好、专家、

我对与 CC3235MODASF WiFi 模块的 SPI 通信有疑问。

我正在使用 TI-Drivers SPI 驱动程序 API 执行 SPI 通信。

CC3235 充当从站并从主站接收数据。

我遇到了无法根据通信数据大小正确执行 SPI 通信的问题。

据我检查、在通信大小不超过 1024 的情况下、它可以正常工作、但当以超过 1024 的大小进行通信时、不调用回调函数。

将 SPI 驱动程序 API 与 CC3235MODASF 一起使用时、通信大小是否有任何限制?

下面是验证码的一部分。

   spi_init ();

   SPI_Params_init (&spiParams);
   spiParams.frameFormat        = SPI_POL1_PHA1;
   spiParams.mode               = SPI_peripheral;
   spiParams.transferCallbackFxn = transferCompleteFxn;
   spiParams.transferMode       = SPI_MODE_callback;
   spiParams.bitrate            = 20000000;   //20M
   外设 Spi                = SPI_open (CONFIG_SPI_peripheral、&spiParams);
   
   TRANSITION.count = SPI_MSG_LENGTH;   //低于 1025 OK、高于 1025 NG
   Transaction.txBuf =(void *) 外设 TxBuffer;
   Transaction.rxBuf =(void *) peripheralRxBuffer;
   
   Bool transferOK;
   transferOK = SPI_transfe (peripheralSpi、&transfertion);
   If (TransferOK)
   {
       /*等待传输完成*/
       SEM_WAIT (&E);
   }

此致
Egawa

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

    Egawa、

    超过 1024 的转输应起作用。

    DMA 通道限制为 1024 个字节、但驱动程序的开发方式是以块形式发送 dat a。

    请检查逻辑布线、并参阅。 提供 一定的灵活性。

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

    尊敬的 AB:

    感谢您的答复。

    要检查器件的数据输出、
    我测量了使用示波器进行 SPI 通信的波形。

    从我检查的波形可以看出、主器件似乎输出了 2048 个字节的数据、
    但未调用回调函数。

    之后,我注意到你在答复中提到的 1024 字节的限制,
    并且在 SPI 通信中每 1024 个字节增加了大约 50usec 的等待时间、
    开始调用回调函数。

    如果可能、我想避免增加等待、
    但这是否是一个必要的过程?

    我附上了示波器波形的图像以供参考。
    信号为 1:MOSI、2:CLK、3:MISO、4:Cs。

    Egawa

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

    不需要等待。

    您在哪里实施了这种等待/睡眠?

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

    尊敬的 AB:

    感谢您的答复。

    每 1024 个字节的等待时间在 SPI 主器件程序中实现。
    增加了一个过程、在发送 1024 字节的 SPI 通信后使用计时器等待固定的时长。

    在我的测试环境中、当 2048 字节的 SPI 通信无需等待时、
    从器件 (CC3235) 准备的数据不会从 MISO 输出、
    而且、无法从 MOSI 获取数据时、会有一段较短的时间。

    我附上了在上述通信中测得的波形的图像、大约为 1024 个字节。
    信号为 1:MOSI、2:CLK、3:MISO、4:Cs。

    总体波形


    波形放大


    Egawa