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:DMA 是否在网络和外部外设 SPI 之间共享?

Guru**** 2482105 points
Other Parts Discussed in Thread: CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1320646/cc3220sf-is-dma-shared-between-network-and-external-peripheral-spi

器件型号:CC3220SF

我使用 CC3220SF 与另一个 MCU C2000进行传感器和其他数据的通信。 另外、我同时使用网络功能、其中 CC3220SF 处于 AP 模式、数据共享协议为 HTTP。  与 MCU 进行 SPI 通信 C2000具有大量的传感器数据、并在 cc3220SF 上使用 DMA。 我看到网络线程也使用 DMA 功能。 在 同时处理外设 SPI 和 HTTP 数据 GET 请求时、我遇到了 HTTP GET 请求被拒绝的问题。  然后 我必须在网络数据发送和 SPI 数据发送之间实现互斥量、开始正常工作。 那么、您能否帮助说明、如果 DMA 在这两个应用程序之间共享、以及如何解决问题?  

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

    您好!

    我会在星期日研究它。

    Br、

    什洛米  

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

    您好!

    uDMA 实际上是在许多客户端上使用的主 DMA。 其中两个客户端是用于在本例中与 C2000进行通信的 GSPI、以及用于在 NWP 和 CM4 (内部)之间进行通信的 HSPI。 DMA 还可供其他看不到的客户端使用、如硬件加速器、存储器事务处理、记录器引脚等。

    基本上、uDMA 根据优先级在所有客户端之间进行仲裁、因此不会对开发人员产生任何影响。

    在您的示例中、可以很好地查看 HTTP GET 请求到底发生了什么故障。 您是否有提取 NWP 日志的方法? 您使用的是主机上运行的内部 HTTP 服务器还是外部服务器?

    无论如何、如果添加互斥量可以解决您的问题、它可以用作缓解措施。

    此致、

    什洛米

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

    尊敬的 Shlomi:

    感谢您的意见。

    我有一个应用、在该应用中、CC3220SF GSPI 应持续与 C2000的 SPI 进行通信。 假设 SPI 为500ksps,在每20ms 的时间段内,数据需要传输6ms。 因此、这意味着 DMA 应在 CC3220SF 中分配给 GSPI 6ms 以接收数据。 但是,如果我收到 HTTP GET 请求向 HTTP 客户端发送相同数据,则会在中间(其中 CC3220SF 具有 HTTP 服务器(我不知道外部服务器和内部服务器的差异)。 我创建了一个类似于可移植示例的 HTTP 服务器。} 那么如何同步 HTTP GET 请求 UDMA 访问和 GSPI UDMA 访问? 或者、我不必担心它? 分配不同的优先级会对我有所帮助吗? 如果需要、您能帮我举个例子吗? 此外、如果 GSPI 与一些外部 SPI 进行通信并且在 CC3220SF 上启用了 HTTP 服务器、那我们将不胜感激。  

    我不提取 NWP 日志。 你是否建议这样做?  

    谢谢你。

    此致、

    库尔迪普

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

    您好!

    您能解释一下费率吗? 您说"500kspi ,每20ms 的时间段,数据需要传输6ms。" 您的案例中的样片是什么? 它是否会在6ms 时间内传输?

    如果您使用的是 http 服务器可移植示例、则使用的是外部 Web 服务器而不是内部 Web 服务器。

    没有将这两者结合的示例、如前所述、DMA 应该会自动执行该操作、但我首先需要了解您尝试发送到 C2000的数据量、因为这可能是瓶颈。

    您可以在 NWP 用户指南第20章 https://www.ti.com/lit/ug/swru455m/swru455m.pdf?ts = 1707091350367中找到有关记录器的信息

    此致、

    什洛米

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

    尊敬的 Shlomi:

    感谢您的意见。

    是的、每20ms 从 C2000到 cc3220sf 传输的数据为824字节(6592位)或(412 16位数据)、在1Mbps 下需要6.592ms。  

    另外, 您能帮助我了解如何识别内部和外部 Web 服务器吗?

    谢谢你。

    此致、

    库尔迪普

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

    好的、因此吞吐量不是很高。 我预计不会有问题。 为什么要将 SPI 时钟设置为1MHz 的最小值? 如果您将其设置得更高、则使用 DMA 移动数据所需的时间会减少。

    对于内部服务器与外部服务器、对于内部服务器、使用专用 API 来获取和发送 HTTP 数据(并设置服务器)。 您可以在代码中查找与 NetApp 相关的 API,如 sl_NetAppSend()和 sl_NetAppRecv ()。 如需了解详情、请参阅 NWP 用户指南中的 HTTP 服务器段落。

    此致、

    什洛米

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

    尊敬的 Shlomi:

    我将其保持在 C2000的 SPI 基础上。 我将检查是否可以在那里增加该值、并在这里相应地进行修改。

    正如我检查过的,我的代码  仅根据 dev.ti.com/.../node 使用 sl_NetAppSend()和 sl_NetAppRecv ()。 尽管如此、它是否仍在使用外部服务器?

    谢谢你。

    此致、

    库尔迪普

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

    您好!

    好的、请检查。

    如果它使用这些 API、则表示您正在使用内部 Web 服务器。 可以使用外部服务器,除非有用于实现该服务器的专用代码。

    此致、

    什洛米

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

    尊敬的 Shlomi:

    我能够将 SPI 时钟增加到10MHz。 SPI 和网络应用都可以正常运行、在本例中、互斥有助于我。

    感谢你的帮助。

    此致、

    库尔迪普

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

    当然、感谢您的更新。