求救信号:什么原因DA14580在被询问时断开,但是广告很有效

15个职位/ 0个新职位
最后发表
亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
求救信号:什么原因DA14580在被询问时断开,但是广告很有效

亲爱的对话框,

我想知道是什么原因导致DA14580在被讯问时断开。发生这种情况的条件或诱因是什么?

我的代码基于sample128,它在大多数情况下都工作得很好。但有时也会出现这个问题——DA14580不能被我的app连接,并且被Light Blue工具报告为“The peripheral disconnected while being interrog .”。同时,广告效果也很好——通过传感器检测广告数据的动态变化。

如果发生这种情况,DA14580永远不会一直连接。让它工作的唯一方法是“断电复位”。复位后,工作良好。问题很少发生,也不容易再现。

是调用断开连接函数引起的吗?我没有从我的代码中找到它,可能是某个地方或时机问题?到目前为止,我还没有找到任何线索。请帮助!

谢谢!

关键词:
VesaN
离线
最后看到:5年6个月前
大师 主
加入:2014-06-26 08:49
你好亚历克斯·罗

你好亚历克斯·罗

对我来说,这听起来像是一个硬件问题/ xtal校准问题。我也有类似的问题。你用自己的硬件吗?

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
由于视频电子设备标准协会,

由于视频电子设备标准协会,

是的,我用我自己的硬件。这个问题很少发生,这对我的申请来说是胎儿问题。

我们用App跟踪连接,看起来连接后DA14580立即断开。我在app_connection_func()中添加了一个LED指示灯,并发现LED灯亮着,这意味着app_env。当问题发生时,conidx == GAP_INVILAD_CONIDX,但我不确定每一个询问都指向这一点。所以,我想知道是不是时机不对?如果是这样,为什么会发生这个问题,在断电复位之前从来没有连接过?!
顺便说一下,我用RC振荡器32.768KHz,不是Xtal。我还使用了定时器函数:app_sample128_timer_handler()(我为应用程序设置定时器为200ms、500ms和2s)和app_rtc_timer_handler()(为1s固定定时器)。亚博国际官网平台网址我不确定是否有任何冲突或与堆栈中的其他计时器。

顺便说一下,代码在大多数情况下工作得很好,但有时会发生这个问题——我没有发现问题在哪里。希望你能给我更多的线索。

谢谢,

VesaN
离线
最后看到:5年6个月前
大师 主
加入:2014-06-26 08:49
你好,亚历克斯,

你好,亚历克斯,

阅读第7节。小心翼翼地

如果没有精确校准,你可能会遇到奇怪的行为

谢谢!

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
你好,视频电子设备标准协会,

你好,视频电子设备标准协会,

谢谢你分享你的经验,我试着去做。由于xtal和组件的变化,你认为是每一块都要修剪还是用一块修剪覆盖所有这些板?(达到5 ppm ?)

你能和我分享一下你遇到的问题的现象吗?广告效果很好,直到重置才建立连接?如果是的话,这个问题已经通过修改Xtal?

你认为是否有什么问题,从固件?

非常感谢,

VesaN
离线
最后看到:5年6个月前
大师 主
加入:2014-06-26 08:49
嗨,亚历克斯,

嗨,亚历克斯,

我猜一个修剪应该覆盖所有的板,然而,可能有一些变化。

对我来说,错误的校准有时会导致广告“消失”,设备的功能一般都不正确。操作它是不可能的。这个问题是固定的我修剪xtal,也改变了HW设计一点。如果频率不正确,那么产生的射频信号是在错误的频率区。

当你在校准xtal时,你可能也会注意到一些漂移。

不知道固件是不是出了什么问题。

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
坦克视频电子设备标准协会,

坦克视频电子设备标准协会,

我会尽量听从你的建议,同时从f/w中挖掘更多。有趣的是,所有的问题都发生在更新广告数据时(需要app_adv_stop和app_adv_start…)

谢谢,
亚历克斯

