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.

[参考译文] CC3220S:具有环形缓冲器的 SPI 从驱动器

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/788077/cc3220s-spi-slave-driver-with-ring-buffer

器件型号:CC3220S

是否有办法配置 SimpleLink TI SPI 驱动器、以便接收路径自动填充环缓冲器、如 UART 环缓冲器驱动器? 我的应用在 SPI 上需要此功能、但 SPI 驱动程序文档中不包含此功能。 也许我有一厢情愿的想法、但我希望这项功能能实现。 请提供建议。

在最坏的情况下,我想我可以将 driverlib 与环形缓冲区实用程序一起使用,以创建我自己的基于中断的 SPI 接收器,在 ISR 中调用 RingBuf_Put ()。 然后,我的应用程序将调用 RingBuf_get()来使用来自环形缓冲区的数据。 让我知道考虑实施这样的方案是否有任何限制。

谢谢   

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

    此功能当前不在 CC3220 SDK 中包含的 SPI 驱动程序中。 它当前的设置方式要求您传入指定的有限缓冲器、该缓冲器将在一个 SPI 传输中直接填充。 无法使其自动分配和使用将用于低级传输的环形缓冲器。

    您可以使用 driverlib 和 RingBuf API 的想法。 但是、使用 RingBuf 可能会导致一些效率损失、尤其是因为您不会利用 DMA。 此外、TI 驱动程序提供的环形缓冲方案似乎针对逐字符数据传输进行了优化。 这可能会导致 ISR 中 CPU 周期的过度使用、具体取决于一次传入的数据量。 因此、您可能受限于最大 SPI 传输速度。

    如果您需要更多有关 SPI 驱动器的说明、或者您对此主题还有其他问题、请告诉我。

    此致、
    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速且乐于助人的回复。 我将尝试此方法、并将测试 CPU 负载与可实现的 SPI 时钟频率之间的关系。