⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
19个职位/ 0个新职位
最后发表
谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
连接滴

你好,

我正在实验一对DA14531 TINY模块通过使用codeless_531_standalone_set_twoo .hex通过CP2104上的2线UART和USB/UART转换器连接到计算机。按照UM-B-140第3.3节所述,在它们之间建立连接。但问题是,模块在大约3分钟后断开连接。是否有可能修复它,使连接将永远保持活动状态?

另外两个预编译固件映像(codeless_531_standalone。hex和codeless_531_datapump.hex)没有这个缺点,但我需要I2C支持。我从源代码重新编译了standalone_set_two项目,但它仍然在2-3分钟后断开连接。如果我通过添加I2C特性重新编译SET ONE固件,也会发生同样的情况。对话小组-请告知如何修复此问题。

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
Sergei Bezroukov嗨

Sergei Bezroukov嗨

谢谢你的问题。

>>>但问题是模块断开连接约3分钟。

你能否进一步介绍有关情况?当连接中断时?你有发送任何具体的AT命令吗?你能在调试模式下运行吗?

> > > I2C的支持

你的意思是有一个I2C接口连接到TINE模块,你的要求是读取和传输I2C数据?

我建议在调试模式下运行项目,并检查它是否陷入断言NMI等。

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
谢谢你的提示

感谢您的及时回复!

I2C与这个问题无关,因为到目前为止我甚至没有向模块发出任何I2C命令。而且,它没有连接到它的slave。我使用的唯一模块引脚是P0_5和P0_6,将其连接到外部USB-UART转换器。

我使用Codeless SDK 6.380.10.4和Keil v5.27.1.0的免费版本,并注释掉文件user_at_command.h(见附件)中的一些AT命令,以使codeless_stand_alone映像低于32K限制。根据您的建议,我在Segger J-Link调试器下运行它。在启动我给它的AT+SLEEP=0命令的代码之后,模块在下一行以OK和+AWAKE响应。然后我使用Cypress CySmart工具连同他们的狗作为一个中心设备连接到TINY模块。在建立连接的模块响应与+CONNECTED(在TeraTerm)和我可以探索其服务和属性的CySmart使用BLE扫描工具。在这一点上,一切工作良好的预期-我可以看到模块的特点概述在手册。然后,我让模块闲置在连接模式中,即不发出任何来自TeraTerm的命令,也不发出来自CySmart的蓝牙命令。如前所述,大约3分钟后连接将被删除。调试器没有显示任何可疑的东西,绝对没有NMI,实际上它没有显示任何东西,只是运行模块代码。TeraTerm报告+READY和CySmart报告连接下降。

如果您不了解CySmart,我也做了同样的实验,通过一对531 TINY模块建立蓝牙连接。其中一个运行预编译的映像(不管哪个),其他模块运行我编译的映像。但是,如果两个模块都运行预编译的数据泵或独立的图像(预编译的意思是SmartBond Flash Programmer提供的图像)工具,那么就没有连接丢失的经验。但是,一旦其中一个模块加载了预编译的独立集2,就会发生连接丢失。因此,预编译的set-two图像和SDK源代码有问题。

我写I2C只是因为我需要这个选项。到目前为止,我甚至没有尝试它是如何工作的,所以这个问题肯定与I2C无关。

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
Sergei Bezroukov嗨

Sergei Bezroukov嗨

由于应用程序代码不会停留在任何地方(NMI / WDOG /断言),因此共享一个嗅探器日志以了解空中正在发生的事情将非常有帮助。

是否有可能使用BLE嗅探器工具和共享嗅探器捕获?

你有自定义板吗,或者你正在使用任何或dk ?此外,如果你使用睡眠模式,那么你应该使用4个UART信号(URX/UTX/RTS/CTS)。

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
给你。附加的

给你。附加的归档文件有我的硬件(只有DA14531模块和CP2104 USB-UART)和BLE事件日志的照片。该日志显示531发出连接超时3分钟后建立连接(最后3条记录)。我不使用睡眠模式。

