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.

[参考译文] CC3220:CC3220作为 CC1310的 SPI 从器件运行

Guru**** 2539770 points
Other Parts Discussed in Thread: CC3220SF, CC1310

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/650143/cc3220-cc3220-running-as-spi-slave-to-cc1310

器件型号:CC3220

大家好、

我的客户有以下问题:

我们目前在将 cc3220作为 SPI 从器件运行以及 SimpleLink 驱动程序的功能方面遇到困难。 我们将一个 cc3220SF Launchpad 连接到通过 SPI 进行通信的 cc1310 Launchpad。 通信部分按预期工作。

 

简单的问题是、在使用 simplelink 驱动程序时、cc3220是否可以用作 SPI 从站?

 

cc3220项目基于 FreeRTOS 并使用 SDK 1.5 (由于 DMA 问题、我们已从1.4复制 SPIDMA 驱动程序)。 一般布局如下:

 

以优先级9运行的 Simplelink 驱动程序任务(sl_Task)

以优先级8运行的主任务

以优先级4运行的 SPI 从器件任务

其他:

FreeRTOS 定时器任务优先级5 (无定时器处于活动状态)

空闲任务。

 

在电路板初始化函数(SPI_init、GPIO_init)之后、按照上述顺序启动任务。 板载启动时、作为 SPI 主器件的1310通过 SPI 向3220发送同步命令。 这按预期工作。 然后、SPI 从任务调用 SPI_TRANSFIT 来等待未来的传输。  

 

"主任务"的目的是定期运行、连接到 Wifi (通常在不同的模式下)并发送 HTTP 请求。 运行时、它会调用 sl_Start (如果更改模式、则调用 sl_Stop)。 这个 sl_Start 是我们遇到问题的地方。 它始终返回(-2004)  sl_bad_interface。 禁用 SPI 从器件任务后、sl_Start 会正常工作。  

 

SPI 从任务将 SPI 配置为传输模式= SPI_MODE_BLOCKING。 对此进行实验时、 SPI_MODE_CALLBACK 模式允许 sl_Start 命令成功、但 SPI 通信停止正常运行。 SPI 回调通过 SPI_TRANSFERS_Completed 进行调用、但两侧的缓冲区都为空。 回调模式还会引入随机问题、在 任务初始化期间、器件最终会在 dmaErrorFxn 中挂起。 如上所述、使用了1.4版的 SPIDMA 驱动程序、我们的 SPI 数据包为64字节、应低于 DMA 阈值100。

 

我们的其他问题是:

  

是否需要在处理 SPI TX/Rx 缓冲器的任务堆栈外部或内部构建 SPI TX/Rx 缓冲器? 在 SPI_MODE_CALLACK 模式下、我们的模式是使用回调中的 TaskNotify、并让 SPI 从任务循环处理数据包。

 

是否需要对齐 SPI TX/Rx 缓冲器?

 

simplelink.a 的来源是否可用?

 

是否可以重新编译或自定义 simplelink.a 以排除某些功能、例如 smartconfig、HTTP 服务器、配置 Web 界面?

 

谢谢、

Brian

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

    SPI 从器件应与网络处理器并行工作。 确保2个配置(NWP SPI 和外部从器件 SPI)不重叠。

    如果构造任务未退出(即、如果缓冲区仍然有效、则在完成处理发生时)-则可以在任务上下文中分配它们。

    缓冲器应与4B 对齐。

    Simplelink 源代码在 SDK 中提供(source/ti/。

    它可以重新编译、但通常不用于排除功能(启用该功能的驱动程序代码非常小-仅为网络处理器生成消息)。 请勿更改驱动程序中的任何内容、因为这会使支持该驱动程序变得非常困难。 可选的所有内容都将组织到库(OTA、MQTT 等)中、您可以根据需要添加这些库。

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

    > SPI 从器件应与网络处理器并行工作。

    通过在'freertos_builds_CC3220SF_LAUNCHXL_release_ccs'属性中选择产品、从1.5 SDK 切换到1.4 SDK、代码正常工作。 对于1.5 SDK、当 GSPI (CC3220SF_LAUNCHXL_SPI1)处于从模式时、在调用 SPI_transfer 后 sl_Start 永远不会成功。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是 SDK 1.50中的一个已知问题。
    它将在即将推出的(1.60) SDK 中修复。

    BR、
    Kobi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅为了澄清一下、受控模式下的 cc3220在1.40或1.50时不起作用?