亲爱的团队对话框,
我试图玩的连接当前建议在最后和第三个最后的评论在线程:-
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
观察:
1.我发现连接电流为210UA,默认连接间隔配置。(min_interval = 10ms,max_interval = 20ms)
2.我发现当min_interval = 300ms, max_interval = 310ms时,连接电流为~25uA
3.最初,无论连接间隔(2-3秒),最初就是100uA。之后基于连接间隔配置,当前生效。
查询:
1.从默认配置的10ms移动到300ms的连接间隔有什么不利影响?
2.我知道它会影响吞吐量,但是如果我的用例每天传输几个字节(最大400字节。每天,马克斯。40字节一次),我应该配置什么时间连接间隔?
3.是否可以更改连接间隔运行时?如果是,您可以指向代码中的API /地点吗?
4.与120UA相比,在第三次上次评论中建议的120岁以下的可能原因是什么: -
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
5.你能详细说明观察的原因吗?
如果您需要任何其他细节,请告诉我。
提前谢谢,
Karan.
设备:
嗨Karanshah28,
能否请您指出您目前的耗电量测量所遵循的程序?我假设你得到的是平均电流消耗。在发布广告或连接间隔之间,系统进入睡眠模式。因此,拥有更大的连接或发布间隔意味着系统处于睡眠模式的时间更长,因此功耗将更低。
设备在连接间隔期间发送的数据量取决于中央允许外设发送的数据包。每个选择标准MTU的数据包的有效负载是20字节。所以你发送的每个数据最多可以携带20个字节。您无法控制BLE在连接间隔期间将发送多少数据包,因为这取决于连接的主人,如果他不想接受数据,他只是不会接受它,即使您表示有更多的数据要发送。此外,对于您的应用程序,没有固定的连接间隔。
让我快速描述您的连接参数更新过程:
作为广告的外围设备假设从设备的作用,而正在搜索用于连接到设备的扫描仪设备,则在连接过程上假设主设备的作用。后者,负责执行各种强制性的操作,包括要传输的频道以及要使用的事件间隔。但是,在成功的连接之后,从设备可以通过更新连接参数请求提出其自己的优选参数(连接间隔,监控超时等)。之后,如果已获批准,主人会响应奴隶。为此,外围设备发送连接参数更新请求,协商过程将发生在空中,如果已批准,则会发生连接参数更新的事件。有关更新连接参数,请参阅蓝牙LE规范。
user_gapm_conf结构保持用户的配置,并且在连接时设备将具有来自此结构的连接间隔。user_connection_param_conf保留连接参数更新配置。连接间隔由中央定义,因此您可以做的是发出连接更新请求,中央将决定它是否会接受您所要求的连接参数。If the current parameters don’t match will send a request to the central in order to update the connection parameters (the request is sent 10 seconds after the connection is established), so if the central accepts the parameters the connection will change to the specified values in the user_connection_param_conf structure.
关于1个连接事件,你是如何衡量它的?你应该像附件中的图像那样测量它。这是一个连接事件。我功率分析仪为此测量。
谢谢,PM_Dialog
谢谢你的简短解释。
我们将分享您的详细信息,我们如何衡量当前。
在我们的测试中,我们发现当我们设置连接间隔超过100ms时,我们会看到中心设备和da14586之间的断开。
你对此有什么意思?这是预期的行为吗?或设备应保持连接?
另外,有没有办法改善这个?
嗨,对话框的团队,
等待您的回复。
谢谢,卡兰
嗨Karan,
哪个是您连接的中心设备?
BR,保罗
嗨Paolo,
我们正试图与Android手机连接。
谢谢,卡兰
你好,
我在前一个线程中看到你谈到了一个范围扩展器,你还在这里使用吗?
您是否使用了自定义PCB或我们的Pro Starter Kit +我们的Daugther Loard?
Android手机与电路板的距离是多少?
BR,保罗
你好,
我们正在使用范围扩展器。
我们使用的是定制pcb。
距离是3m。
谢谢,卡兰
你好,
当最小间隔为10ms,最大间隔为300ms时,我们甚至会断开连接
你能提供减少电流的10ms分钟间隔和20ms最大间隔以外的连接设置吗?
嗨Karanshah28,
由于不需要高吞吐量,也许你可以尝试:
INTV_MIN:300ms.
intv_max: 400毫秒
延迟:0
connect_timeout:5s.
Br
宜宾
你好,
我们使用参数进行了测试,但设备断开连接。
我们用多个中心设备和浅蓝色应用程序进行了测试。
您能否向我们建议我们可以使我们拥有除10ms和20毫秒以外的连续连接和连接间隔的新设置
——卡兰
我误点击了“接受答案”链接。请忽略它
——卡兰
嗨,对话框的团队,
我们能快速解决断开问题吗?
我们的目的是保持连接到中央设备,在这种情况下可以是Android或iOS手机。一旦连接,我们从不断开连接。如果中央或外围设备远离BLE范围,我们只会断开连接。感谢您对此的及时帮助。
问候,卡兰
嗨Karan,
你能否确认不同的连接参数会导致不同的结果?对于这个用例,什么连接参数是好的?
你能说出断开原因代码吗?您可以在断开事件回调函数(user_app_on_disconnect())中打印它。
Br
宜宾
你好,
对于相同的连接参数,我们看到了不同的观察。
第一次装置在1小时5分钟后断开,第二次装置在17分钟后断开。
在断开回调中,断开原因的时间都是0x13。
如果需要更多信息,请告诉我们。
断开连接的问题是什么?
有什么我们可以调整连接参数并解决这个问题吗?
问候,
Karan.
嗨Karanshah28,
0x13表示超时断开连接。
以下是我可以想到的所有可能原因:
1.应用程序(中央设备)被手机系统杀死。
2.在固件中,ble事件无法及时处理。这意味着,在你的固件中有一个长时间的进程,这将阻塞你的主进程。
3.射频性能不好。例如,RF TX的功率较弱,或者频率偏移量大等。
4.手机和设备之间存在兼容性。在这种情况下尝试另一个手机进行测试。
Br
宜宾
亲爱的支持团队,
感谢更新。
所以在4个原因中我们必须找出真正的原因。为此我们做了下面的实验。
我们将BLE_ALL_IN_ONE项目二进制文件二进制于电路板和带有手机的连接板。
该连接建立并连接到7小时,2分钟后,该设备与断开原件断开连接0x8。
但是,BLE_ALL_IN_ONE固件中的性能很好,但仍然已断开连接。
那么原因是什么呢?
1)手机应用没有因为我在应用中收到了断开连接的消息而崩溃。我附上了同样的截图。
2)现在我想我们可以说这不是因为固件的长进程,因为我们使用了ble_all_in_one。如果我错了,请纠正我。
3)RF性能不好。不确定这一点。请注意,我们在董事会中使用了频率扩展Sky66111-11。有没有办法检查rf性能是问题吗?
是否有其他方法或建议可以找到问题的根本原因?
问候,
Karan.
嗨Karanshah28,
有各种各样的原因可以断开连接,如移动对等设备的范围外,电源故障条件,一些干扰等。根据蓝牙LE规范,由于上述原因可能发生,没有任何事先警告,这是重要的
主服务器和从服务器监控连接的状态。为了做到这一点,中央和外围都应该使用链路层连接监督计时器,以检测链路丢失。有关此主题的更多信息,请参阅蓝牙核心规范。在SDK的user_connection_param_conf配置结构中,有一个名为。time_out。这是连接监督超时,它定义了两个收到的数据包pdu之间的最大时间
连接被视为丢失。根据核心规范,连接监督超时时间应在100 ms - 32.0 sec范围内为10 ms的倍数,并大于
(1 + connection_latency) * connection_interval * 2。您为设备设置的监督超时时间是多少?如果设置的超时时间越长,设备断开连接的时间就会越长或者是无法断开?CO_ERROR_CON_TIMEOUT = 0x08错误是Connection Timeout错误码,表示给定连接的链路监督超时已经过期。
谢谢,PM_Dialog
亲爱的支持团队,
我们正在使用BLE_ALL_IN_ONE作为我们的基本代码,并添加了一些更改(范围扩展器芯片驱动程序https://www.dialog-seminile.com/sites/default/files/rext_sky66111-1 ...+一些产品级别的变化)之上的代码。
我们观察到我们的固件在2小时内断开,有时在15分钟内断开。
要进一步调试此问题,我们确实在实验之后:
请注意,我们在设计中使用的是射程扩展芯片SkY66111。
以下是所有观察结果的总结:
1)我们闪现我们的固件在我们的板和观察断开2小时的时间,有时在15分钟内也。
我们的固件是BLE_ALL_IN_ONE + RANGE扩展器驱动程序+有关更改的一些产品。
2)然后找到断开的问题,我们将BLE_ALL_IN_ONE FIRINE BINARE BINAR BINARD DO14586 EVM板闪烁,未观察到断开10小时。
3)然后,我们闪ble_all_in_one固件二进制到我们的板,并观察到相同的结果,即没有观察到断开连接10小时。
4)然后我们假设有一些问题在我们的固件,因为我们没有观察到与ble_all_in_one代码的断开与我们的板。
5)然后我们从我们的固件代码中删除了范围扩展器驱动程序支持,即我们的固件代码将是BLE_ALL_IN_ONE +一些产品有关更改的产品。
在这种情况下,我们也没有观察到与手机断开连接超过9小时。
因此,根据这个实验,我们得出结论,增程器驱动程序存在一些问题。
这个问题的根本原因是什么?
这个问题是否与range扩展器芯片断开连接是已知的问题?
有没有解决方案?
供你参考,手机总是在我们测试的pcb旁边。如果需要,我们可以分享代码。
感谢和问候,
Karan.
嗨支持团队,
你能介绍一下最新情况吗?这对我们来说是阻碍问题。
问候,卡兰
嗨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射程扩展器?
然后,我们将BLE_ALL_IN_ONE FIRIN DINARY闪存到我们的电路板上,并观察到相同的结果,即未观察到10小时的断开连接。
与下面的结果相同?断开连接没有发生。?另外,有或没有SKY66111?
“然后我们从我们的固件代码中移除范围扩展驱动程序的支持,即我们的固件代码将是ble_all_in_one +一些产品有关的变化。
在这种情况下,我们也没有观察到与手机断开连接超过9小时。”
你能解释一下你提到的司机吗?
创建一个新的论坛帖子是最好追踪断开的问题,因为初始帖子与连接电流消耗有关。但这取决于你。
谢谢,PM_Dialog