本帖最后由 skywalker_lee 于 2021-3-25 09:33 编辑
采用EFR32BG22C112F352GM32进行蓝牙设备开发时,当Simplicity Studio的Bluetooth SDK版本为2.13.6(或更早)时,会出现手机APP的BLE连接成功率偏低的现象。部分型号手机室内5米连接成功率接近于70%。
通过Simplicity Studio的Energy Profiler抓取BLE广播电流波形。发现在第三次广播时,芯片有提早进入休眠的现象。这直接导致了当芯片进行第三次广播后,没有等待足够的时间接收手机发送的连接请求,从而连接失败。
发现这个问题后,将问题反馈给siliconlabs原厂,经讨论,应该是协议栈的问题,因为EFR32BG22C112F352GM32有两颗核心,M33+M0,其中M0负责RF的低功耗休眠与唤醒操作。M33将广播命令发给M0,但M0没有完成等待,M33就强制M0进入休眠,两颗核心的同步有些问题。确定问题后,将修改好的协议栈进行更新,果然问题解决。
经原厂反馈,我是中国第一个在产品上大规模使用EFR32BG22的工程师,原厂对我发新问题并帮他们整改,也给与很高的评价。自豪