跳到主要内容

连接中断

DA14531 Smartbond Tiny模块

1年前

张贴了谢尔盖Bezroukov0分 18回复
0旋转

你好呀,

我正在与一对连接到计算机DA14531 TINY模块通过2线UART和USB / UART转换器上CP2104通过使用无代码固件映像codeless_531_standalone_set_two.hex试验。在它们之间建立一个连接在UM-B-140的3.3节作品所描述的。但是,万阿英,蒋达清是模块下降约3分钟后的连接。是否有可能解决它,这样的连接将保持活跃下去?

另外两个预编译的固件图像(Dodeless_531_Standalone.HEX和Dodeless_531_DataPump.Hex)没有这种缺点,但我需要I2C支持。我从源重新编译了StandalOle_set_two项目,但它仍然在2-3分钟后丢弃连接。如果通过向其添加I2C功能,请重新编译设置一个固件,会发生同样的情况。对话团队 - 请告知如何解决此问题。

1年前

PM_DIALOG.

嗨谢尔盖Bezroukov,

谢谢你的问题。

>>>但万阿英,蒋达清是模块下降约3分钟后的连接。

能否请您提供这方面的进一步的细节?当连接中断?你发送任何具体的AT命令?你能请调试模式下运行呢?

>>>支持I2C

你的意思是有连接到铲头模块的I2C接口,以及您的要求是读取和传输的I2C数据?

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

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

谢谢你的快速回复!

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

我使用无附带版SDK 6.380.10.4,使用免费版本的Keil v5.27.1.0,并在File User_at_Command.h中的命令中注释了一些命令(见附加),以使Codeless_Stand_Alone映像带到32K限制下。在您的建议之后,我在Segger J-Link调试器下调试中运行它。在启动代码后,我给它at + sleep = 0命令,模块响应OK和+唤醒下一行。然后我使用赛普拉斯综合工具以及他们的加密狗作为中央设备连接到微小模块。建立连接后,模块用+连接(在Teraterm中)响应,我可以在Cysmart中探索其使用用作BLE扫描仪工具的服务和属性。此时一切正常正常工作,我可以看到手册中概述的模块的特性。然后我在连接模式下留下模块空转,这是从Teraterm发出的命令,也没有从Cysmart上的蓝牙的命令。CA之后,连接被删除。我以前描述的3分钟。调试器不会向我展示Anyhing可疑,绝对没有NMI,实际上它没有显示任何内容,只需运行模块代码。 The TeraTerm reports +READY and CySmart reports connection drop.

如果您用Cysmart没有意识到,我通过建立一个与一对531微小模块建立蓝牙连接来执行相同的实验。其中一个运行预编译的图像(哪一个无关紧要),其他模块运行我的编译图像。3分钟后发生相同的连接下降。但是,如果两个模块都运行预编译的DataPump或独立图像(通过预编译的我意味着在SmartBond Flash程序员中提供的图像)工具,则没有经历任何连接下降。但是,一旦将其中一个调制装载了预先编译的独立安装两个,就会发生连接下降。因此,预编译的Set-Two Image和SDK源代码有问题。

我只写了关于I2C的,因为我需要这个选项。到目前为止,我甚至没有尝试如何工作,因此问题绝对与I2C无关。

依恋 尺寸
user_at_commands.zip 4.12 KB.

1年前

PM_DIALOG.

嗨谢尔盖Bezroukov,

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

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

你有一个定制电路板,或者你使用任何的死亡骑士还是?此外,如果使用的是睡眠模式,那么就应该使用4个UART信号(URX / UTX / RTS / CTS)。

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

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

1年前

PM_DIALOG.

嗨谢尔盖Bezroukov,

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

还可以指示设备在断开后再次启动广告吗?您可以在断开回调中添加断点 - user_on_disconnect() - 并检查断开连接原件。请参阅gapc_disconnect_ind结构。

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

是的,丢弃连接后,DA设备再次开始刊登广告。你是对的:因为DA14531停止响应连接事件链接监督已过期。

我利用Silicon Labs的简易工作室和他们的Thunderboard感2板为中心,只是连接到DA14531和不执行任何操作之后,同时保持连接活动创建一个特殊的应用程序。在所附的档案有采用Simplicity Studio的网络分析仪提供两个图像。在这些影像设备90:FD:9F:7B:86:16我是中央和DA:E4:D9:A6:F6:E9是DA14531。在图像命名Connection_parameters你可以看到,DA14531要求设置连接延迟5和监督超时1250ms,这是由客户端(参见活动详细信息窗口)接受。然后在图像LOG2你看到DA14531根据连接延迟通过串联不响应5个consequtive连接间隔工作。但经过在这种情况下138sec这是一个较长的一系列未作答复造成Superivision超时在中央数据包。我也看到了这个原因(错误0x208)上万亿期限产量从我的中央设备的第3图像。

从这些日志中,它遵循,在某个时间(2-3min)da14531后,停止响应连接事件无缘无故。所以,对话框 - 你为什么不修复你的软件。这种行为绝对是一个错误。通过编译和加载所提供的源代码,您可以轻松地说服自己分为两个模块或DEV板。

1年前

