微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2650 蓝牙速率测试

CC2650 蓝牙速率测试

时间:10-02 整理:3721RD 点击:

以下是我们测试出现的问题。

 

硬件SensorTag2650,HW1.2.0,SW0.89。 软件版本ble_cc26xx_setupwin32_2_00_00_42893

 

工程SimpleBLEPeripheral,

 

添加特征值  SIMPLEPROFILE_CHAR6  (RW)

 

SIMPLEPROFILE_CHAR6负责读取数据。

 

测试程序  时间周期如下  10ms

simpleBLEPeripheral.c :

 

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic

// parameter update request is enabled

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     8//80  

 

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic

// parameter update request is enabled

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     8//800  

 

// How often to perform periodic event (in msec)

#define SBP_PERIODIC_EVT_PERIOD               10//5000

 

手机端app设置数据发送间隔  20ms,单次发送字节数20byte, SensorTag模块接收无问题。

 

手机端app设置数据发送间隔  10ms,单次发送字节数20byte, 

SensorTag模块接收会出现重复包问题,概率5%-10%,

(即SensorTag接收问题,

得到接收中断时(SimpleBLEPeripheral_processCharValueChangeEvt),

去协议栈取数据(SimpleProfile_GetParameter),

数据未更新,即取得上次数据造成重包)。

代码如下:

 

simpleBLEPeripheral.c  :

 

static void SimpleBLEPeripheral_processCharValueChangeEvt(uint8_t paramID)

    case SIMPLEPROFILE_CHAR6:

      memset(newChar6Value, 0,sizeof(newChar6Value));

      SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR6, newChar6Value );

 

 

若将函数SimpleProfile_GetParameter之前加入延时,重复包的概率会下降一些。现在怀疑问题为:因执行周期变小,造成的线程不同步。 

有做过类似测试的同学吗?一起探讨一下吧

以 3000 个数据包为例,手机app发完即停止,

SensorTag可以收到3000个左右的包,丢包率在 0.3%,但是其中的重复包占5%-10%。

可以说基本上每个包都可以进中断,但是在中断中取数据时,却有概率取到上次的数据。

相关中断和数据获取在 Stack中,无源码跟踪

有人做过相关测试吗

如果你把连接参数改为6会不会好一些呢?

改为6后,效果好一些。

但是还是会有重包,这是不是就代表2650的极限速率了?

支持的最大空中速率是多少

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top