微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540与上位机最小连接间隔设置的问题

CC2540与上位机最小连接间隔设置的问题

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

CC2540的程序中设置如下

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     80(100ms)

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     800(1s)

#define DEFAULT_DESIRED_SLAVE_LATENCY         0

#define DEFAULT_DESIRED_CONN_TIMEOUT          1000(10s)

#define DEFAULT_ENABLE_UPDATE_REQUEST         TRUE

测试连接事件发生的频率,方法是参考TI 官网给出的功耗测试文档,正电源输入串联10欧姆,示波器抓10欧姆上的电压波形进行分析。

与CC2540 USB DONGLE连接时,可以测到1s中会有一次上下位机的连接事件发生,和CC2540程序设置的是一致的。

但是与我们自己的iphone手机app连接时,发现一旦连接,上下位机的连接事情周期变为30ms,非常耗电。

不知如何解决该问题,有两个问题请教一下。

1. CC2540能否不被上位机修改连接设置。

2.如果1无法做到,上位机,即APP中如何设置为1s。

谢谢

Hi Frank

    1. 从机本身是无法直接设置连接间隔的,只有主机才能直接设置连接间隔。从机这里设置的其实只是给主机提供一个数值范围,由主机在这个范围内选择合适的参数更新到连接参数中。

    不过你从机已经说明了最小间隔是100ms,而你测到的是30ms,我觉的你测到的数值应该是连接更新之前的数值。

    2. 你可以尝试在从机中设置的连接间隔的最大和最小值都为1s:

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     800(1s)

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     800(1s)

Hi shaokai Lin

     谢谢你的指导。请问一下,上位机是如何在范围内选择合适的参数,更新到连接参数中,上位机有相应的API函数吗?具体的调用的函数是?

    

1. 连接设置 由主机决定,两者连接之后,主机端的连接参数起作用。但是你这个问题还可以有第三种解决方法:

从机可以向主机发送连接参数更新请求,来请求主机的连接参数 更新到与从机一致。方法是:(参考simpleBLEperipheral.c)

// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST         TRUE

 uint8 enable_update_request = DEFAULT_ENABLE_UPDATE_REQUEST;

GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );

更改这3句代码,来使能或禁止,从机向主机发送连接参数更新请求,只要发送之后 主机就允许 然后连接参数就会变成你 从机端设定的参数 了

 

谢谢,之前一直是完全按照您说的设置的。但是上位机APP一旦连接,还是30ms。上位机调用的建立连接函数是connectPeripheral。不知问题何在?

你好  你的问题解决了吗 我也遇到了这个问题。你怎么侧脸的他的连接间隔时间是30ms

主要是ios对连接参数有限制,ios限定连接超时最大是6s,你给了10s,不符合他的规范,所以ios不接受你的参数更新请求,还是按照默认的连接参数进行连接,把10s改成6s应该就好了,有个文档专门介绍 ios 的 BLE 规范

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

网站地图

Top