附件:
PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
Sergei Bezroukov嗨

Sergei Bezroukov嗨

在附加的日志中,断开连接的原因是连接超时。根据蓝牙LL核心规范,Connection Timeout错误码表示给定连接的链路监督超时已经过期。监督超时在user_connection_param_conf结构中设置。

请同时说明设备断开连接后是否再次开始发布广告?您可以在断开回调函数中添加一个断点user_on_disconnect(),并检查断开原因。请参见gapc_disconnect_ind结构。

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
是的,放下后

是的,断开连接后,DA设备再次开始发布。您是正确的:由于DA14531停止响应连接事件,链路监视已经过期。

我使用Silicon Labs Simplicity Studio和他们的Thunderboard Sense 2板作为中心创建了一个特殊的应用程序,它只连接到DA14531,之后什么也不做,同时保持连接活动。在附加的档案有两个图像提供的简单工作室网络分析仪。在这些图像上,90:FD:9F:7B:86:16是我的Central, DA:E4:D9:A6:F6:E9是DA14531。在名为Connection_parameters的图像上,您可以看到DA14531请求设置连接延迟5和监督超时1250ms,这被客户端接受(参见事件详细信息窗口)。然后在图像Log2上可以看到DA14531根据连接延迟工作,不响应连续的5个连接间隔。但是在这种情况下138秒之后,是一个较长的没有响应的数据包序列导致了中央的Superivision超时。我也看到这个原因(错误0x208) Tera-Term输出从我的中心设备上的第三个图像。

从这些日志中可以看出,在一段时间(2-3min)后,DA14531无故停止响应连接事件。那么,Dialog,你为什么不修复你的软件呢?这种行为绝对是个错误。你可以通过编译并加载你所提供的源代码到两个模块或开发板中来说服自己。

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
好的,Dialog,我决定了

好的,对话框,我决定遵循你的建议,在文件user_codeless.c中user_on_disconnect()函数中添加几个断点。事实证明,在连接被删除后,您提供的代码并没有进入这个函数。进一步的研究表明,模块在断开连接后会重新设置自己,如果有人在main()中添加了一个断点,代码就会在那里停止。因此,我认为您需要为您的软件开发小组创建一个票据。如果你想让我做,请给我指示。

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
Sergei Bezroukov嗨

Sergei Bezroukov嗨

您可以运行它与附加的调试器和共享的屏幕截图,其中代码卡在断开连接后?

设备从System-RAM或SPI flash启动?

老实说,我有点困惑。你能在SmartConsole移动应用程序中重复这个问题吗?

在我这边,我不能复制它,CodeLess是完美的工作。

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
我又在调试器里运行了一次,

我运行它在一个调试器再次,截图是附加的。代码不会停留在任何地方,它只是重置模块,main()函数重新开始。您可以在屏幕截图中看到,它显示了调试器在删除连接后停止的位置。因此,该模块已经准备好建立一个新的模块,如果我继续运行它,它就可以工作。但是新连接也会在大约3分钟后中断。同样,在建立连接后,我不会与模块进行通信-只是让它闲置。在我看来,这是看门狗的行为。

我没有使用任何(外部)flash,只是一个裸模块连接到CP2104 USB转换器,见附件的图像,并不确定设备如何在内部引导。我刚刚编译了codeless_531_set_two_standalone的无代码软件(v6.380.10.4)图像,没有任何更改,并通过SWD接口将其加载到我的两个模块中。所以,它是根据你软件里的算法启动的。每个模块的工作原理都是一样的——3分钟不活动后断开连接。

使用Android上的SmartConsole应用程序(三星Galaxy S8)作为客户端可以观察到相同的连接丢弃行为。还有什么要检查的吗?

后来添加的(重要的):我刚刚注意到,如果我向调试器下运行的模块发出ATI命令,响应是无代码DA14531 v_6.380.10.4这与我使用的SDK版本相匹配。但是,如果我现在用断开的调试器重新启动模块,对ATI命令的响应就变成了无代码DA14531 v_6.380.9.10(? ? ! !)也许这就是他行为不端的原因?

