亲爱的团队对话框,
我试图玩的连接当前建议在最后和第三个最后的评论在线程:-
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
观察:
1.我发现连接当前是210uA在默认连接间隔配置。(min_interval =10ms, max_interval = 20ms)
2.我发现当min_interval = 300ms, max_interval = 310ms时,连接电流为~25uA
3.最初的电流是100uA,不管连接间隔(2-3秒)。根据连接间隔的配置,当前生效。
查询:
1.从默认配置的10ms移动到连接间隔300ms的不利影响是什么?
2.我知道它会影响吞吐量,但是如果我的用例每天传输几个字节(最大400字节。每天,马克斯。40字节一次),我应该配置什么时间连接间隔?
3.是否有可能在运行时更改连接间隔?如果是,你能给我们指出代码中的api /位置吗?
4.有什么可能的原因比第三个评论中的120uA更当前:-
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
5.你能详细说明观察的原因吗?
如果你需要其他细节,请告诉我。
提前谢谢,
卡兰
设备:
嗨karanshah28,
您能否注明当前消耗测量所关注的程序?我假设你正在获得平均的电流消耗。该系统在广告或连接间隔之间进入睡眠模式。因此,具有更大的连接或广告间隔意味着系统处于睡眠模式,因此功耗将较低。
设备在连接间隔期间发送的数据量取决于中央允许外设发送的数据包。每个选择标准MTU的数据包的有效负载是20字节。所以你发送的每个数据最多可以携带20个字节。您无法控制BLE在连接间隔期间将发送多少数据包,因为这取决于连接的主人,如果他不想接受数据,他只是不会接受它,即使您表示有更多的数据要发送。此外,对于您的应用程序,没有固定的连接间隔。
让我快速描述一下连接参数更新过程:
正在发布广告的外围设备扮演从设备的角色,而正在搜索要连接的设备的扫描设备在连接过程中扮演主设备的角色。后者负责执行各种强制操作,包括传输哪个通道和使用哪个事件间隔。然而,在连接成功后,从设备可以通过更新连接参数请求提出自己的首选参数(连接间隔、监控超时等)。在那之后,如果主人的要求得到批准,主人就对奴隶作出回应。为此,外围设备发送连接参数更新请求,协商过程将通过空中进行,如果推荐被批准,将发生连接参数更新事件。有关更新连接参数的更多信息,请参阅蓝牙LE规范。
user_gapm_conf结构保留用户的配置,并且设备在连接时将从这个结构获得连接间隔。user_connection_param_conf保留连接参数更新配置。连接间隔由中心定义,因此您可以做的是发出连接更新请求,中心将决定是否接受您请求的连接参数。如果当前参数不匹配将会发送一个请求到中央为了更新连接参数(请求发送建立连接后10秒),所以如果中央接受参数值指定的连接将改变user_connection_param_conf结构。
关于1个连接事件,您如何测量它?您应该像附加的成像一样衡量它。这是1个连接事件。我的电力分析仪进行此测量。
谢谢,PM_Dialog
谢谢你的简短解释。
我们将很快与您分享我们如何测量电流的细节。
在我们的测试中,我们发现当我们设置连接间隔超过100ms时,我们会看到中心设备和da14586之间的断开。
中方对此有何评论?这是预期行为吗?或者设备应该保持连接?
还有,有没有办法改善这种情况?
嗨对话小组,
等待您的回复。
谢谢,卡兰
嗨,卡兰,
你连接的是哪个中心设备?
BR,Paolo.
嗨,保罗,
我们正在尝试与Android手机连接。
谢谢,Karan.
你好,
我在之前的帖子中看到你谈到了一个范围扩展器,你在这里也使用它吗?
您使用的是定制PCB或我们的专业初学者工具包+我们的女儿板?
在哪个距离是来自董事会的Android手机?
BR,Paolo.
你好,
我们正在使用射程扩展器。
我们使用自定义PCB。
距离是3m。
谢谢,卡兰
你好,
当MIN间隔为10ms时,我们甚至断开连接,最大间隔为300ms
你能提供减少电流的10ms分钟间隔和20ms最大间隔以外的连接设置吗?
嗨karanshah28,
由于不需要高的延迟,也许您可以尝试:
intv_min: 300毫秒
INTV_MAX:400ms
延迟:0
connect_timeout: 5 s
Br
宜宾
你好,
我们用你们的参数进行了测试,但设备断开了。
我们用多个中心设备和浅蓝色应用程序进行了测试。
你能不能给我们一些新的设置,让我们可以有连续的连接和连接间隔,而不是10ms和20ms
——卡兰
我误点击了“接受答案”链接。请忽略它
——卡兰
嗨对话小组,
我们能快速解决断开问题吗?
我们的目的是保持与中央设备的连接,在这种情况下可以是android或iOS手机。一旦连接,我们就永远不会断开。只有当中心或外围被移离ble范围时,我们才会断开连接。感谢您的及时帮助。
问候,卡兰
嗨,卡兰,
你能否确认不同的连接参数会导致不同的结果?对于这个用例,什么连接参数是好的?
你能说出断开原因代码吗?您可以在断开事件回调函数(user_app_on_disconnect())中打印它。
Br
宜宾
你好,
对于相同的连接参数,我们看到了不同的观察。
第一次设备在1小时后与5分钟后断开连接,第二个时间设备在17分钟内断开连接。
断开原因的时间都在断开回调时为0x13。
如果需要更多信息,请告诉我们。
断开连接的问题是什么?
有什么我们可以调整连接参数并解决这个问题吗?
问候,
卡兰
嗨Karanshah28,
0x13表示超时断开连接。
以下是我能想到的所有可能的原因:
1.应用程序(中心设备)被手机系统杀死。
2.在固件中,无法及时处理BLE事件。这意味着,固件中有很长的时间,这会阻止您的主要过程。
3.射频性能不佳。例如,射频TX的功率较弱,或频率偏移量较大等。
4.您的移动电话和设备之间存在兼容性问题。在这种情况下,请尝试另一部手机进行测试。
Br
宜宾
亲爱的支持团队,
谢谢你的更新。
所以在4个原因中我们必须找出真正的原因。为此我们做了下面的实验。
我们将ble_all_in_one项目二进制flash到板,并与手机连接板。
连接建立并连接到7小时2分钟后,该设备被断开,断开原因0x8。
然而,性能是好的ble_all_in_one固件,但仍然设备断开连接。
那么原因是什么呢?
1)移动应用程序没有崩溃,因为我收到了应用程序中的断开消息。我有附加截图。
2)现在我猜我们可以说它不是因为在固件中的长过程,因为我们使用了BLE_ALL_IN_ONE。如果我错了,请纠正我。
3)射频性能不佳。我不确定。请注意,我们已经在我们的板上使用了范围扩展器SKY66111-11。是否有办法检查射频性能是否是问题所在?
是否有其他方法或建议可以找出问题的根本原因?
问候,
卡兰
嗨karanshah28,
有各种各样的原因可以断开连接,如移动对等设备的范围外,电源故障条件,一些干扰等。根据蓝牙LE规范,由于上述原因可能发生,没有任何事先警告,这是重要的
Master和Slave监视连接的状态。为此,中环和外围设备都应使用链路层连接监控定时器,以便检测链路损耗。有关此主题的更多信息,请参阅蓝牙核心规范。在sdk的user_connection_param_conf配置结构中,有一个名为的参数。超时。这是连接监控超时,它定义了两个接收到的数据包PDU之间的最长时间
连接被视为丢失。根据核心规范,连接监督超时时间应在100 ms - 32.0 sec范围内为10 ms的倍数,并大于
(1 + connection_latency)* connection_interval * 2.您已设置给设备的监控超时?如果设置较长的超时,设备将需要更多的时间才能断开连接或无法断开连接?co_error_con_timeout = 0x08错误是连接超时错误代码,指示链路监控超时已过期为给定连接。
谢谢,PM_Dialog
亲爱的支持团队,
我们使用ble_all_in_one作为我们的基本代码,并添加了一些变化(范围扩展芯片驱动程序//www.wsdof.com/sites/default/files/rext_sky66111-1..。+一些产品级别的变化)之上的代码。
我们在使用固件后15分钟内观察到2小时内的两次断开连接。
为了进一步调试这个问题,我们做了以下实验:
请注意,我们在我们的设计中使用范围扩展器芯片:Sky66111。
以下是所有观察结果的总结:
1)我们在董事会中闪现了固件,并观察到2小时内的断开连接,有时在15分钟内。
我们的固件是ble_all_in_one +范围扩展驱动程序+一些产品有关的变化。
2)然后发现断开的问题,我们将ble_all_in_one固件二进制文件闪进DA14586 EVM板,10个小时没有观察到断开。
3)然后,我们闪ble_all_in_one固件二进制到我们的板,并观察到相同的结果,即没有观察到断开连接10小时。
4)然后我们假设有一些问题在我们的固件,因为我们没有观察到与ble_all_in_one代码的断开与我们的板。
5)然后我们从我们的固件代码中移除范围扩展驱动程序的支持,即我们的固件代码将是ble_all_in_one +一些产品有关的变化。
在这种情况下,我们也没有观察到与手机断开连接超过9小时。
因此,根据这个实验,我们得出结论,增程器驱动程序存在一些问题。
这个问题的根本原因是什么?
距离扩展器芯片的断开是已知问题吗?
有什么解决办法吗?
供你参考,手机总是在我们测试的pcb旁边。如果需要,我们可以分享代码。
感谢致敬,
卡兰
嗨,支持团队,
你能更新这个吗?这对我们来说是阻止问题。
问候,卡兰
嗨karanshah28,
请检查代码是否在断开连接后运行或陷入困境?例如,断开连接后,应用程序是什么?断开后设备是否再次启动广告?在断开连接后是否能够在空中检测到空气中,而不重置电路板?您是否可以使用BLE嗅探器才能检查通过空中传输的数据包?
哪个是断开的原因代码?您可以在断开事件回调函数中打印出来(User_App_On_disconnect()),因为它在帖子中已提及。
我读了你的帖子,我发现断开的原因是0x13。你能肯定吗?
在断开回调中,断开原因的时间都是0x13。
0x13 (CO_ERROR_REMOTE_USER_TERM_CON)错误码,命名为REMOTE USER TERMINATED CONNECTION,表示远端设备上的用户终止了连接。你有自定义的移动应用程序吗?
“我们在主板上闪过我们的固件,并在2小时内观察到断开连接,有时也在15分钟内。我们的固件是ble_all_in_one +范围扩展驱动程序+一些有关改变的产品。”
您是否拥有Range Extender参考设计,以便尝试复制此问题?您是否在ble_all_in_one中完成了任何修改?
“然后为了找到断开的问题,我们将ble_all_in_one固件二进制文件闪进DA14586 EVM板,10个小时内没有观察到断开。”
你能澄清董事会吗?你的意思是pro dk或585 range extender?
然后,我们闪ble_all_in_one固件二进制到我们的板,并观察到相同的结果,即没有观察到断开连接10小时。
结果和下面一样吗?断开没有发生。还有,有还是没有SkY66111?
“然后我们从我们的固件代码中删除了范围扩展驱动程序支持,即我们的固件代码将是BLE_ALL_IN_ONE +一些产品有关更改的产品。
在这种情况下,我们也没有观察到与手机断开连接超过9小时。”
您能否在您提到的司机分享更多澄清?
最好创建一个新的论坛帖子,以便更好地跟踪断开连接的问题,因为最初的帖子是与当前的连接消耗相关的。但这取决于你。
谢谢,PM_Dialog