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.

[参考译文] CC2541:连接稳定性问题

Guru**** 2590580 points
Other Parts Discussed in Thread: CC2541

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/597828/cc2541-issues-with-connection-stability

器件型号:CC2541

我们的客户遇到 CC2541的 BLE 连接稳定性问题。
情况如下- CC2541用作中央器件、最多可连接3个基于非 TI 器件构建的外设器件。 中央设备监视是否有任何外围设备在附近、一旦找到了外围设备、就会建立连接。 因此、它不使用低功耗模式并持续扫描器件(1秒扫描、然后短暂暂停 以进行处理、然后再次扫描)。

问题是、有时连接会意外中断、或者建立连接需要很长的时间。 绑定过程中会发生中断-初始连接(广播、连接请求等)在没有任何中断的情况下平稳运行、但在绑定阶段加密通道时、连接会中断。 另一个问题是、该问题不是100%可重复的、因此再次出现该问题需要大量时间。 连接中断、错误为0x08或0x3E

CC2541从外部 MCU 获取32kHz 时钟、我们检查了信号、看起来不错(50%占空比、3V 振幅)。

有什么想法要检查什么以及如何处理该问题?

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

    粘接期间是否可能发生 SNV 中的闪存压实? 由于此器件上的 CPU 和闪存擦除/写入执行时间不允许其满足连接时序要求(发布的限制)、CC2541可能会断开连接。 我建议应用 BLE 论坛顶部固定的"CC254x with Android 6.x Marshmallow & 7.x [2016年10月更新]"帖子中提供的 findItem() OSAL SNV 优化。 这将减少 SNV 中的查找时间。

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    客户已经尝试了建议的修复、但没有帮助。
    在实验过程中、他们发现、当尝试显示"IT List"功能时、会显示类似的行为(在两种情况下都会出现连接错误-使用和不使用白名单、但使用白名单时、情况更频繁-他们在列表中有3个设备)
    当客户尝试使用监听器时、通常可以在一切正常运行时保存连接的日志(请参阅逐行扫描日志 cc2541_connect_ok.psd)。 如果存在连接错误、监听器会在中央设备发送连接请求(cc2541_connect_error.psd)后挂起、并在复位后重复出现该情况。 外设器件地址为0xE4D5149923B3。
    现在有两个问题
    -如何设置监听器以便它可以跟踪所有流量?
    -如何正确使用白名单功能(以下是客户使用的程序)?
    1. CC2541硬件复位。
    使用 GAP_SetParameter (0xFE30)为器件设置时间范围(扫描窗口、连接间隔等)
    使用 HCI_LEADDEVICETOWHITELIST (0x2011)、他们编写允许连接的外设地址(如果有具有随机地址的器件、则跳过步骤)
    使用 GAP_DEVICEINIT (0xFE00)、它们初始化 BLE。
    5、通过 GAP_DEVICEDISCOVERYREQUEST (0xFE04)、他们开始发现外设。

    另一个问题-对于扫描窗口、连接间隔等是否有任何建议、因此中央设备可以更好地耐受与外围设备的某些时序不匹配?

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

    不清楚白名单会影响连接稳定性的原因、因为白名单仅用于在建立连接之前过滤设备。 关于 OP 的问题、是否确定在故障同时发生了闪存压缩?

    使用的连接间隔是多少? 是否可以在禁用节能(xPOWER_Saving)的情况下运行测试以排除32k 时钟作为影响因素? 我建议不要使用白名单并解决最初报告的问题。

    我不确定"容忍与外设的某些时序不匹配"在扫描参数方面意味着什么。 外设应符合无线接口时序的蓝牙规范。 扫描参数仅决定中央/扫描仪何时主动或被动扫描广播器。

    您是否可以访问 Ellisys、Frontline 监听器或类似的监听器、以便进行精确的计时分析? 这在这里会很有帮助。

    此外、您的帖子似乎没有附带任何监听器文件。 请使用丰富的格式附加文件。

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

    e2e.ti.com/.../cc254x_5F00_connect_5F00_error.psd

    Jeff、

    当他们使用白色列表时、他们也会遇到与之前观察到的类似的问题、但它们发生得更频繁-即设备无法建立连接、并且会出现类似的症状。

     对于有关潜在闪存压缩问题的建议修复-此修复不会改变行为、即它们仍然遇到连接问题。

    我已将监听器日志附加到该线程。

    BR、

    Ilya

    e2e.ti.com/.../cc254x_5F00_connect_5F00_ok.psd 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一些其他信息:
    1.连接参数:
    #define BLE_HI_CONN_INTERVE_MIN 16 // 20 ms (n * 1.25 ms)
    #define BLE_HI_CONN_INTERVE_MAX 16 // 20 ms (n * 1.25 ms)
    #define BLE_HI_SLAVE_DERA延迟 0 //
    #define BLE_HI_CONN_TIMEOUT 101 // 1s 监控超时

    2.当客户关闭 xPOWER_Saving 时,在100%情况下建立连接,但在大约1秒后中断(带有白色列表)。

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

    我想回到您的第一篇帖子。 如果仅连接了一个设备、它们是否会看到连接中断?
    另外、如果没有进行扫描、他们是否会看到连接中断、扫描间隔、扫描窗口和扫描持续时间是多少?

    他们能否将超时更改为10s 以查看是否看到断开连接:
    #define BLE_HI_CONN_TIMEOUT 1001 // 10s 监控超时

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    扎希德
    关闭 xPOWER_SAVing 且监控超时10秒看起来连接更加稳定(至少测试10分钟)。
    那么、问题是如何在省电模式开启时实现稳定连接。
    请提供建议。

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

    他们是否有任何方法可以使用32k 晶振而不是外部时钟信号进行测试?

    他们是否还可以尝试将时钟分频为200 - 400 mV 幅度?

    我假设时钟已按照应用手册中的说明进行连接、对吧? www.ti.com/.../swra409a.pdf

    此致、
    Fredrik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Fredrik、Zahid、
    您能否告知在连接建立时间和连接状态下 CC2541的扫描窗口、监控超时等的建议时序参数。
    什么使客户感到困惑-为什么我们建议10秒而不是2秒或5秒? 为什么它能使连接更稳定?
    只有在连接时才重要、而在建立连接后、它们才可以更改监控超时以使其更短?

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

    没有特定的推荐参数、但建议留出不同的 BLE 过程来避免碰撞。
    这基于应用程序(连接数、扫描和广播过程)。 其中一些过程的参数(与 CC254x 中使用的参数相同)在以下位置进行了说明: dev.ti.com/.../

    10s 只是一个保守数字、当数据包丢失的可能性增加时(尤其是在同时调度多个过程和外部无线电干扰期间)、增加超时时间会使连接更加可靠。

    是的、建立连接后可以更改超时和间隔。 您可以在连接期间使用更长的超时时间和连接间隔、然后在连接和配对完成后进行更改。

    祝你一切顺利