微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640的蓝牙一次收发数据大小在哪里修改啊?

CC2640的蓝牙一次收发数据大小在哪里修改啊?

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

是这样:我手机 发送给模块 还是模块发送给手机的 字符串数据,分别最多是23字节\20字节,请问这个参数是在哪里修改的?

jucai,

这个是蓝牙规定的最大数据包长度。

这个咋办?除了分包发送。

是的  字节大于最大包长的话 ,除了分包发送就没有其它的办法的了。

谢谢你啊。 我再问下,困扰我3天了。 

Util_constructClock(&periodicClock, xxfun,
                      50, 150, false, SBP_PERIODIC_EVT);

这个函数 在 某个任务的初始化中 调用。然后

Util_startClock(&periodicClock); 执行此句后 定时器开始执行。50个周期后

进入
xxfun
函数,该函数执行完成后下次是不是150个周期后才会进来?
=======================


jucai,

关于这个,请看你发的另外一个帖子的回复。

再麻烦你下,你的回答解决了我好多问题

1:串口接收发送最大 一次性一包  就只能32字节? 若 不是,怎么修改啊。

2:系统的时间片在哪里修改啊?  而且,有没有 延时函数 啊,类似于_delay_ms()

3:ADC采集的时候,我用 芯片7*7的,DIO23 对应的AUXIO7.      

     第一个问题来了:MUX0~4  用哪个配置啊。 若是用MUX3,是不是  

HWREGB(AUX_ADI4_BASE + ADI_4_AUX_O_MUX3) = 0x80;

第二个问题:若是 0x80,则为何我采集的电压不对啊。    我用的无论3.3的还是内部的4.3V的,AD7 接的3.3测下来始终是2.75V左右(2722*4.3/4096 = 2.85V)

看到你问的这些问题,也是花了我很长时间才搞定。

1.串口接收是buffer模式的话,参考SPP例程,一次发1KBytes是毫无压力的,更高的我没有尝试过。

2.蓝牙转发速率与串口的接收发送速率是两个东西,并无影响。一般是串口速率更快,115200的波特率,都10KBytes/S了。蓝牙转发速率受蓝牙协议限制,就是所说的20字节有效数据长度。但是稳定数据传输也可以到3Kbytes/s左右。在20ms的链接间隔下,我测试得到的稳定传输速率可以到3.3Kbytes/s。

3.系统的tick默认是10um,就是任务的节拍,可以在cfg文件中修改。但是你要是只需要ms级延迟的话,Task_Sleep()就可以了,us级的就要用定时器了。

4.ADC按照Yan大神的例程,有点问题,你可以再e2e上找一下,有个buff模式的例程,可以正确使用,只是精度有点问题。

谢谢你的热心回答。

1:串口速率我再看看。

2:蓝牙的接收发送速率 我也对 链接间隔 怀疑过,但手机端的一个临时APP最多发送接收20字节,故暂定20字节/次。

3:AD采集的时候 上次有个干扰源,导致测试不准。最后实测下来是3.2V。用SCS测下也是3.2V。 但读取芯片的电池监测寄存器是3.3V,电表量取也是3.3V文斯不动。   对此,我暂时没解了,为何差0.1V这么大

能不能给一份程序参考一下

Hi JianHua Zhou2 ,

   我用的是SPP工程做串口透传,我测过,从PC端到手机端一次可发最大16字节的数据,超过16字节,自动分包发送,比如一次发32字节,手机端能收到32字节。

   现在我遇到的问题是:手机端往PC端发数据,一次最大能发20字节,不过超过20字节就不会自动分包发送了,比如我发21个字节,PC端串口只输出前20个字节,后面的数据就没了。一个时间间隔内接收几个包可以在SPP工程中修改的么?还是说手机端的APP限制了只能发20个字节,且多余字节不会自动分包?PS:我用同一个手机APP测试另一歀BLE蓝牙(DA14580)是可以从手机端一次发送超过20字节(自动分包)的。

   因为项目要求,手机端往蓝牙模块发送数据的速度要比较快,一次接收20字节,就算最短的时间6.5ms也不能满足要求,所以我想让它每个时间间隔内接收多个包来提高一下速率。

你好,

     SPP工程TI的工程师做的很用心,基本的东西都已经考虑到了,数据层面我们需要改动的东西很少。

首先,我的应用场景跟你的可能刚好相反,我主要是从MCU->APP发送大量数据,所以在原工程基础上主要修改了串口数据转发到APP的部分,但是道理应该类似。

按照我之前测试的情况来看,数据从APP->2640->PC,即使多于20字节,好像也是会自动发送的,现在不是很确定了。

对于速率问题,我使用的方向,现在每秒3KBytes的速率还是比较可靠的,你反方向按道理也应该没问题,所以不是连接间隔的问题,我现在连接间隔是20ms。

我建议你还是找到数据的源头和出口地方,多研究研究,尝试自己来控制发送的动作,这样才能快速的定位到问题所在。因为按照基本工程,他是接受到一次数据就置一次EVENT,在EVENT处理函数中转发,发3KBytes/s容易出现丢数,我就只把接收到的数据存起来,自己通过定时器均匀的往外发,目前测试还是很稳定的。

嗯嗯,好的。非常感谢您的热心解答!

Hi Jian Hua,

现在透传速率能到多少?是否开了power saving?

我在不开power saving 时速度接近于串口波特率,且比较稳定,但如果开了power saving(串口开了hand shaking)就会有数据丢掉,实际测试应该是串口接收端出问题,你有碰到过类似的问题吗?

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

网站地图

Top