cc2541 工作一段时间后 无法搜索到
TI工作人员您好,
我最近在用CC2541做一个蓝牙温湿度计的设计,系统中有温湿度,LCD和flash。现在固件和驱动都写好了,但是遇到一些蓝牙稳定性问题。
蓝牙模块工作几个小时后,手机就搜索不到蓝牙设备了,但是温湿度的数据还能正常读取,也能在LCD上实时的显示出来。看了flash的读写波形和时间间隔,也是和设计的效果一样。
请问你们有遇到类似的问题么,有什么解决办法或者需要排查的点么?
《新手问题集》:http://www.amomcu.com/forum.php?mod=viewthread&tid=276&extra=page%3D1
最后一点
但是我用示波器抓了SPI和 I2C的数据来看,连续读写的时间很短,最多的也就6ms
另外系统中还有一个中断 1s 的IO中断
使用sniffer抓下看出现扫描不到时,是否仍在advertising
在sniffer 上看不到蓝牙设备,手机也搜索不到。
然后我看了下代码,我用的1.4.0的协议栈
代码中是
uint16 gapRole_AdvertOffTime = 0; 注释中说这个值设置为0,表示默认30秒广播,但是我这边蓝牙一直都是在广播的,只是在几个小时后,才不广播。
也就是说,没有广播所以连不上,你是希望一直广播?
控制广播的代码是可见的,你完全可以跟踪debug一下,看具体是什么原因30秒不停广播
估计是射频部分的问题!晶振和天线部分。
对的 , 希望一直广播,外边一直能够搜索的到。
是这样的,我又去看了代码,代码中有个宏定义
#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL
应该是设置为一直广播了,所以一直广播是正常的,但是广播了几个小时后不广播了。
这部分是用的TI的官方设计
如果是晶振的问题的话,为什么会在几个小时后才会搜索不到呢?
和这个没关系。主要和gapRole_AdvEnabled和gapRole_AdvertOffTime 两个变量有关系。
可以搜索下这两个变量。按照程序的逻辑,应该是不会停止广播的。看是否应用代码里有哪个地方会把gapRole_AdvEnabled设置成false?
你好,
两点建议
1. 升级到最新的协议栈,1.4.2的协议栈上去。
2,设备中有耗费大量时间的事件在处理,导致广播周期被迫停止、导致连接通信超时。如:采集adc耗费了500ms,很容易造成广播停止、蓝牙断开。
解决方法:增大连接间隔(CC2541默认连接间隔为80ms,可增大为100ms+)、缩短事件处理时间(如将adc的500ms压缩至50ms,总之这个时间必须小于连接间隔)。
谢谢啦,最近把晶振换了,现在工作24小时了没有问题。可能是晶振的问题,但是这里面的原因不知道有人可否答疑一下,呵呵
你好,
是32768的晶振问题吗?
32768的晶振会影响到蓝牙连接问题。因为CC2541唤醒同步蓝牙是靠32768晶振来定时计算的。
在CC2541上,我们哟要求晶振必须符合下面的规范。
另外,你可以通过关闭power saving来一致使能CC254x设备来判断问题是否由32768晶振造成。
Manufacturer | MPN | Package | ESR [ohm] | CL [pF] | Tol [ppm] | Temp tol [ppm] | Aging [ppm/year] | Temp range [deg C] | Used in TI reference? | Tested by external lab? |
---|---|---|---|---|---|---|---|---|---|---|
NDK | NX2016SA 32MHz EXS00A-CS04859 | 2016 | 60 | 10 | +/- 15 | +/- 25 | -40 / +105 | Yes | - | |
NDK | NX3225SA 32MHz EXS00A-02994 | 3225 | 50 | 16 | +/- 10 | +/- 15 | -30 / +125 | Yes | - | |
Epson Toyocom | FA-128 | 2016 | 60 | 10 | +/- 10 | +/- 10 | 5 | -40 / +85 | Yes | - |
Epson Toyocom | FA-20H | 2520 | 60 | 10 | +/- 10 | +/- 10 | 3 | -40 / +85 | Yes | - |
NDK | NX3225GA 32 MHz EXS00A-CG02611 | 3225 | 50 | 10 | +/- 20 | +/- 20 | -40 / +85 | Yes | - | |
NDK | NX2016SA 32.000MHz EXS00A-CS05931 | 2016 | 60 | 10 | +/- 15 | +/- 25 | -40 / +125 | CC2540T BLE Light | - |
Manufacturer | MPN | Package | ESR max [ohm] | CL [pF] | Tol [ppm] | Temp tol [ppm] | Aging [ppm/year] | Temp range [deg C] | Used in TI reference? | Tested by external lab? |
---|---|---|---|---|---|---|---|---|---|---|
Epson Toyocom | FC-12M | 2012 | 90k | 12.5 | +/- 20 | 3 | -40 / +85 | Yes | - | |
Epson Toyocom | MC306 | 8.0 x 3.8 mm | 12.5 | 20 | +/- 50 | -40 / +85 | Yes | - | ||
NDK | NX3215SA 32.768KHz EXS00A-MU00109 | 3215 | 90k | 12.5 | +/- 20 | +/- 3 | -30 / +85 | No | - | |
NDK | NX3215SA 32.768KHz EXS00A-MU00301 | 3215 | 80k | 12.5 | +/- 20 | -40 / +125 | CC2540T BLE Light | - |