VesaN
离线
最后看到:5年6个月前
大师 主
加入:2014-06-26 08:49
你好,

你好,

您可能想要再次检查您没有访问错误的内存地址,并且您的adv包是有效的。试着用十六进制打印出来。

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
嗨视频电子设备标准协会,

嗨视频电子设备标准协会,

似乎很难找到问题的根源在哪里。运行数百次后,问题可能不会发生,我想知道是什么触发了它。很奇怪,问题发生后,连接从未恢复,广告工作得很好。我不知道是否有任何冲突后,调用app_adv_stop,然后调用app_adv_start()非常接近-我可以找到更多的信息。您有使用add_adv_stop()和add_adv_start()的经验吗?我在app_rtc_timer_handler()中更新广告数据后使用了这些(1秒/步),这是我为RTC使用创建的。希望你能找到一些东西,然后告诉我。

谢谢,

cuijinfei
离线
最后看到:4年3个月前
加入:2015-03-17 01:25
我也有同样的问题

我也有同样的问题,我用5V电源,当我把它换成3.3v,一切都好!希望这次的帮助!

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
你好cuijinfei,

你好cuijinfei,

DA14580工作电压高达3.6V时,芯片在5V时不能正常工作。所以,使用3.3V是正确的。

angelforest
离线
最后看到:3年11个月前
加入:2014-11-07 01:08
嗨,对话框中,

嗨,对话框中,

我遇到了和亚历克斯一样的问题。DA14580一直在做广告,但是不能再连接了。一旦问题发生,它就会一直存在,唯一的恢复操作就是重新启动芯片。

在使用iPhone时遇到问题,我得到了空气日志。但Android也存在这个问题。从日志中可以看到,LLCP版本交换后发生断连,DA14580没有响应。这个问题不容易再现,但确实存在。

对话可以帮我列出一些潜在的原因吗?这是我的急病,谁能帮个忙?非常感谢。

致以最亲切的问候

安吉

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨angelforest,

嗨angelforest,

设备是否自己断开连接,然后无法重新连接?您的连接是否使用了任何安全性,可能会出现问题。当你发出连接请求时,你能告诉da获得连接请求(在调试模式下)。你能用嗅探器来观察空气中有什么吗?

由于MT_dialog

angelforest
离线
最后看到:3年11个月前
加入:2014-11-07 01:08
嗨MT_dialog,

嗨MT_dialog,

1.问:设备是否自己断开连接,然后不能重新连接?
答:我不确定断开是由设备或主机引起的。但是连接不能再次建立,直到重置DA14580。

2.问:您的连接是否使用了任何安全性?
是的。我们的产品涉及HID和ANCS配置文件。
/ / IO功能
cfm - > data.pairing_feat。iocap = GAP_IO_CAP_NO_INPUT_NO_OUTPUT;
/ /验证需求
cfm - > data.pairing_feat。auth = GAP_AUTH_REQ_NO_MITM_BOND;
/ /安全要求
// HID设备必须使用LE安全模式1和安全级别2或3。
//这里我们使用模式1,级别2
cfm - > data.pairing_feat。sec_req = GAP_SEC1_NOAUTH_PAIR_ENC;

3.问:你能用嗅探器来观察空气中的东西吗?
A:我用了嗅探器。根据捕获,断开总是出现在LLCP版本交换之后。master每次发送LLCP_Version(Opcode: LL_VERSION_IND),尝试6次,但是DA14580没有响应。大约350ms后,嗅探器显示我们的设备回到了“可连接状态”。

你以前见过这个吗?这是由安全设置引起的吗?谢谢你!

BR

Angelforest

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨angelforest,

嗨angelforest,

不,据我所知没有这样的问题,如果设备可以建立第一个连接,但不是重新连接,它一定是密钥交换过程在第二次连接,也许密钥没有存储或暴露正确。在重新连接期间使用了不同的处理程序,您可以查看键盘参考设计,以查看正确的HID连接。

由于MT_dialog