亲爱的对话框,
我想知道DA14580在被询问时断开的原因是什么原因。这种情况发生的任何条件或触发器?
My code is based on sample128, which works well for most of time. But sometimes this problem happens -- DA14580 can not be connected by my app, and it's reported "The peripheral disconnected while being interrogated." by Light Blue tool. Meanwhile, the advertising works very well -- The advertising data changed dynamically by sensor detecting.
如果发生这种情况,DA14580永远不会一直连接。让它工作的唯一方法是“断电重置”。重置后,它运行良好。问题确实很少发生,而且不容易被复制。
是由呼叫断开功能引起的吗?我没有从我的代码中找到它,可能是某个地方或时间问题?到目前为止,我找不到任何线索。请帮忙!
Thanks!
Keywords:
你好Alex Luo,
to me it sounds like it could be a hardware problem / xtal calibration issue. I have had similar issues. Do you use your own hardware?
谢谢Vesa,
是的,我用自己的硬件。问题很少发生,这是我申请的胎儿问题。
We used our App to track the connection, it looks that after connected the DA14580 disconnected immediately. I added a LED indicator in app_connection_func(), and found the LED light-on that means app_env.conidx == GAP_INVILAD_CONIDX when the issue occurs, but I'm not sure each interrogation goes this point. So, I wonder if there is something wrong with timing? If so, why the issue occurs, the connections are never made until the power down reset?!
顺便说一下,我使用了RC振荡器32.768kHz,而不是xtal。我还习惯于计时器:app_sample128_timer_handler()(i为200ms,500ms和2s for applications的计时器设置),以及app_rtc_timer_handler()(对雷竞技安卓下载于1s固定计时器)。我不确定是否有冲突或堆栈中的其他计时器。
By the way, the code works very good for most of times, but sometimes this issue happens -- i didn't find where the problem is. Hope you can give me more clue.
Thanks,
Hello Alex,
仔细阅读第7节
If it is not calibrated precisely, you may encounter strange behavior
Thanks!
你好Vesa,
谢谢你分享你的经历,我试着去做。由于XTAL和组件的变化,您是否认为修剪每个板或使用一个修剪以覆盖所有这些用于生产的板?(达到5ppm?)
Could you share with me about the phenomenon of the problem you met? Advertising works well and the connection is never made until reset? If so, the problem was fixed by trimming the Xtal?
Do you thinks if there is something wrong from firmware ?
非常感谢,
Hi Alex,
我猜一个修剪应该覆盖所有板,但是,可能存在一些变化。
对我来说,错误的校准导致广告有时候“消失”,并且设备功能不正确。经营它是不可能的。问题是修复了我修剪XTAL,也改变了HW设计一点。如果频率不正确,则所生成的RF信号处于错误的频率区。
当您校准XTAL时,您也可能会注意到一些漂移。
不能说,如果固件有什么问题。
坦克vesa,
I will try to follow your advice, and meanwhile dig-out more from f/w. The interesting thing is that all of the issues occurred when updating advertising data (need app_adv_stop and app_adv_start...)
Thanks,
亚历克斯
你好,
您可能希望仔细检查您不访问错误的内存地址,以及您的ADV数据包有效。尝试用十六进制打印出来。
Hi Vesa,
It seems that is too difficult to find where the root of the problem is. The problem may not happen after running hundreds of times, and I wondering what trigger it. Very strange the connection never recovers after the problem occurs and advertising works very well. I don't know if there is any conflict after calling app_adv_stop and then calling app_adv_start() very close -- I can find more info about it. Do you have any experience on using add_adv_stop() and add_adv_start()? I used those after my advertising data updated in app_rtc_timer_handler() --which I created for RTC use (1sec/step). Hope you can find something there and let me know.
Thanks,
我有同样的问题,我使用5V电源,当我将它换成3.3V时,一切都很好!希望这件事!
你好崔金飞,
DA14580工作电压高达3.6V,芯片无法正常工作5V。所以,使用3.3V是对的。
嗨对话框,
我遇到了与亚历克斯相同的问题。DA14580保持广告,但不能再连接。出现问题后,它将始终存在,唯一的恢复操作是重新启动芯片。
在使用iPhone时遇到问题时,我收到了空中日志。但问题也存在于Android。从日志中,在LLCP版本交换之后断开连接,没有DA14580的响应。问题并不容易重现但存在。
对话有助于列出一些各种原因吗?这对我来说是一个紧迫的虫子,有人可以帮忙吗?十分感谢。
Best Regards
安吉
Hi angelforest,
Is the device disconnected by its own and then you can't reconnect ?您的连接是否使用任何安全性,也许有些东西出现问题。当您发出连接请求时,您可以告诉DA获取连接请求(在调试模式下)。你能用嗅探器吗?为了看空气中的内容?
谢谢mt_dialog.
Hi MT_dialog,
1.问题:设备由自己断开连接,然后您无法重新连接?
答:我不确定断开连接是由设备或主机引起的。但是无法再次建立连接,直到重置DA14580。
2.问:您的连接是否使用任何安全性?
A: Yes. Our product involves HID and ANCS profiles.
// IO capabilities
cfm-> data.pairing_feat.iocap = gap_cap_no_input_no_output;
//身份验证要求
cfm-> data.pairing_feat.auth = gap_auth_req_no_mitm_bond;
//安全要求
// HID设备应使用LE安全模式1和安全级别2或3。
// here we use Mode 1, Level 2
cfm->data.pairing_feat.sec_req = GAP_SEC1_NOAUTH_PAIR_ENC;
3. Q: Can you use a sniffer in order to see whats in the air?
答:我用了一个嗅探器。根据捕获,在LLCP版本交换后始终出现断开连接。每次用6尝试时,主站发送LLCP_VERSION(OPCODE:ll_version_ind),但没有从DA14580的响应。然后在大约350ms后,嗅探器显示我们的设备转回“可连接状态”。
你以前见过这个吗?是由安全设置引起的吗?谢谢你。
布尔
Angelforest
Hi angelforest,
不,据我所知没有这样的一个问题,如果the device can establish the first connection but not a reconnection it must be the key exchanging process in the second connection, maybe the keys aren't stored or exposed properly. Different handlers are used during reconnection, you can have a look in the keyboard reference design in order to see a proper HID connection.
谢谢mt_dialog.