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.

[参考译文] CC2640R2L:运行时扫描失败

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1039291/cc2640r2l-scanning-fail-in-runtime

器件型号:CC2640R2L

您好,

我们在两种不同的产品中使用 BLE 模块、这两种产品都 具有外设+观测器角色。

在 BLE 模块中、为了确认扫描是否正常工作 、我们使用 SCAN_PERIOD_EVENT 定期确认 BLE 扫描。

问题:在运行期间,此事件停止随机发生,然后 BLE 永远不会扫描任何信标。

我们观察到、在这两个器件中、有时扫描失败、一天20到30次、有时一天2到4次、并且随机扫描。

我们假设许多人可能会遇到这个问题,您能告诉我们解决这个问题的方法是什么吗?

产品中的两种 BLE 配置。

第1台设备:

SDK - 2.30  

角色-外设+观察者

示例-主机测试

blestack-5

BLE 始终处于扫描模式、由另一个中心决定。

所有接口均采用 HCI 协议的外部微控制器

第二台设备:

SDK - 4.20  

角色-外设+观察者

示例- Simple Peripheral Observer  

blestack-4

BLE 始终仅处于扫描模式

无外部微控制器。

此致、

Bhavin  

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

    您好、Bhavin、

    感谢您为此问题打开单独的主题! 与另一个类似、我将指派一名 TI 专家来衡量这一点。 为了帮助他、您能向我们提供更多有关这方面的信息吗?

    1.您在帖子中说:

    [引用 userid="333720" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1039291/cc2640r2l-scanning-fail-in-runtime "]我们发现,在这两种设备中,扫描有时每天失败20到30次,有时一天失败2到4次,而且随机扫描。

    设备每天扫描多少次? 这可以通过计算1/(扫描间隔)找到。 这将使我们了解器件扫描次数的故障频率。

    2.您的设备处于哪种环境中? 如果将信标放置在存在大量射频干扰的环境中、那么如果器件每次都无法扫描信标、我就不会感到意外、因为可能有其他器件同时广播。

    3.您的设备是否作为外围设备或观测器运行? 外设不进行扫描、而是进行广播。 但是观测器会进行扫描。

    4.你也说

    [引用 userid="333720" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1039291/cc2640r2l-scanning-fail-in-runtime "]

    BLE 始终处于扫描模式、由另一个中心决定。

    [/报价]

    如果您处于连接状态、则无法进行扫描。 相反、扫描是可导致连接的过程。 您可能会发现 SimpleLink Academy 的"Scanning and Advertising and Connections (扫描和广播以及连接)"页面 对此有所帮助。

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

    您好、Nathan、

    请查找答案。

    1.您在帖子中说:

    我们观察到、在这两个器件中、有时扫描失败、一天20到30次、有时一天2到4次、并且随机扫描。

    2.您的设备处于哪种环境中? 如果将信标放置在存在大量射频干扰的环境中、那么如果器件每次都无法扫描信标、我就不会感到意外、因为可能有其他器件同时广播。

    答案:  

    由于这是一个开发领域、因此可能存在许多 BLE 器件。

    3.您的设备是否作为外围设备或观测器运行? 外设不进行扫描、而是进行广播。 但是观测器会进行扫描。

    答案:

    BLE 角色是 Peripheral+Observer,但一次只能有一个角色工作(由应用控制),而此设备中的大多数超过99%的角色将仅保留为 Observer 角色

    4.你也说

    BLE 始终处于扫描模式、由另一个中心决定。

    如果您处于连接状态、则无法进行扫描。 相反、扫描是可导致连接的过程。     您可能会发现 SimpleLink Academy 的"Scanning and Advertising and Connections (扫描和广播以及连接)"页面 对此有所帮助。

    此致、

    Bhavin P

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

    嗨、Bhavin、

    感谢您的回复。 要快速注释:

    [引用 userid="333720" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1039291/cc2640r2l-scanning-fail-in-runtime/3843703 #3843703"] [/报价]

    很抱歉、如果出现任何混淆、连接后一定可以扫描。 扫描用于发现广播并(如果需要)输入连接。 堆栈应同时管理连接事件和扫描。 Nathan 具体提到的是、在扫描进行期间无法正确处理连接事件(器件不能同时处理 RX 和 TX)。 如果扫描正在进行、堆栈将"暂停"扫描以处理连接事件。

    对于原始问题:是否可以在最新的 SDK 上测试此内容? 您还可以跟踪堆(请参阅  用户指南中的调试常见堆问题)以排除任何内存问题吗? 发生此问题时如何恢复? 即、设备是否断言、或者您是否能够在特定时间后继续扫描?

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

    尊敬的 Ammar:

    感谢您的回答。 如果您将看到我从内开始的查询、那么我已经提到我们使用两种类型的器件、在这两种情况下、我们都面临 相同的问题。

    在一个器件中、它始终处于连接模式+扫描、而在另一个器件中始终处于扫描。

    回答您的问题。

    对于原始问题:

    是否可以在最新的 SDK 上对此进行测试?

    答:我尚未检查最新的 SDK,但您认为这方面是否有任何改进?

    您还可以跟踪堆(请参阅  用户指南中的调试常见堆问题)以排除任何内存问题吗?

    答案:我需要按照指南进行查看

    发生此问题时如何恢复? 即、设备是否断言、或者您是否能够在特定时间后继续扫描?

    ANS:当前我确实重置设备- HCI_RESET()

    此致、

    Bhavin P