你好,
我通过使用无附加固件映像Defeless_531_Standalone_set_two.hex,通过在CP2104上通过2线UART和USB / UART转换器连接到计算机的一对DA14531微小模块。在UM-B-140的3.3节中建立它们之间的连接工作。但是Probelm是模块在大约3分钟后下降连接。是否可以修复它,以便连接将无限期保持活跃?
另外两个预编译的固件图像(Dodeless_531_Standalone.HEX和Dodeless_531_DataPump.Hex)没有这种缺点,但我需要I2C支持。我从源重新编译了StandalOle_set_two项目,但它仍然在2-3分钟后丢弃连接。如果通过向其添加I2C功能,请重新编译设置一个固件,会发生同样的情况。对话团队 - 请告知如何解决此问题。
嗨Sergei Bezroukov,
谢谢你的问题。
>>>但Probelm是模块在大约3分钟后下降连接。
您能否提供更多细节?连接下降?您是否在命令中发送任何特定的?你能在调试模式下运行它吗?
>>> I2C支持
您是否意味着有一个连接到TINE模块的I2C接口,您的要求是读取和发送I2C数据?
我建议在调试模式下运行该项目,并检查它是否陷入了断言NMI等。
谢谢,PM_DIALOG.
感谢您的及时回复!
I2C与此问题无关,因为到目前为止,我甚至不会向模块发出任何I2C命令。此外,它没有连接到它。我使用的唯一模块引脚是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无关。
嗨Sergei Bezroukov,
由于应用程序代码不会卡住任何地方(NMI / WDOG /断言),因此共享嗅探器日志将非常有帮助,以便了解在空中发生的情况。
是否有可能使用BLE嗅探器工具和共享嗅探器捕获?
您有定制板,或者您正在使用任何或dks?此外,如果使用睡眠模式,则应使用4个UART信号(URX / UTX / RTS / CTS)。
谢谢,PM_DIALOG.
干得好。附加的存档有我的硬件照片(仅为DA14531模块和CP2104 USB-UART)以及BLE事件日志。日志显示,连接建立后3分钟(最后3条记录),531发出的连接超时。我不使用睡眠模式。
嗨Sergei Bezroukov,
在附加日志中,断开原因是连接超时。根据蓝牙LL核心规范,连接超时错误代码表示链路监控超时已过期为给定连接。监控超时在User_connection_param_conf结构中设置。
请同时说明设备断开连接后是否再次开始发布广告?您可以在断开回调函数中添加一个断点user_on_disconnect(),并检查断开原因。请参见gapc_disconnect_ind结构。
谢谢,PM_DIALOG.
是的,丢弃连接后,DA设备再次启动广告。您是对的:链接监督已过期,因为DA14531停止响应连接事件。
我通过使用Silicon Labs Simplicity Studio及其雷鸣簿感测2板作为刚刚连接到DA14531的中央,并在保持连接的同时无效,使用Silicon Labs Sense 2板。在附加的存档中,简单的Studio网络分析仪提供了两个图像。在这些图像上,设备90:FD:9F:7B:86:16是我的中央和DA:E4:D9:A6:F6:E9是DA14531。在名为connection_parameters的图像上,您可以看到DA14531请求设置连接延迟5和监控超时1250ms,由客户端接受(请参阅事件详细窗口)。然后在图像log2上,您可以根据连接延迟,通过不响应串联的5个连接间隔,根据连接延迟,验证DA14531。但是在这一情况下,在138年代之后,它是一个较长的系列没有响应的数据包,导致中央的超级性超时。我也看到了这个原因(错误0x208)在第3图像上的Central设备中的Tera-术语输出上。
从这些日志中可以看出,在一段时间(2-3min)后,DA14531无故停止响应连接事件。那么,Dialog,你为什么不修复你的软件呢?这种行为绝对是个错误。你可以通过编译并加载你所提供的源代码到两个模块或开发板中来说服自己。
好的,对话框,我决定通过在文件user_codeless.c中添加user_on_disconnect.c函数中的几个断点来遵循您的建议。事实证明,在连接删除后,您提供的代码不会进入此功能。进一步的调查显示,模块在丢弃连接后重置自身,如果一个在main()中添加断点,则代码停止在那里。所以,我相信您需要为软件开发组创建一次票证。如果你想让我这样做,请给我说明。
嗨Sergei Bezroukov,
请你用它连接的调试器运行它,并分享一个屏幕截图,在断开断开后代码卡住了代码?
设备是否从系统RAM或SPI Flash启动?
说实话,我很困惑。您能用SmartConsole移动应用程序复制此问题吗?
在我侧面,我无法复制它,无附庸无附庸。
谢谢,PM_DIALOG.
我再次在调试器中运行它,附加了屏幕截图。代码不会卡在任何地方,它只重置模块,主()函数开始续。您将在屏幕截图上看到它,显示调试器在删除连接后停止的位置。因此,模块已准备好建立一个新的,而且如果我继续运行它。但是在〜3分钟后,新的连接也会掉落。同样,我没有在建立连接后与模块通信 - 只是让它怠速。它看起来像看门狗行为一样。
我不使用任何(外部)闪光灯,只需连接到CP2104 USB转换器的裸模块,请参阅附图,并且不确定设备如何在内部启动。我刚刚编译了无附加的软件(V6.380.10.4)图像,用于无附加_531_SET_TWO_STANTalone,无需任何更改,并通过SWD接口将其加载到我的两个模块中。因此,它根据软件中的算法靴子。并且它在每个模块上都适用 - 在不活动3分钟后下降连接。
通过使用Android(三星Galaxy S8)作为客户端的SmartConsole应用程序来观察到相同的连接下降行为。有什么想法还有什么检查?
稍后添加(重要):我刚刚注意到,如果我向在调试器下运行的模块发出ATI命令,则响应是无附带DA14531 V_6.380.10.4这与我使用的SDK版本匹配。但是,如果我现在用调试器断开连接重启模块,则对ATI命令的响应变为无附带DA14531 V_6.380.9.10(? ? ! !)也许这就是他行为不端的原因?
好的,这些天我了解到,如果一个模块从Keil内部(在调试模式)和外部与Dialog SmartBond Flash程序员,那么结果是不同的。即,在Flash程序员闪烁我编译的代码后,它显示了正确的固件图像版本da14531 v_6.380.10.4无论你如何启动它(我的意思是在Keil的调试会话中,也与Jlink调试器断开连接)。因此,在中概述的固件图像之间的不匹配稍后添加我上面的帖子的一部分得到解决。但是,该模块仍在3分钟后丢弃连接。我是唯一一个经历的人吗?
对话团队:如果连接没有放弃你,请你能给我发六角映像吗?codeless_531_set_two_standalone.hex这对你有钱吗?
嗨谢尔盖,
你在大学里有BLE嗅探器工具吗?我们想分享一个BLE捕获,这样我们就可以了解在空中发生的事情。这将真的帮助我们了解更好的根本原因。
您能用运行SmartConsole应用程序的另一个手机复制此问题吗?你有没有尝试使用三星Galaxy S8?
谢谢,PM_DIALOG.
亲爱的对话团队!我已经提供了由不同捕获软件和硬件收集的两个BLE捕获。其中一个由赛普拉斯综合组织和他们的加密狗CY577和另一个由Silicon Labs网络分析仪收集。附加是北欧半导体BLE加密狗PCA10031收集的另一个更详细的捕获,以及它们与Wireshark(V3.2.5)串联工作的嗅探器3.0软件。附加的捕获涉及两个设备(我的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分钟后断开连接,除非我自己从提供的源代码编译它们。在后一种情况下,无论我编译哪个图像,连接丢失都会出现。
我使用的预编译图像是由对话框智能闪存程序员提供的图像。我问你上面给我发给我用于测试的图像。请做到。此外,请在您的硬件上尝试附加的十六进制。
嗨谢尔盖,
我对混乱道歉 - 刚看到附加的嗅探器日志。最后,我可以用Dodeless_531_Standalone_set_two.hex复制它并使用Flash程序员工具。让我在内部将其升级到团队中,我会尽快回复你。
谢谢,PM_DIALOG.
嗨谢尔盖,
很抱歉我回复晚了。我从团队内部得到了反馈,很快就会有一个解决方案。一旦补丁发布,我会在这个论坛帖子中告诉你。
任何其他评论/反馈撤销无附庸不仅仅是欢迎!
谢谢,PM_DIALOG.
谢谢你。我期待着解决的问题。
嗨Sergei Bezroukov,
新无附加无线环版6.380.12.6已在线发布。现在可以从无附件的门户下载:
//www.xmece.com/亚博电竞菠菜products/smartbond-codeless-commands
谢谢,PM_DIALOG.
谢谢,对话团队。解决此问题已得到解决。等待解决I2C问题......
嗨谢尔盖,
感谢您接受我的回答,很高兴新的CodeLess版本修复了这个问题。我会在你的其他论坛帖子中回复你关于I2C的问题。
谢谢,PM_DIALOG.