所有的iPhone都无法连接上CC2541
我的设备是以从机方式工作,偶尔调用一下snv_write读写数据,使用一段时间后,有部分设备出现 所有苹果手机都无法连接上的情况。
通过抓包分析发现苹果手机都会调用一个“LL_Version_Ind”的指令,从机出问题后没有响应该命令,导致苹果设备会卡住无法连接。但是Android手机和USBDongle没有使用过这个命令,不会出现卡住的情况。这个指令还是苹果底层指令,无法规避,此时该从机就出现不能被所有苹果手机连接的问题。从机设备掉电重新上电也无法恢复。但是经过调用几次自己写的重置设备的指令(其中包含HAL_SYSTEM_RESET和几个snv_write)以后,它又能恢复工作了。
下图是出问题后的抓包情况:
下图是恢复正常的通讯的抓包:
这个指令是如何实现的呢?和snv有关系么?希望能提供一些与"LL_Version_Ind"相关的提示,方便查找分析这个问题。
建议用dma方式写内部flash 另外每次写几个字节数据啊?
我是直接调用的osal_snv_write读写数据的,使用了0xB1-0xB9的snvid,长度都小于32字节,都是4的倍数。看不出来和这个有什么关系,主要是不知道那个回应LL_Version_Ind是怎么实现的,不知道什么原因会导致这种问题。
对了,我的设备之前天线处理的不太好,通讯经常不稳定,不知道协议栈是否在不稳定的连接下会出这种故障? 这个故障麻烦的是断电重启也不能恢复。
找个官方板子对比一下!
在英文论坛上得到了官方的回复,希望对其他坛友能有些帮助。
https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/491054
你好!最终的结论出来了吗?我也是这样的情况,用了一段时间后IOS设备都没有办法连接到设备了,是因为SNV的操作导致的吗?请问现在解决了吗?