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.

[参考译文] LAUNCCHCC3220MODASF:SPI NWP 同步

Guru**** 2589280 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1072670/launchcc3220modasf-spi-nwp-synchronization

部件号:LAUNCCHCC3220MODASF
“线程:测试”中讨论的其它部件

大家好,

我使用 CCS11和 SDK 5.30。

我在主模式下使用 SPI 总线连接到外部 SPI 闪存时遇到问题。
闪存使用文件系统。

我的测试程序会在闪存上产生高数据速率。 测试例程使用 TI SDK 函数 SPI_TRANSFER 发送和接收数据。
测试执行大约 5000次旋转,可实现1000个文件系统写入,无任何问题。

但是;)
如果我在文件系统写入闪存的“同一”时间启动多个单次网络扫描,则使用功能 SL_WlanGetNetworkList,测试将在5之后停止... 10个环路。

我在 SPI_TRANSFER 函数调用周围插入了 GPIO 清除/设置函数
如果没有网络扫描功能,我会在整个测试过程中看到 GPIO 切换。

如果我启动了附加网络扫描并且测试程序在一段时间后停止,我检查了 SPI_TRANSFER 被调用,但从未返回。

我知道 NWP 和模块内部 SPI-Flash 也使用 SPI。

从我的角度来看,这看起来像是 NWP 传输和模块外部 SPI 传输之间的同步问题。
至少如果只有一个硬件控制器。

因为使用了文件系统,所以可以“轮询”SPI 闪存状态几毫秒。 这也许是造成这种情况的原因?

三个组件的 SPI 传输是否由一个 SPI 硬件控制器控制?
我使用了基于 SPI 主 SDK 示例的 SPI 初始化,并始终使用 SPI 句柄 GET by SPI_OPEN

SPI_TRANSFER 的冻结呼叫可能是什么原因?

非常感谢,祝您一切顺利,
罗马

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

    你好,Roman,

    很难说出您的案例发生了什么。 请等待其他人的建议。 但我想说 CC3220有三个独立的 SPI 外围设备(用户 SPI,NWP SPI,sFlash SPI)。

    #define SSPI_BASE               0x44020000
    #define GSPI_BASE               0x44021000
    #define LSPI_BASE               0x44022000 

    1月

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

    你好,Jan,

    非常感谢您提供的信息。

    我的 SPI 端口配置如下:阻塞模式,20MBit (也可与其他波特率一起检查),DMA 限制64字节,DMA 和 IRQ 的标准优先级。

    我发现系统的 SPI_TRANSFER 函数仅在传输大小高于 DMA 限制(DMA 传输模式)时才会冻结。 我认为,等待 DMA 结束的已用定时信号从不被触发,并且永远等待(超时值0xFFFFFFF)。

    该功能在冻结前成功运行数百次。 每次启动测试程序时,成功呼叫的数量都不同。
    读写传输中出现问题。

    我目前没有更详细地检查问题,因为我有一个需要测试的解决方案。

    我会稍后再回来。

    此致,
    罗马

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

    你好,Roman,

    如果有机会,请尝试不阻止回电。