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.

[参考译文] CC3120MOD:使用 sl_close ()停止连续 TX

Guru**** 664280 points
Other Parts Discussed in Thread: CC3120MOD, CC3120, CC3135, CC31XXEMUBOOST, CC1352R
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1008217/cc3120mod-stopping-continuous-tx-with-sl_close

器件型号:CC3120MOD
主题中讨论的其他器件: CC3120CC3135CC31XXEMUBOOSTCC1352R

您好!

为了进行测试、我们应该在不同的通道上传输连续的数据包。

当我开始连续传输模块并开始工作时。

要更改通道、我停止传输以更改参数并再次打开套接字。

此处存在问题。

当使用 sl_close (socket)进行连续数据包传输时;若要停止传输、则返回错误代码(-2005)  sl_api_aborted。

当传输的帧数量有限并且传输完成后调用 sl_close()它起作用。

此致

Ilian

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

    Ilian、您好!

    您使用什么 SDK 和 ServicePack?

    我的 CC3220固件具有用于生产射频测试的测试模式。 我遇到过与您类似的连续模式问题。 当关闭和打开新套接字之间没有延迟时、我出现中止错误(-2005)。 关闭和重新打开套接字之间的延迟(大约200-500ms)大大改善了情况。 但中止错误有时仍会发生。 在本例中、我重新启动 NWP。

    1月

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

    您好、Jan、

    感谢您的回答。

    simplelink_sdk_wifi 插件_2_40_00_22

    simplelink_cc13x2_26x2_SDK_4_10_00_78

    我将添加此延迟、但当我尝试停止连续传输时、我收到一个错误。

    此致、

    Ilian

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

    Ilian、您好!

    您在 CC3120MOD 中拥有什么 ServicePack? 也许您可以尝试使用您在 CC32xx SDK 中找到的最新 ServicePack (是的、CC3220 ServicePack 也是为 CC3120设计的)。

    1月

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

    您好!

    该模块就像出厂时一样。

    未重新编程。

    Ilian

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

    Ilian、您好!

    使用不带更新服务包的 CC3120MOD 并不是最佳选择。

    • 第一步、请尝试更新 ServicePack 并重复您的测试
    • 如果最新的 ServicePack 仍存在问题、则需要捕获 NWP 日志、甚至 MAC 日志。 如何捕获 NWP 日志在第20章中进行了介绍。 由于我没有用于解码 NWP 日志的工具、您需要等待 TI 的回答。

    BTW... 我还记得我曾与其他论坛用户讨论过类似问题(CC32xx 器件+一些射频测试模式+关闭插座)。 我记得我无法模拟这个问题、但我无法说明它是如何结束的。 不幸的是、我现在找不到该线程。

    1月

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

    您好、Jan、

    我将更新 ServicePack 并更新您。

    是否可以获取最后一个 ServicePAK、而不下载最后一个 SDK 32XX

    此致、

    Ilian  

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

    Ilian、您好!

    否 CC3110和 CC3220的最新服务包、位于 CC32xx SDK 中。 在此 SDK 中、您还可以找到适用于(CC3220、CC3235、CC3230、CC3120、CC3135)的最新主机驱动程序。

    1月

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

    您好!

    谢谢、

    ServicePAK 还可用于 directori 的 wi-fi 插件:

    C:\ti\simplelink_sdk_wifi 插件_2_40_00_22\tools\cc31xx_tools\servicepack-cc3x20

    应该是相同的、如果我下载 latets wi-fi 插件或最新的 SDK31xx 更好吗?

    此致、

    Ilian

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

    Ilian、您好!

    我不确定什么 ServicePack 版本在2.40 WiFi 插件中、但在 CC32xx SDK 中、SP 版本为3.19.0.1 (3.19.0_1_2.7.0.0_2.2.0.7)。

    1月

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

    您好!

    我对最后一个映像进行一次编程、但之后无法连接 cc3120MOD。

    错误:SLImageCreator.exe、BootLoaderError。

    我使用 UART 和 CC31XXEMUBOOST 进行编程。

    EMUBOOST 的 NHIB 连接到 nRESET (被拉至高电平)

    此致、

    Ilian   

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

    您好、Jan、

    最新的 ServicePakck 未解决问题。

    此致、

    Ilian

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

    Ilian、您好!

    在这种情况下、请捕获 NWP 日志(请参阅上面链接的 SWRU455说明)。

    1月

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

    您好、Jan、

    我会尝试。

    还有一个问题。

    我可以使用示例10000个数据包进行权变措施。 当变速器停止以关闭插座时

    之后、更改通道。 因此、我需要知道传输已完成。 此模式中是否存在可用于此目的的中断事件(回调)?

    此致、

    Ilian

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

    Ilian、您好!

    我不知道连续模式传输事件结束时有何合理的信号噪声。 您可以等待 TI 的回答、但在这种情况下、我不希望得到积极的答案。

    1月

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

    您好!

    进行比较。 CC3120MOD 连接到定制板上的 cc1352R。

    根据文档的 PIN 62。 本文档中的费用适用于 CC32XX。

    Ilian

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

    Ilian、您好!

    您可以通过 CC3120MOD 上的引脚52或 QFN 上的引脚62捕获 NWP 日志。

    1月

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

    您好!

    遗憾的是、我无法触摸定制板上的引脚52 (TEST_62)。

    Ilian

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

    您好!

    如果我不使用 sl_close 而是使用 sl_Stop 来停止(关闭 NWP 电源)、直到它发送数据、并且在新通道上的 sl_Start 和打开套接字之后、这将是 NWP 的问题吗?

    Ilian

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

    Ilian、您好!

    遗憾的是、我无法触摸定制板上的引脚52 (TEST_62)。

    我不确定是否可以在 CC3120处将其他引脚用于 NWP 日志。 可以重新映射 NWP 日志引脚、但我认为这在 CC3120上是不可能的。

    如果我不使用 sl_close 而是使用 sl_Stop 来停止(关闭 NWP 电源)、直到它发送数据、并且在新通道上的 sl_Start 和打开套接字之后、这将是 NWP 的问题吗?

    我不这么认为。 我想唯一的问题是重启 NWP 会造成延迟。 如果此延迟对您来说不重要、则该方法可能是合理的解决方法。 但最好使用超时(例如200)调用 sl_Stop。

    1月

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

    您好!

    是的、我使用 sl_Stop 的超时、但启用连续 TX 时、事件具有超时 sl_Stop 返回错误-2005。

    下面是我用于 TX 的代码:

    void wifiTxPacketForeverTRCmode(unsigned char *data, _i16 socket, _i16 channel, SlWlanRateIndex_e data_rate)
    {
        /* Base frame: */
        #define FRAME_TYPE 0x88
        #define FRAME_CONTROL 0x00
        #define DURATION 0xc0,0x00
        #define RECEIVE_ADDR 0x08, 0x00, 0x28, 0x5A, 0x72, 0x3C
        #define TRANSMITTER_ADDR 0x08, 0x00, 0x28, 0x5a, 0x78, 0x1e
        #define BSSID_ADDR 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
        #define FRAME_NUMBER 0x00, 0x00
        #define QOS_CTRL 0x00, 0x00
    
        _i32 NumOfBytes = 0;
        //_i32 Soc = 0;
        _i16 Status = 0;
        _u32 numFrames = 0;
    
        /* Mac header */
        char buff[500];
        char FrameBaseData[] = {
        FRAME_TYPE,                 /* version, type sub type */
        FRAME_CONTROL,              /* Frame control flag */
        DURATION,                   /* duration */
        RECEIVE_ADDR,               /* Receiver ADDr */
        TRANSMITTER_ADDR,           /* Transmitter Address */
        BSSID_ADDR,                 /* destination */
        FRAME_NUMBER,               /* Frame number */
        QOS_CTRL};                  /* Transmitter */
    
        memcpy(buff,FrameBaseData,sizeof(FrameBaseData));
    
        // Example data.
        memcpy (buff + sizeof(FrameBaseData), data, sizeof(buff ) - sizeof(FrameBaseData));
    
        // Set infinite number frames to transmit - transmit forever.
        Status = sl_SetSockOpt(socket, SL_SOL_PHY_OPT, SL_SO_PHY_NUM_FRAMES_TO_TX, &numFrames, sizeof(numFrames));
    
        NumOfBytes = sl_Send(socket, buff, sizeof(buff), SL_WLAN_RAW_RF_TX_PARAMS(channel, data_rate, 1, SL_WLAN_LONG_PREAMBLE));
    }

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

    您好!

    您会看到调用 sl_Stop()时出现中止错误,这一点很有意思。 我的连续模式启动代码与您的代码类似、但我看不到这样的问题。 我们还可以尝试更新 SimpleLink/主机驱动程序。 您可以在 CC32xx SDK 中找到最新的主机驱动程序、您可以从插件2.4中通过驱动程序复制驱动程序文件。

    如果更新驱动程序无法解决问题、则需要以某种方式捕获 NWP 日志。

    1月

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

    您好!

    是否需要为新的 simplelink.a 文件重建插件?

    您能不能描述一下 TI 更新主机驱动程序到底是什么意思?

    Ilian  

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

    Ilian、您好!

    如果您使用的是预编译器库、则需要为主机平台重新构建库。

    1月

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

    您好!

    我使用 Wi-Fi 插件和 simplelink.a 文件。 还有其他解决方案吗? 可能是我错过了一些东西。

    Ilian  

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

    Ilian、您好!

    如果不想重新编译库、可以从工程中删除 simplelink.a 库并将其复制到工程主机驱动程序文件中、但不要重写低级 SPI 驱动程序(子目录移植)。

    BTW... 以下 是有关如何更新主机驱动程序的好指南。

    1月

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

    您好!

    您使用的是什么 SP?

    您是否基于无线电工具软件? (https://www.ti.com/tool/CC3XXXRADIOTEST)

    是否可以尝试使用少于10000个数据包? 是否可以改用封包化接口?

    其他用例(与射频测试无关)是否适合您? (我正在尝试消除移植问题)

    BR、

    Kobi

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

    您好、Kobi、

    我使用最新的 ServicePack。 (来自最新的 CC32XX SDK)。

    我不使用无线电工具。

    我在我的应用中使用函数(在 CC1352R 上运行)将 NWP 置于测试模式(收发器模式)以进行测试- EMC 测试。

    是的、我尝试使用1、100、1000、10000个数据包、如果我在数据包传输完成后关闭套接字、它就可以工作了。

    当设置了无限传输时、问题就存在了。 (numFrames = 0)

    //设置要发送的无限数量帧-永久发送。
    状态= SL_SetSockOpt (SoC、SL_SOL_PHY_OPT、SL_SO_PHY_NUM_FRAMES_TO_TX、&numFrames、sizeof (numFrames));

    我还害怕更新或更改插头以不破坏项目。

    其理念是按下按钮以更改 TX 通道和比特率。

    如果我不使用无限 TX、我会尝试找到一些情况来了解数据包的传输已完成。

    此致、

    Ilian

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

    我将在下周试一下。 如果重新生成(使用无线电工具)、我想检查(至少) sl_Stop 失败的原因。

    我不确定这是如何发生的。

    您还可以尝试调试调用并查看导致此返回代码的原因。

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

    您好!

    现在将进行调试、以查看其返回错误代码的位置。

    它看起来像是接口不工作。

    Ilian

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

    好的、谢谢。

    我将在下周检查这些问题。

    BR、

    Kobi

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

    您好!

    下面是返回值为-2005的屏幕截图

    出现问题时,代码在 line218后退出。

    执行218行中的代码错误- 2005返回到 driver.c 文件的917行。

    如果没有问题 ,则 RetVal =_SlDrvMsgReadCmdCtx (pCmdCtrl->操作码,IsLockRequired);//将释放全局锁定

    RetVal 为0且 sl_close 返回0。

    出现问题时、此行返回-2005、并 从 sl_close 返回

    此致、

    Ilian

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

    您好!

    下面是返回值为-2005的屏幕截图

    出现问题时,代码在 line218后退出。

    执行218行中的代码错误- 2005返回到 driver.c 文件的917行。

    如果没有问题 ,则 RetVal =_SlDrvMsgReadCmdCtx (pCmdCtrl->操作码,IsLockRequired);//将释放全局锁定

    RetVal 为0且 sl_close 返回0。

    出现问题时、此行返回-2005、并 从 sl_close 返回

    更深入地:

    在第917行之后,代码转到第1878行

    RetVal =_SlDrvMsgRead (&outMsgLen、&pBuf);

    在进行一些 SPI 通信后、在此处输入(可能存在问题)

    2005年返回

    此致、

    Ilian

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

    似乎由于等待响应的超时而失败 (该超时 当前设置为50ms、请参阅 driver.h 中的 SYNC_pattern_TIMEOUT_IN_msec)。

    它看起来像 SL_Send (在此模式下)阻止其他命令执行(包括 SL_Close 和 SL_Stop) 、并且无法取消。

    您应该使用较小的数据包计数(如果需要、在主机上的循环中)或延长超时时间。

    BR、

    Kobi   

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

    您好、谢谢。

    在 device.h 中、没有 SYNC_pattern_timeout_in_msec 定义  

    此致、

    Ilian

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

    driver.h

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

    您好!

    我将其更改为500、但问题仍然存在。

    (我更改但不重新编译 Wi-Fi 插件)

    此致、

    Ilian

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

    您好、Kobi、

    我在主应用程序中找到了解决方法。 我发送数据包、并在数据包完成后(超时后)再次发送。

    我还有一个关于在 DHCP 中获取 IP 的问题。

    我们的器件功耗极低、而 IP 采集时间对于电流消耗至关重要。

    对于测试的 AP、到目前为止、它可以说是可接受的。 已测试 AP - D-Link、TP 链路。

     有一个品牌"MICROTIK"、NWP 通过它获得 IP 大约6秒。 这对我们来说太长了。

    问题:

    1.我使用'DHCP_FAST_REOPENE_WAIT_ACK'() 设置进行 IP 获取。 如果我不等待 ACK、时间将会更短。 (我们仅传输、传输后 NWP 处于 HIB 状态)。

    在这种情况下、设置"不等待 ACK "是否会更好? 如果我使用此设置、是否存在任何潜在问题。

    2. AP (Wi-Fi 路由器 DHCP 服务器)中是否有任何设置。 哪一项有助于缩短 IP 采集时间?

    此致、

    Ilian

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

    您需要重新构建 wifi 驱动程序以更新超时。

    有关DHCP 客户端的详细信息、请阅读 NWP 程序员指南(www.ti.com/.../swru455)的第5.4章。

    使用 NO_WAIT_ACK 会导致地址冲突和 IP 丢失事件。 这 种 情况很少见、 我认为这通常是无害的。

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

    大家好、谢谢!

    我知道 IP 丢失、见第5.4章。

    我想向您提供建议。

    此致、

    Ilian