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.

[参考译文] CC2340R2:将程序从 CC2340R5迁移到 CC2340R2时出现问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1427935/cc2340r2-issue-with-migrating-program-from-cc2340r5-to-cc2340r2

器件型号:CC2340R2
主题中讨论的其他器件:CC2340R5SysConfig、LP-EM-CC2340R5

工具与软件:

尊敬的 TI 支持团队:

我写信给您、想就我在使用 CC2340R2芯片时遇到的问题寻求帮助。 我按照指南修改闪存宏定义、切换了 SysConfig 中的芯片模型、清除了以前的构建信息、并对器件进行了重新编程。 在 CC2340R5上完美运行的代码持续传输蓝牙 iBeacon 数据、无法在 CC2340R2上传输任何数据。

对于硬件修改、我们将 LP-EM-CC2340R5演示板上的芯片替换为 CC2340R2。 我使用 SmartRF Studio 8进行了测试、结果显示在通道37、38和39上成功传输数据、确认硬件设置正常。

您能否提供有关配置工程以在软件方面解决此问题的任何解决方案或指导? 非常感谢您的帮助。

感谢您的支持。

此致

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

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

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

    我已重新选择芯片并解决了不发送数据的问题。 然而、又出现了一个新问题:在 while 循环中添加的延迟只能上升到大约190ms、而进一步增加该延迟不起作用。 即使对延迟函数的多次调用也无效。 此代码在 CC2340r5上运行良好、因此问题可能发生在 SDK 迁移过程中。 您能否为此提供有效的解决方案?

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

    您好!  

    我指派了一名专家来提供支持。  

    请提供一个代码片段、以显示您使用器件的方式。  

    此外、您似乎正在尝试模仿 蓝牙广播、但同时您似乎没有使用蓝牙堆栈。 您能解释一下您选择此方法的原因吗?  

    此致、  

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

    此外,在测试过程中,我发现了一个特殊的问题。 如前所述、我们使用的是 LP-EM-CC2340R5演示板。 按照适配指南、我在 LP_EM_CC2340R5上将电路板设置为 CC2340R22。 即使更改了闪存大小、似乎没有任何功能起作用。 当我选择电路板作为 CC2340R2开发平台并调整了闪存大小后、可以正常发送蓝牙数据、但发生了上述问题。 我通过注释掉发送接口并将其替换为 LED 来解决无线电传输是否影响延迟的问题、但 syscfg 中的引脚似乎与实际的引脚不对应。 我希望您能提供支持、帮助我们解决这些问题。 谢谢!

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

    您好、胡文博

    我希望你做得好。  

    但 syscfg 中的引脚似乎与实际引脚不对应

    -我们可以通过比较 SYSCFG 定义的引脚和我们尝试使用的引脚设置来查看是否存在差异、请参考 SDK 文档 BLE5-Stack 快速入门指南中的定制硬件(TI.com)

    我们没有使用蓝牙堆栈是因为我们对功耗有更高的要求。

    -我们提供了一个 proprf Phy ,可以复制 BLE 像数据包,但没有 BLE 堆栈,这是您当前正在使用的东西,这里的问题是,您的应用程序代码(延迟)不工作,如果您在延迟处放置一个断点会发生什么?

    谢谢!
    Alex F

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

    您好 Alex ***:

    我希望你做得好。  

    很抱歉、此问题尚未解决、但我使用鼠标意外点击了此按钮。

    我在 delay 函数中设置了一个断点以用于调试、发现 delay 函数在执行线程调度操作时也正常进入。 然后我用 vTaskDelayUntil ()替换了 delay 函数,发现发生了同样的问题——最大延迟可能只有200ms。 您能否提供可正常工作的解决方案或相关示例?

    或者、为了简化问题、我们使用 LP-EM-CC2340R5演示板上的 CC2340R2芯片。 我们按照迁移指南的说明、将"ti\simplelink_lowpower_f3_sdk_8_10_01_02\examples\rtos\LP_EM_CC2340R5\drivers\buttonled\freertos\ticlang"示例传输到 CC2340R2、但发现它不起作用。 您能否提供与 CC2340R2相关的操作指南或示例?

    谢谢!

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

    您好、胡文博

    下面是使用 vTaskDelay ()修改的 rfpacketTx 的快速代码片段;

    我还在 syscfg 中添加了 LNA 引脚(在 RCL 下)。

    这有助于我使用逻辑分析仪检查时序、延迟~1.3s (距离 vTaskDelay 800ms、距离 usleep 500ms)

    您能看到 LNA 引脚告诉您什么吗?

    谢谢!
    Alex F

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

    Alex ***、很高兴收到您的回复并且对您提供的验证结果表示赞赏。 但是、我面临的问题尚未解决。 现在、我将向您介绍我的步骤、以便您能够帮助确定问题。

    首先、我导入了一个基于"rfPacketTx"进行修改和验证的 CC2340R5芯片。 然后、我点击 syscfg、选择开关、并在板选项中选择"CC2340R2 Development Platform"。 我还尝试选择"CC2340R22 on LP_EM_CC2340R5"、但选择该选项时、我也无法采集任何 BLE 数据、并且使用此选项导入其他示例也无法正常运行。

    接下来、我打开文件"lpf3_freertos.cmd"、并修改宏定义"#define FLASH_size 0X40000"。 最后、我编译了项目并将其刷入演示板。 这一问题在这些步骤中再次出现。

    您是否发现我的操作中有任何可能导致问题的疏忽?

    我已附上操作步骤截图和根据上述步骤生成的项目。

    e2e.ti.com/.../cc2340r5_5F00_ibeacon.zip

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

    您好!

    我将查看您的上述步骤! 并咨询我的一名团队成员。

    谢谢!
    Alex F

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

    感谢你的帮助。 结果如何?

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

    您好、胡文博

    很抱歉这里出现延误、今天我应该给你一个答复。

    谢谢!
    Alex F

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

    您好、胡文博

    我有一个 R2板、并且正在迁移该项目、目前正在处理 RCL LNA 引脚看起来不工作(或无线电未激活)的问题。  

    谢谢!
    Alex F

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

    您好、胡文博

    我使 rfPacketTX 项目正常运行、并修改了下面的"延迟"参考代码片段:
    在本例中、我遵循了 BLE5-Stack 迁移指南中的迁移步骤、但未修改 lpf3_freertos.cmd 文件作为参考。  

    void *mainThread(void *arg0)
    {
        /* Initialize and open RCL */
        RCL_init();
    
        RCL_Handle rclHandle = RCL_open(&rclClient, &LRF_config);
    
        /* Set RF frequency */
        rclPacketTxCmdGenericTx.rfFrequency = FREQUENCY;
    
        /* Start command as soon as possible */
        rclPacketTxCmdGenericTx.common.scheduling = RCL_Schedule_Now;
        rclPacketTxCmdGenericTx.common.status = RCL_CommandStatus_Idle;
    
        rclPacketTxCmdGenericTx.config.fsOff = FS_OFF; // Turn off FS
    
        /* Callback triggers on last command done */
        rclPacketTxCmdGenericTx.common.runtime.callback = defaultCallback;
        rclPacketTxCmdGenericTx.common.runtime.rclCallbackMask.value = RCL_EventLastCmdDone.value;
    
        /* Set RCL TX buffer packet to be packet buffer */
        RCL_Buffer_TxBuffer *txPacket = (RCL_Buffer_TxBuffer *)&packet;
    
        GPIO_setConfig(CONFIG_GPIO_GLED, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
        GPIO_write(CONFIG_GPIO_GLED, CONFIG_GPIO_LED_OFF);
    
        while(1)
        {
            /* Create packet with random payload */
            uint8_t *txData;
            txData = RCL_TxBuffer_init(txPacket, NUM_PAD_BYTES, HDR_LEN, MAX_LENGTH);
    
            /* Zero out data in header before the length field */
            for (int s = 0; s < LEN_INDEX; s++)
            {
                txData[s] = 0U;
            }
    
            /* Set the packet length */
            txData[LEN_INDEX] = MAX_LENGTH;
    
            /* Generate a random payload */
            for (int i = HDR_LEN; i < MAX_LENGTH; i++)
            {
                txData[i] = rand();
            }
    
            /* Set packet to transmit */
            RCL_TxBuffer_put(&rclPacketTxCmdGenericTx.txBuffers, txPacket);
    
            rclPacketTxCmdGenericTx.common.status = RCL_CommandStatus_Idle;
    
            /* Submit command */
            RCL_Command_submit(rclHandle, &rclPacketTxCmdGenericTx);
    
            /* Pend on command completion */
            RCL_Command_pend(&rclPacketTxCmdGenericTx);
    
            //usleep(PACKET_INTERVAL);
            sleep(1);
        }
    }

    e2e.ti.com/.../rfPacketTx_5F00_LP_5F00_EM_5F00_CC2340R5_5F00_freertos_5F00_ticlang.zip

    谢谢!
    Alex F

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

    Alex_Fager

    感谢你的帮助。 我和我的同事将验证您提供的工程、并将结果反馈给您。 谢谢!

    谢谢!