利用烧录器烧录了几个贴片回来的板子,程序都是协议栈分离后的,但是某个板子蓝牙连接上啥也没操作就断开了,打印出来看显示超时,连接上唯一的操作就是不断协商蓝牙连接参数到我设定的范围。难道是这个引起的吗?但是其余板子没有这种情况
超时断开是reason8.
出现超时断开,可以检查以下几点:
①高频晶振使用32M,如使用从机则低频晶振使用内部的;
②先烧录例程进行测试即peripheral,查看是否断连;
③查看是否没有22uH电感但是开启了DCDC的使能;
④检查芯片的焊接,即芯片背面是否与硬件板共地良好(该点务必注意)。
针对你的情况,建议②④,即烧录官方例程观察日志是否在不同板子上表现一致。同时将芯片重新焊接,确保共地良好。
感谢您的建议。电感是有的,芯片也曾与良好的板子对调测试过,就是该芯片会出现这种问题。烧录例程没有断连,最大的不同就是连接参数的宏不一样,目前我测试了一下,发现lantency从设备延迟这个参数对断开的影响极其巨大,连接间隔和连接超时的两个参数保持一致的情况下,从设备延迟0能保持很久不断,但是从设备延迟一旦设置了值,最终都会出现我说的这种情况。
需注意:
根据上面的信息烧录例程不会出现问题,则检查你的应用代码与例程的差异性。检查连接间隔的配置是否合理,即参考BLE文件夹下面的手册。
感谢您的回复,但是这个基础的情况我是知道和考虑到的,TIMEOUT超时时间例程起步就是100(1s),连接间隔范围我设置最大是125ms,就按这个最大的算,然后从设备我基本都没设置超过4,按4算吧,那有效连接间隔 = 125* 5 = 625ms,就算是例程的TIMEOUT也是大于这个时间的。而且实际的连接间隔我抓包看到是50ms左右,完全是满足这个公式的吧。我一开始也提到过,这个情况在几个板子中,只有这一个出现这个问题。所以问题点的根源应该不在这里,但是这个配置会确实对芯片的断开有影响。
你好,发送邮件至邮箱:lpc@wch.cn,该芯片寄过来我们看下。