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.

[参考译文] CC1352R:蓝牙 DTM 模式包含在用于生产测试的正常应用中

Guru**** 2812305 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1609423/cc1352r-bluetooth-dtm-mode-include-in-normal-application-for-production-test

器件型号: CC1352R
主题: SysConfig 中讨论的其他器件

我们希望将蓝牙直接测试模式 (ble_dtm) 集成到我们的主应用中。 这样做的原因是、我们希望在每个器件发货之前、先验证生产中的硬件和无线精度。  
可以将直接测试模式示例集成到 dmm_wsnnode_ble_sp_app 中。  

ble_dtm 项目由两个单独的项目组成。 Stack_Wrapper 构建为.lib 文件、包含在 DTM 应用程序中。 dmm_wsnnode_ble_sp_app 工程包含一个没有 Stack_warpper.lib 的工程。 如何在 dmm_wsnnode_ble_sp_app 工程中将 HCI 命令调用到栈?

期待您的答复

Jonas  

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

    嗨、Jonas、

    您能够在 BLE 应用中启用 PTM(生产测试模式)、从而允许您使用 DTM 功能的子集、这对于您要实现的功能来说可能已经足够。 请参阅下面列出的用户指南的 PTM 部分:

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_8_32_00_07/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/ptm-and-dtm.html#production-test-mode-ptm

    此致、

    1 月

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

    嗨、  

    感谢您的建议。 不幸的是、这适用于 SD 版本 8.32.0.7。 我在版本 5.30.1.1 中看不到 PTM 选项。 我们无法更改 SDK。  

    如果在 5.32 版本中是可能的、请告诉我如何操作。 另一个问题是、如何定义用于发送 HCI 命令的 UARTT 引脚和中断引脚?  

    此致  
    Jones  

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

    好的、  
    我找到了这个选项。 但我不确定如何处理此模式。 我发现至少在较新的 SDK 版本中有一个示例工程、但在我的 SDK 版本中找不到。 是否有任何 SDK Verion 5.30.1.1 的示例、我可以在哪里了解如何与 PTM 配合使用?  
    链接到项目描述

    它确保此示例仅在 f3 SDK 中可用、但不适用于 F2、其中 CC1352 是 inkluded。 因此、我不知道如何以 SDK 5.30.1.1 在 CC1352R1 上运行示例应用。  

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

    您好、

    此时 5.30.1.1 SDK 已经过时了。 您是否能够使用最新的 8.30 SDK?

    此致、

    1 月

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

    您好、  

    不、很遗憾不是。 我们需要 DE 特定版本。 但据我所见、即使升级到版本 8.32.00.07 也不会带来任何变化、或者我错了吗?  
    我下载了版本 8.32.00.07 的 zip 文件、但在 CC1352R1 的 ble5stack 示例文件夹中仍然没有示例。  


    我唯一看到 Basic BLE PTM 示例位于 F3 SDK 中、但此 SDK 适用于完全不同芯片系列、而不适用于 CC1352R1。

    那么、如何在 SDK 版本 5.30.01.01 中获得 CC1352R1 的示例呢?

    最好的考虑  
    Jonas

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

    嗨、 Jonas、

    F2 SDK 中没有特定的 PTM 示例。 您应根据计划使用的角色导入 simple_peripheral、simple_central 或多角色。 您可以通过在 SysConfig 中选中 PTM 模块的 Advanced settings 选项卡中的 PTM 框来启用 BLE 功能。

    此致、

    1 月

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

    嗨、  

    是的、我到目前为止一直在理解您。 但是、我需要知道的是、如何更改 UART 引脚、如何进入或离开 PTM、支持哪些命令以及如何在我的程序中触发它们?  

    为此、最好通过一个示例来测试我们需要的所有内容是否都在测试模式中、然后我们在应用中实现它。 您能举个例子吗?

    此致
    Jonas

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

    嗨、Jonas、

    simple_peripheral projct 有一些代码段位于#ifdef PTM_MODE 块内部。 选中 PTM 框后、这些块将被编译到程序中并运行。 运行后、您可以通过 UART 发送命令。 您可以在 GUI 中使用 BTool 来执行此操作。 UART 参数的波特率应为 115200。  

    此致、

    1 月

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

    好的、我在代码中找到了定义、然后提取所有内容、并将其包含在我的代码中。 但代码总是在 ICALL_ABORT() 函数中结束。
    是否有更简单的方法可以在应用中为 BLE 获取连续波、然后包括所有 PTM?  

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

    您好、

    你能澄清何时发生 ICALL_ABORT() 吗? 是否是选中 PTM 复选框后对示例工程进行的唯一更改、或者您更改了任何代码?

    此致、

    1 月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、很抱歉、我可能没有很好地解释我的情况。

    基本上、我在 simple_peripheral 示例中测试了 PTM、并拥有所需的功能。
    我从这里向上浏览了 PTM 是如何集成的。 基本上、我搜索了所有“#ifdef PTM_MODE“、并将代码复制到我自己的代码中。 我还将 NPI 文件夹复制到代码库中、并将“${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/ble5stack/npi src /“添加到工程的 Include 选项中。 最后但同样重要的是、我在 SysConfig 中激活了 PTM。

    在我的项目中,当我尝试通过 BTool 连接时,我会立即运行到“ICALL_ABORT ()“_function。 我尝试逐步浏览代码并在代码中标记每个引用“ICALL_ABORT ()“,但它发现这些都不是故障点。 我想我可能被称为堆栈中的某个位置、在那里我无法进入。

    在我看来,我们有两个选择:
    1.我们调试代码,直到我们发现导致失败的错误。
    2、由于我只需要在生产过程中使用连续波来测量我的硬件和频率稳定性,因此开发一个仅用于连续波而不是整个 PTM 的函数可能更有意义。


    请告诉我、您的意见是什么。

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

    尊敬的 Jones:

    明白。 感谢您的进一步澄清。 iCall_abort () 通常发生在从不正确的上下文(如中断回调)或未在 iCall 中注册的任务)调用 BLE API 时。 您能否验证是否在不正确的位置调用了任何 BLE API?

    此致、

    1 月

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

    嗨、  

    因此应用程序(包括我们的 ble 逻辑)工作正常、因此不应导致 iCall_error(我检查过,一些 iCall-functions 被调用就可以了)。 PTM 应该也工作,我猜,因为我没有改变任何东西,它也调用 iCall 没有问题。 我尽量尝试调试,并发现以下(在我认为有趣的行为)  

    我一步一步地跟踪功能、直到程序崩溃。  

    因此、main 函数调用:  
     iCall_init();
     /*启动 ble_stack*/的任务
     iCall_createRemoteTasks ();

     NPITask_createTask (ICALL_SERVICE_CLASS_BLE);
    方式与示例中的相同。  
    在这里调用 NPITask_process ();,它是在一些 init 之后调用的。 在这里我等待事件 (npi_task.c:445)
    当尝试与 BTool 连接时、会发生事件、并发生以下调用 hirarch

    npi_task.c:722 --> npitask_process();
      npi_task.c:637 -> NPITask_processRXQ ();
         npi_task.c:1147 --> npitask_sendBufToStack (npiAppEntityID、recPtr->npiMsg);
            npi_task.c:909 --> errno = iCall_sendServiceMsg (appEntity、stackServiceID、ICALL_MSG_FORMAT_KEEP、pMsg->pBuf);
              iCall.c:2512 --> 返回 (iCall_send (src、stentity, format、msg);
                iCall.c:2836 --> ICALL_SYNC_HANDLE_POST(iCall_ENTITS[dest].task->syncHandle);
                  event.c:311:Task_restore (tskKey);-->  Step Out 从不返回。 当我按下 pause,它会显示 iCall_abort()
                iCall.c:2838 -->返回 (ICALL_errno_success);-->未到达此行
            npi_task.c:912 --> iCall_free (pMsg);  

    所有 NPI 文件都未更改!  

    您能发现我在应用程序中的样品合并过程中犯的任何错误吗?

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

    尊敬的 Jones:

    为了进行确认、在您尝试通过 BTool 进行连接之前、应用程序正常工作、没有出现任何问题? 如果是、那么如果通过 BTool 进行连接、然后复位器件、会发生什么情况、它是否继续工作? 您是否能够在此时成功发送命令?

    此致、

    1 月

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

    您好、Jan、

    在此处以我的客户的名义回答、他们在发布回复时遇到了一些问题:

    我试了一下,你在星期五写的。 1.- 6. 都是当前状态。 7.- 10. 是您的建议(如果我理解您的意思)。 无论是否有任何断点、错误都可以消除。 和使用不同的命令(第一个 HCI BTool SystemCmd 除外、因为它是在连接到器件后由 Ext_Reset 自动执行的)。  

    1. 在 CCS 中启动调试会话
    2. 在 iCall_abort() 函数 (iCall.c:2930) 中设置断点
    3. 启动 btool
    4. 选择 XDS110 Class Application/User UART
    5. 代码在断点处停止
    6. BTool — 错误:

      “器件复位超时

      器件可能无法正常工作“(此错误在带有和没有任何断点的情况下出现)

     

      -->日志输出:

      [1]: - 06:49:43.900

      端口在 09.02.2026 06:49:43 打开

      --------------------------------------------------------------------------------

      [2]: - 06:49:44.047

      -Type      :0x01(命令)

      -操作码     :0xFC1D (HCI 系统 Ext_Reset)

      -数据长度  : 0x01(1) 字节

      参数      :0x00 (0)(芯片复位)

      转储 (Tx):

      0000:01 1D FC 01 00                  …

      --------------------------------------------------------------------------------

      [3]: - 06:49:46.070

      消息响应超时

      Name = HCI Ext_Reset SystemCmd

      操作码= 0xFCS1D

      TX 时间= 06:49:44.047

      --------------------------------------------------------------------------------

      [4]: - 06:49:46.070

      器件复位超时

      器件可能无法正常工作

     

    您的建议:

    1. 重新启用调试会话以复位器件。
    2. 尝试通过 BTool 发送“HCI_Reset"-命令“命令
    3. 代码再次在 Breakpoint 处停止
    4. BTool — 错误

      “消息响应超时

      名称:HCI_Reset

      操作码:0x0C03

      TX 时间= 06:55:25:315“(发生此错误时带有或没有任何断点)

     

      -->日志输出:

      [5]: - 06:55:25.315

      -Type      :0x01(命令)

      -操作码     :0x0C03 (HCI_Reset)

      数据长度  :0x00(0) 字节

      转储 (Tx):

      0000:01 03 0C 00                   ...

      --------------------------------------------------------------------------------

      [6]: - 06:55:27.351.

      消息响应超时

      名称= HCI_Reset

      操作码= 0x0C03

      TX 时间= 06:55:25.315

      --------------------------------------------------------------------------------

    此致

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

    尊敬的 Manuel:

    我懂了。 要确认、此问题不会在已修改为支持 PTM 正确的未修改 simple_peripheral proejct 中发生? 它仅发生在启用 PTM 后开发的自定义项目中?

    此致、

    1 月

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

    您好、Jan、  

    从而进行裂解。  
    我们使用“dmm_wsnnode_ble_sp_app"开发“开发了您的应用程序。 目前、我们需要修复一些较小的错误、但目前我们对该应用程序本身感到满意。 对于生产、我们需要一个函数在 2.4GHz 通道上发送连续波。 您推荐使用 PTM。 我在“simple_peripheral"示“示例中测试了 PTM。 只要我确信,我们可以使用它进行连续波形测试,我就将函数调用和所有必要的文件移植到我们的项目中。 在这里发生崩溃。  
    我还测试了评论我们所有的线程。 因此,在主要只有 iCall 和 PTM 所需的线程被启动。 同样的误差。 因此、错误出现在 PTM 中、而不是在我们的应用中。 资源冲突也不应该是问题。  

    也许它与 DMM 有关系? 在加入 PTM 之前、我们的应用可以正常运行。

    此致

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

    您好、Jan、  

    我可以在“dmm_wsnnode_ble_sp_app_CC1352R1_LAUNCHXL_tirtos_ccs"中“中重现错误。
    我做了什么:  

    1.我选中了 syscfg 中的 PTM 复选框。
    2. 我将 Dsplay UART2 更改为 CONFIG_DISPLAY_UART2、并为 NPI 接口添加了一个 UART CONFIG_DISPLAY_UART。 (将代码 (cui.c:305) 中的 CONFIG_DISPLAY_UART 附件更改为 CONFIG_DISPLAY_UART2)。
    3、我需要在工程中添加一些缺失的 include:  

    - ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/ble5stack/npi src

    - ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/source/ti/ble5stack/npi src

    3.添加从简单外围示例复制了 NPI 文件夹,并将其包含在项目中。  


    我通过调试会话启动了工程。 从 btool 程序发送 inial 命令后。 调试器显示程序卡在 iCall_abort (void) 函数 (iCall.c:2922) 中。  

    此致

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

    您好、

    感谢您提供详细信息。 我将使用此图来重现该行为。 我将通过电子邮件跟进结果。  

    此致、

    1 月