如果OTP编程,配对失败

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
bojanpotocnik
离线
最后看到:3周2天前
加入:2019-11-26他们就
如果OTP编程,配对失败

你好,

我们的应用程序基于ble_app_all_in_one,在DA14580DEVKT-P_VC上开发期间,一切都工作得很好(PC, Android, iOS设备,USER_CFG_FEAT_SEC_REQ设置为GAP_SEC1_SEC_PAIR_ENC或GAP_SEC1_AUTH_PAIR_ENC),但配对部署在现有板上时停止工作。

如果USER_CFG_FEAT_SEC_REQ设置为GAP_SEC1_AUTH_PAIR_ENC,配对失败:
>认证失败,状态为BLE_GAP_SEC_STATUS_CONFIRM_VALUE

如果USER_CFG_FEAT_SEC_REQ设置为GAP_SEC1_SEC_PAIR_ENC,配对失败:
>认证失败,状态为BLE_GAP_SEC_STATUS_DHKEY_FAILURE

在DA14585_WLCSP34和DA14585_QFN40子板的帮助下,我们找到了原因:使用相同的FW和SmartSnippets工具箱- Booter,我们发现所有带OTP编程的子板都失败配对过程,所有带空OTP的子板都成功配对。

哪个OTP字段/值导致了这种情况,解决方案是什么?我们无法调试,因为…嗯. .OTP,除非我们有100个母板来使用暴力。

谢谢你!
Bojan

设备:
PM_Dialog
离线
最后看到:2天2小时前
工作人员
加入:2018-02-08 11:03
嗨bojanpotocnik,

嗨bojanpotocnik,

谢谢你的在线问题。请阅读OTP报头,您将看到没有任何与安全相关的文件。这种行为与OTP无关。是否有可能使用BLE嗅探器并共享日志文件,以便我们能够了解在空中发生的事情?

谢谢,PM_Dialog

bojanpotocnik
离线
最后看到:3周2天前
加入:2019-11-26他们就
事实证明并非如此

事实证明,这不是OTP的直接过错。

如在评论中所写在c代码片段中,如果OTP未编程,则使用CFG_NVDS_TAG_BD_ADDRESS获取BD地址值。碰巧CFG_NVDS_TAG_BD_ADDRESS的值与我们的测试BD地址相同,因此它实际上从未更改。

当我们开始实际设置实际的BD地址时,CFG_NVDS_TAG_BD_ADDRESS的值不正确,并且在运行时更改了地址—导致配对失败,如单独的问题—所述修改设备BD地址后配对失败.所以在未编程OTP的生产设备上运行FW时,通过命令设置了BD地址,导致配对失败。但是,当在编程了OTP的主板上测试时——OTP中的地址与我们的测试地址不同(与CFG_NVDS_TAG_BD_ADDRESS相同),再次触发地址更改(将其更改为我们的测试地址)——配对失败。

将CFG_NVDS_TAG_BD_ADDRESS设置为所有0 (co_null_bdaddr)没有帮助,行为是相同的。如果将nvds_get_func改为返回NVDS_FAIL,则默认的对话框BT地址应用于ROM (a8:89:67:45:…)。

PM_Dialog
离线
最后看到:2天2小时前
工作人员
加入:2018-02-08 11:03
嗨Bojan,

嗨Bojan,

我们已经把这个从论坛离线-一个电子邮件已经发送到您的注册地址。

谢谢,PM_Dialog