附件:
谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
好吧,这些天我学会了

好的,这些天我了解到,如果一个模块从Keil内部(在调试模式)和外部与Dialog SmartBond Flash程序员,那么结果是不同的。即,在Flash程序员闪烁我编译的代码后,它显示了正确的固件图像版本DA14531 v_6.380.10.4无论你如何引导它(我的意思是在Keil的调试会话期间,也与JLink调试器断开连接)。因此,固件图像之间的不匹配概述后来添加的我上面的部分已经解决了。但是,3分钟后模块仍然断开连接。我是唯一一个有这种经历的人吗?

对话组:如果您的连接没有中断,请将十六进制图像发给我codeless_531_set_two_standalone.hex这样可以吗?

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

你在大学里有BLE嗅探工具吗?我们想要分享BLE捕获,这样我们就可以了解在空中发生了什么。这将有助于我们更好地理解根本原因。

您能否将此问题复制到运行SmartConsole应用程序的另一部手机上?你只试过用三星Galaxy S8吗?

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
亲爱的对话框的团队!我有

亲爱的对话框的团队!我已经在上面提供了由不同的捕获软件和硬件收集的两个BLE捕获。其中一个是由Cypress CySmart工具和他们的软件狗CY5677收集,另一个是由Silicon Labs网络分析仪收集。附加的是另一个最详细的捕获收集的北欧半导体BLE加密狗PCA10031和他们的Sniffer 3.0软件,与Wireshark (v3.2.5)协同工作。附带的捕获涉及两个设备(我的Galaxy S8手机运行SmartConsole和DA14531模块与MAC 48:23:35:00:07:AA),它可以用Wireshark打开。在每种情况下,我都在建立连接后保持连接闲置。这些都是我的BLE嗅探工具。

我在妻子的另一部Galaxy S8手机上、在我的旧款Galaxy S5手机上,以及在我使用的至少3部非手机BLE设备上,都出现了连接中断的问题。DA14531模块只是在主连接事件上停止响应,并重置自身(尽管我不确定什么是先来的)。同样,只有在将codeless_531_standalone_set_two图像加载到模块中时才会出现这种情况。与其他两个可用的预编译映像(codeless_531_datadump和codeless_531_standalone)的连接似乎工作正常,即没有在3分钟后断开连接,除非我自己从提供的源代码编译它们。在后一种情况下,无论我编译哪个图像,连接丢失都会出现。

我使用的预编译图像是由Dialog SmartBond Flash Programmer提供的。我要求你上面给我的图像,你正在使用的测试。请这样做。另外,请在你的硬件上试试我的附件。

附件:
PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03

嗨谢尔盖,

我为混乱道歉-刚刚看到附加的嗅探日志。最后,我可以用codeless_531_standalone_set_two复制它。十六进制和使用Flash程序员工具。让我把它升级到团队内部,我会尽快回复你。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

很抱歉我回复晚了。我从团队内部得到了反馈,很快就会有一个解决方案。一旦补丁发布,我会在这个论坛帖子中告诉你。

任何关于CodeLess的其他评论/反馈都将非常欢迎!

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
谢谢你!我在看

谢谢你!我期待着问题得到解决。

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
Sergei Bezroukov嗨

Sergei Bezroukov嗨

新的无代码SW版本6.380.12.6已经在线发布。它现在可以从CodeLess门户下载:

//www.xmece.com/亚博电竞菠菜products/smartbond-codeless-commands

谢谢,PM_Dialog

谢尔盖Bezroukov
离线
最后看到:8个月,3个星期前
加入:2020-06-25 00:28
谢谢你,对话团队。这

谢谢你,对话团队。这个问题解决了。等待I2C问题的解决…

PM_Dialog
离线
最后看到:1天21小时前
工作人员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

感谢您接受我的回答,很高兴新的CodeLess版本修复了这个问题。我会在你的其他论坛帖子中回复你关于I2C的问题。

谢谢,PM_Dialog