谢尔盖Bezroukov 0分

好的,对话框,我决定通过在文件user_codeless.c中添加user_on_disconnect.c函数中的几个断点来遵循您的建议。事实证明,在连接删除后,您提供的代码不会进入此功能。进一步的调查显示,模块在丢弃连接后重置自身,如果一个在main()中添加断点,则代码停止在那里。所以,我相信您需要为软件开发组创建一次票证。如果你想让我这样做,请给我说明。

1年前

PM_DIALOG.

嗨谢尔盖Bezroukov,

请你用它连接的调试器运行它,并分享一个屏幕截图,在断开断开后代码卡住了代码?

设备是否从系统RAM或SPI Flash启动?

说实话,我很困惑。您能用SmartConsole移动应用程序复制此问题吗?

在我侧面,我无法复制它,无附庸无附庸。

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

我再次在调试器中运行它,附加了屏幕截图。代码不会卡在任何地方,它只重置模块,主()函数开始续。您将在屏幕截图上看到它,显示调试器在删除连接后停止的位置。因此,模块已准备好建立一个新的,而且如果我继续运行它。但是在〜3分钟后,新的连接也会掉落。同样,我没有在建立连接后与模块通信 - 只是让它怠速。它看起来像看门狗行为一样。

我不使用任何(外部)闪存,只需连接到CP2104 USB转换器裸模块,见附件图像,并且是在内部启动设备不知道如何。我刚刚编译无代码软件(v6.380.10.4)图像codeless_531_set_two_standalone没有任何变化,并通过SWD接口加载到我的两个模块。所以,根据你的软件算法靴子。而且它适用于每个模块相同的 - 降低闲置3分钟后连接。

相同的连接降行为是通过使用在Android(三星Galaxy S8)的SmartConsole的应用,因为客户端观察到的。任何想法要检查什么?

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

依恋 尺寸
screenshot.zip.zip. 699.45 KB

1年前

谢尔盖Bezroukov 0分

好的,这几天我了解到,如果一个程序从Keil中的模块(在Degug模式下)和对话框中的对话框智能闪存程序员,那么结果是不同的。即,使用闪存程序员闪烁我的编译代码后,它显示正确的固件图像版本DA14531 v_6.380.10.4无论你如何启动它(在Keil的调试会话我的意思时,也有JLINK调试器断开)。因此,固件图像之间的失配的概述稍后添加我的帖子的部分上面得到解决。然而,模块仍然下降3分钟后的连接。我是唯一一个谁的经验是什么?

对话团队:如果连接没有放弃你,请你能给我发六角映像吗?Dodeless_531_set_two_standalone.hex.这对你有钱吗?

1年前

PM_DIALOG.

嗨谢尔盖,

你在大学里有BLE嗅探器工具吗?我们想分享一个BLE捕获,这样我们就可以了解在空中发生的事情。这将真的帮助我们了解更好的根本原因。

您能用运行SmartConsole应用程序的另一个手机复制此问题吗?你有没有尝试使用三星Galaxy S8?

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

亲爱的对话团队!我已经提供了由不同捕获软件和硬件收集的两个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模块只是停止响应主连接事件并重置自身(我不确定第一个)。同样,只有在将Defeless_531_Standalone_set_two映像加载到模块中时,才会遇到这一点。与其他两个可用的预编译图像(Deceless_531_DataDump和Dodeless_531_Standalone)连接似乎工作正常,即3分钟后没有连接掉落,除非我从提供的源代码上编译它们。在后一种情况下,无论我编译哪个图像都会出现下降。

我使用的预编译图像是由对话框智能闪存程序员提供的图像。我问你上面给我发给我用于测试的图像。请做到。此外,请在您的硬件上尝试附加的十六进制。

依恋 尺寸
capture.zip. 338.85 KB

1年前

PM_DIALOG.

嗨谢尔盖,

我的混乱道歉 - 只看到连接嗅探器日志。最后,我可以用codeless_531_standalone_set_two.hex复制并使用Flash编程工具。让我也升级到了团队内部,我会尽快回复您。

谢谢,PM_DIALOG.

1年前

PM_DIALOG.

嗨谢尔盖,

我为我迟到的回复道歉。我在内部与团队有反馈,并将很快解决。一旦修复被释放,我会在这个论坛线程中通知您。

其他任何评论/反馈reggarding无代码会更受欢迎!

谢谢,PM_DIALOG.

1年前

谢尔盖Bezroukov 0分

谢谢你。我期待着解决的问题。

接受答案!

11个月前

PM_DIALOG.

嗨谢尔盖Bezroukov,

新的无代码软件版本6.380.12.6已经发布在网上。现在是可以从无代码门户下载:

https://www.dialog-seminile.com/produ雷电竞官网登录cts/smartbond-codeless-commands.

谢谢,PM_DIALOG.

11个月前

谢尔盖Bezroukov 0分

谢谢你,对话框团队。此问题已得到解决。等待解决的问题I2C ...

11个月前

PM_DIALOG.

嗨谢尔盖,

感谢您接受我的回答,很高兴新的无附件修复解决了这个问题。关于I2C问题,我会回复您的其他论坛主题..

谢谢,PM_DIALOG.