亲爱的对话团队,
我试图通过在螺纹上次和第三条评论中建议的连接电流进行游戏: -
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
观察结果: -
1.我发现连接电流为210UA,默认连接间隔配置。(min_interval = 10ms,max_interval = 20ms)
2.当MIN_INTERVAL = 300ms时,我发现连接电流为〜25ua,max_interval = 310ms
3.无论连接间隔(2-3秒)如何,初始电流都是100uA。之后根据配置的连接间隔时间,当前生效。
查询: -
1.从默认配置的10ms移动到连接间隔300ms的不利影响是什么?
2.我明白它可以影响吞吐量,但如果我的usecase每天传输几个字节(最多400字节。每天,最多40个字节),我应该如何配置时间?
3.是否可以在运行时更改连接间隔?如果是,你能告诉我们代码中的api /位置吗?
4.与120UA相比,在第三次上次评论中建议的120岁以下的可能原因是什么: -
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
5.您能详细说明3次观察原因吗?
如果你还需要其他细节,请告诉我。
提前致谢,
卡兰
设备:
嗨karanshah28,
您能否注明当前消耗测量所关注的程序?我假设你正在获得平均的电流消耗。该系统在广告或连接间隔之间进入睡眠模式。因此,具有更大的连接或广告间隔意味着系统处于睡眠模式,因此功耗将较低。
设备在连接间隔期间发送的数据量取决于中央允许发送外围设备的数据包。具有标准MTU选择的每个数据包的有效载荷为20字节。所以您发送的每个数据都可以载有20个字节。You can't control the how many packets the BLE will send during a connection interval because is up to the master of the connection, if he doesn't want to accept the data he just won’t accept it even if you indicate that you have more data to send. In addition, there are is not a fixed connection interval regarding your application.
让我快速描述一下连接参数更新过程:
作为广告的外围设备假设从设备的作用,而正在搜索用于连接到设备的扫描仪设备,则在连接过程上假设主设备的作用。后者,负责执行各种强制性的操作,包括要传输的频道以及要使用的事件间隔。但是,在成功的连接之后,从设备可以通过更新连接参数请求提出其自己的优选参数(连接间隔,监控超时等)。之后,如果已获批准,主人会响应奴隶。为此,外围设备发送连接参数更新请求,协商过程将发生在空中,如果已批准,则会发生连接参数更新的事件。有关更新连接参数,请参阅蓝牙LE规范。
user_gapm_conf结构保持用户的配置,连接时的设备将从这个结构获得连接间隔。user_connection_param_conf保持连接参数更新配置。连接间隔是由中心定义的,所以您可以做的是发出一个连接更新请求,然后中心将决定是否接受您所请求的连接参数。如果当前参数不匹配将会发送一个请求到中央为了更新连接参数(请求发送建立连接后10秒),所以如果中央接受参数值指定的连接将改变user_connection_param_conf结构。
关于1个连接事件,您如何测量它?您应该像附加的成像一样衡量它。这是1个连接事件。我的电力分析仪进行此测量。
谢谢,PM_DIALOG.
谢谢你的简要说明。
稍后我们将与您分享我们如何测量电流的细节。
在我们的测试中,我们发现当我们设置高于100ms的连接间隔时,我们会看到中央设备和DA14586之间的断开连接。
你对此有什么意思?这是预期的行为吗?或设备应保持连接?
还有,有什么方法可以改善这一点吗?
嗨对话小组,
等待你的答复。
谢谢,Karan.
嗨,卡兰,
你连接的中心设备是哪个?
BR,Paolo.
嗨,保罗,
我们正在尝试连接Android手机。
谢谢,Karan.
你好,
我在之前的帖子中看到你谈到了一个范围扩展器,你在这里也使用它吗?
您使用的是定制PCB还是我们的专业初学者工具包+子板?
在哪个距离是来自董事会的Android手机?
BR,Paolo.
你好,
我们正在使用测距仪。
我们使用自定义PCB。
距离为3米。
谢谢,Karan.
你好,
当MIN间隔为10ms时,我们甚至断开连接,最大间隔为300ms
您是否可以提供10毫秒最小间隔和20毫秒最大间隔的连接设置,这会降低电流?
嗨karanshah28,
由于不需要高的延迟,也许您可以尝试:
intv_min: 300毫秒
INTV_MAX:400ms
延迟:0
connect_timeout: 5 s
布尔
宜宾
你好,
我们使用参数进行了测试,但设备断开连接。
我们用多个中央设备和浅蓝色应用测试了这一点。
你能建议我们任何新的设置,使我们有连续连接和连接间隔超过10毫秒和20毫秒吗
- 卡伦
我错误地点击了“接受答案”链接。请忽略它
- 卡伦
嗨对话小组,
我们可以快速解决是否脱离问题?
我们的目的是保持与中央设备的连接,在这种情况下,可以是android或iOS手机。一旦连接,我们就永远不会断开。只有当中心或外围设备远离正常范围时,我们才会失去联系。感谢你的及时帮助。
问候,卡兰
嗨,卡兰,
您可以确认不同的连接参数会导致不同的结果吗?连接参数适用于此用例吗?
你能告诉断开的原因代码吗?您可以在断开事件回调函数中打印出来(user_app_on_disconnect())。
布尔
宜宾
你好,
对于相同的连接参数,我们看到了不同的观察。
第一次设备在1小时后与5分钟后断开连接,第二个时间设备在17分钟内断开连接。
断开原因的时间都在断开回调时为0x13。
如果需要更多信息,请告诉我们。
什么可能是断开的问题?
有什么我们可以调整连接参数,可以解决问题吗?
问候,
卡兰
嗨Karanshah28,
0x13表示超时断开连接。
以下是我能想到的所有可能的原因:
1.应用程序(中央设备)被手机系统杀死。
2.在固件中,无法及时处理BLE事件。这意味着,固件中有很长的时间,这会阻止您的主要过程。
3.射频性能不佳。例如,RF TX的功率较弱,或频率偏移较大等。
4.您的手机和设备之间存在兼容性问题。在这种情况下,请尝试另一部手机进行测试。
布尔
宜宾
亲爱的支持团队,
谢谢你的最新消息。
出于4个理由,我们必须找出实际原因。为此,我们确实在实验之后。
我们将BLE_ALL_IN_ONE项目二进制文件二进制于电路板和带有手机的连接板。
连接建立并连接到7hours and 2min后,该设备因断开原因0x8断开。
然而,ble_all_in_one固件的性能很好,但设备仍然断开连接。
那么这里有什么原因?
1)移动应用程序没有崩溃,因为我收到了应用程序中的断开消息。我有附加截图。
2)现在我猜我们可以说它不是因为在固件中的长过程,因为我们使用了BLE_ALL_IN_ONE。如果我错了,请纠正我。
3)射频性能不好。我不确定。请注意,我们在板上使用了航程扩展器SKY66111-11。有没有办法检查射频性能是否有问题?
是否有其他方法或建议可以找到问题的根本原因?
问候,
卡兰
嗨karanshah28,
有各种原因可以破坏连接的连接,例如将同行设备超出范围,电源故障条件,多个干扰等根据蓝牙LE规范,因为上述原因可能发生在没有任何先前警告的情况下,这是重要的对于这两者来说
Master和Slave监视连接的状态。为此,中环和外围设备都应使用链路层连接监控定时器,以便检测链路损耗。有关此主题的更多信息,请参阅蓝牙核心规范。在sdk的user_connection_param_conf配置结构中,有一个名为的参数。暂停。这是连接监控超时,它定义了两个接收到的数据包PDU之间的最长时间
连接被认为是丢失的。根据核心规格,连接监管超时应为10毫秒的10毫秒的倍数为32.0秒,它应大于
(1 + connection_latency)* connection_interval * 2.您已设置给设备的监控超时?如果设置较长的超时,设备将需要更多的时间才能断开连接或无法断开连接?co_error_con_timeout = 0x08错误是连接超时错误代码,指示链路监控超时已过期为给定连接。
谢谢,PM_DIALOG.
亲爱的Suport团队,
我们使用ble_all_in_one作为我们的基本代码,并添加了一些更改(范围扩展芯片驱动程序//www.wsdof.com/sites/default/files/rext_sky66111-1..。+一些产品级别更改)在该代码之上。
我们在使用固件后15分钟内观察到2小时内的两次断开连接。
为了进一步调试这个问题,我们做了以下实验:
请注意,我们在我们的设计中使用范围扩展器芯片:Sky66111。
以下是所有观察的摘要:
1)我们在董事会中闪现了固件,并观察到2小时内的断开连接,有时在15分钟内。
我们的固件是ble_all_in_one + Range扩展驱动+一些有关更改的产品。
2)然后为了找到断开的问题,我们将ble_all_in_one固件二进制写入DA14586 EVM板,10小时没有观察到断开。
3)然后,我们将BLE_ALL_IN_ONE Fireware二进制闪烁到我们的电路板中,并观察到相同的结果,即未观察到10小时的断开连接。
4)然后我们假设我们的固件中存在一些问题,因为我们没有观察到与我们的电路板的BLE_ALL_IN_ONE代码断开连接。
5)然后我们从我们的固件代码中删除了Range扩展器驱动支持,即我们的固件代码将是ble_all_in_one +一些有关更改的产品。
在这种情况下,我们也没有观察到移动电话断开超过9小时。
因此,基于此实验,我们得出的结论是,范围扩展器驱动程序存在一些问题。
这个问题的根本原因是什么?
这个与量程扩展芯片断开的问题是已知的问题吗?
对此有什么解决方案吗?
FYI,移动总是在我们进行测试的PCB旁边。如果需要,我们可以共享代码。
感谢致敬,
卡兰
嗨,支持团队,
你能更新这个吗?这对我们来说是阻止问题。
问候,卡兰
嗨karanshah28,
请检查代码是否在断开连接后运行或陷入困境?例如,断开连接后,应用程序是什么?断开后设备是否再次启动广告?在断开连接后是否能够在空中检测到空气中,而不重置电路板?您是否可以使用BLE嗅探器才能检查通过空中传输的数据包?
哪个是断开的原因代码?您可以在断开事件回调函数中打印出来(User_App_On_disconnect()),因为它在帖子中已提及。
我读了你的帖子,我发现断开的原因是0x13。你能肯定吗?
在disconnect callback中断开原因的时间都是0x13
0x13(co_error_remote_user_term_con)错误代码,命名远程用户终止连接,并指示远程设备上的用户终止了连接。你有自定义移动应用程序吗?
“我们在我们的板上闪烁我们的固件,观察到2小时内断开,有时也在15分钟内。我们的固件是ble_all_in_one + Range扩展驱动+一些有关更改的产品。”
您是否拥有Range Extender参考设计,以便尝试复制此问题?您是否在ble_all_in_one中完成了任何修改?
“然后找到断开的问题,我们将BLE_ALL_IN_ONE FIRICWARE二进制闪存到DA14586 EVM板中,未观察到10小时的断开连接。“
你能澄清董事会吗?你的意思是pro dk或585 range extender?
然后,我们将ble_all_in_one固件二进制写入我们的板,观察到相同的结果,即10小时内没有观察到断开。
和下面的结果一样吗?断开没有发生。另外,有没有SkY66111?
“然后我们从我们的固件代码中删除了范围扩展驱动程序支持,即我们的固件代码将是BLE_ALL_IN_ONE +一些产品有关更改的产品。
在这种情况下,我们也没有观察到移动电话断开超过9小时。“
您能否在您提到的司机分享更多澄清?
创建一个新的论坛帖子是最好追踪断开的问题,因为初始帖子与连接电流消耗有关。但这取决于你。
谢谢,PM_DIALOG.