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.

[参考译文] CC1352P:在不使用 DMM 的 CC1352P 上将 BLE (simple_central/simple_peripheral) 与专有射频(无线电唤醒)相结合(顺序相位)

Guru**** 2609895 points
Other Parts Discussed in Thread: BLE-STACK, LAUNCHXL-CC1352P, CC1352P, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1580142/cc1352p-combining-ble-simple_central-simple_peripheral-with-proprietary-rf-wake-on-radio-on-cc1352p-without-dmm-sequential-phases

器件型号:CC1352P
Thread 中讨论的其他器件:sysconfig、BLE-STACK

您好:

我一直使用两个 LAUNCHXL-CC1352P 电路板、以及 simplelink_cc13xx_cc26xx_sdk_8_31_00_11 几周。 我已经编译、编辑和实验了大多数 BLE 和专有射频示例、因为我想构建一个同时使用这两种协议的应用程序。

我已经了解了以下 SimpleLink Academy 模块:

  • 动态多协议管理器 (DMM)—从头开始集成

  • DMM — 定制用例

  • DMM—基础知识

我很熟悉这些示例。

我目前拥有:

  • 我基于的专有射频示例 rfWakeOnRadioRx rfWakeOnRadioTx 、和

  • 基于的另一应用 简单中心 simple_peripheral

目标
在一个 LaunchPad 上、组合 简单中心 一方 rfWakeOnRadioRx 。 在第二个 LaunchPad 上进行组合 simple_peripheral 一方 rfWakeOnRadioTx 。 换句话说、在两块板上运行一个 BLE+Prop-RF 应用。 可以了 不会 需要两个协议同时处于活动状态。 预期流程为:

  1. 首先使用 BLE(连接,交换/处理数据)、然后使 BLE 处于空闲状态或完全关闭。

  2. 启动专有射频链路(连接/通信)、处理数据、然后完成操作。

我尝试过的
起初、我尝试将 BLE 代码/配置移植到专有射频应用中、但我无法将集成置于工作状态。 我记得 DMM 指南,该指南建议将不太复杂的协议移至更复杂的协议,因此我尝试了相反的方向 — 但仍未达到我的目标。

关键问题
由于我不需要并发无线电活动(不需要共存,任务/事件之间没有严格的优先级)、我想知道我是否可以 完全避免使用 DMM 并实现方法如所示 两个连续阶段 (BLE→STOP→Prop-RF→STOP) 并避免 DMM。

在我花更多时间讨论此方法之前:

  • 只要我严格避免重叠、在 CC1352P 上没有 DMM(即,干净地静音 BLE、然后将射频驱动器用于 Prop-RF、然后选择性地返回 BLE)、这种做法是否可行?

  • 我是否应该注意一些具体的缺陷(例如,确保 BLE 在 Prop-RF 启动之前完全空闲/关闭、 SysConfig 中的任何内容、引脚冲突、时钟/功率问题等)?

  • 是否有任何推荐的切换序列或最佳实践(BLE 禁用/终止事件等待)、尤其是当两个堆栈都处于一个项目中时? 甚至首先是射频、然后是 BLE。

我跳过 DMM 的主要动机是保持项目更精简、因为我只需要 顺序 时间。 任何提示、示例参考或新手都将非常感谢。 我已经坚持了大约一周、因此有关可靠的交车顺序的指导将大有帮助。

谢谢!

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

    嗨、Hugo、

    这听起来可以很好地发挥作用。 但是、为了实现这一点、我认为您需要使用软件引起的复位。 至少在从 BLE 转换到 Prop 射频时如此。 (不确定从 Prop RF 到 BLE 时是否需要它)。

    您的应用中是否有任何延迟要求?

    谢谢、

    Marie H

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

    尊敬的 Marie:

    我能够在 BLE Code 中进行 RF-RX 集成。 我能够进行 BLE 通信过程、使用 GAP_TerminateLinkReq 断开链路。 之后、我建立了射频连接、它是有效的、然后使用 RF_CancelCmd、RF_pendCmd 和 RF_Close 来结束通信。

    直到现在、它看起来还不错。 我能够与这两个协议进行通信。 但我需要在逻辑中循环才能重新开始该过程、直到现在我无法再次成功启动 BLE-Link 通信、我不确定我的问题是什么。 我尝试过以下操作:


    Dissable GapScan->再次注册 GapScan ->设置参数->再次启用它。

    由于某种原因、它无法正常工作、我正在尝试确定它是否已启用、以及为什么不再次进行扫描来查找外围设备。

    我真的没有应用程序中的延迟要求、我的意思是它不重要、我可以有相当大的延迟、并且不会对我的应用程序造成问题、它是否相关?

    谢谢

    Hugo

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

    嗨、Hugo、

    当您使用无线电作为传播射频时、尝试返回 BLE、您并不是完全针对 BLE 重新配置无线电。 该软件根本不是为了支持这种用例而编写的。

    作为解决方法、如果您想再次使用 BLE-Stack、然后从头开始初始化所有内容、我建议您进行软件引起的复位。 您可以使用此 API: SysCtrlShutdown 

    https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_8_31_00_11/docs/driverlib/cc13x2_cc26x2/driverlib/group__sysctrl__api.html 

    谢谢、

    Marie H

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

    尊敬的 Marie:

    感谢您提供的信息。 我实际上尝试了 SysCtrlShutdown 、但没有正常工作。 我只是多读一些关于它的东西。

    与从调试器中移除 TMS 和 TCK 引脚相比、我是否需要对 LAUNCHXL-CC1352P1 执行其他操作? 我是否还需要删除 RST PIN 或其他任何内容?

    我也尝试删除一些针脚,但没有真正工作,但我不确定我应该删除什么,什么不,也许如果我再尝试更多的信息,我可以找到一个解决办法. 现在我使用的是   SysCtrlSystemReset(); 因为我与其他函数一起着陆于一个无限循环上。

    谢谢。

    Hugo

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

    嗨、Hugo、

    是的,道歉,你确实应该使用  SysCtrlSystemReset() (不是 SysCtrlShutdown) 

    谢谢、

    Marie H

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

    尊敬的 Marie:

    感谢本主题中的指导。 下面简要介绍了“最终状态“+我的两个演示应用(中心+外设)的实际功能、确切的时序控制以及我们所做的更改。

    #最终状态/解决方案:

    ***我们*不在运行时使用 DMM**(无 DMM 策略、无优先级表/GPT、无 DMM 任务)。
    *因为**BLE**和**Prop RF**驱动程序在同一映像中链接、所以在 SysConfig**中启用**DMM 选项是必要的、只是为了避免构建时引用/警告。 我们将其保留为**未配置**:
     * BLE 优先级设置为**1**、Prop RF 优先级**0**(纯粹是为了使编译/分析路径静音)。
     ***未创建 DMM 实例**、*未引用 DMM 策略表**。
    *无线电交接方法:
     *开始** BLE→Prop RF→回到 BLE**后、BLE 堆栈在使用射频驱动器后没有通过简单的 BLE 重新启用完全恢复。
     *根据您的建议、在返回 BLE 之前、稳健的修复是**软件引起的复位**。
     *在关闭射频驱动程序后、我们现在调用**` ysCtrlSystemReset()`S**。 这可靠地重新初始化 BLE 栈、并在下次启动时再次进行扫描/广播。

    我们没有严格的延迟要求、因此基于复位的切换是可以接受的。

    很高兴标记这个已解决。 再次感谢您的明确建议!

    谢谢、
    Hugo