Topic

FAQ
Login Register
8232发送报错LL_ERR_TX_FIFO_NOT_ENOUGH
Feb 10, 2022 20:04

/

A

/A

我使用8232做数据传输模块功能,蓝牙协议栈使用v1.3.0(telink_hawk_ble_sdk_v1.3.0)

项目基本情况如下:


MYFIFO_INIT(blt_rxfifo, 100, 4);

MYFIFO_INIT(blt_txfifo, 220, 4);

初始化调用blc_att_setRxMtuSize(240),并在蓝牙连接后进行MTU请求,回调成功后更新发送的数据包大小为effectMtuSize-3;

连接后调用bls_l2cap_requestConnParamUpdate (8, 12, 99, 400)更新连接间隔;

发数据调用bls_att_pushNotifyData( BLE_UART_NOTIFY_HANDLE, data, len);


手机1:

Redmi K20 Pro

MIUI版本 12.0.6稳定版

Android版本 10

内核版本 4.14.177-perf-g66aed98


手机2:

Honor 9i LLD-AL20

EMUI版本 9.1.0

Android版本 9

内核版本 4.9.148


手机1和手机1使用的APP为nRF Connect工具


遇到的问题:

1、使用手机1发送80个字节数据能成功;

2、使用手机2发送80个字节数据不成功,bls_att_pushNotifyData返回LL_ERR_TX_FIFO_NOT_ENOUGH,且每次都会失败;

3、已确认手机1和手机2都已成功进入mtu回调函数,且effectMtuSize=0xF0;

4、使用手机2发送40字节能成功,大于50字节后均失败返回LL_ERR_TX_FIFO_NOT_ENOUGH;

5、已下载v1.3.0的8232_BLE_SDK_Patch进行替换了7个补丁包还是出现同样的问题;

6、测试过很多其他手机,目前还发送一台也会发送失败的手机,手机信息如下:Redmi 5 Plus,

MIUI版本11.0.3

Android版本8.1.0

内核版本3.18.71


发送的数据并没有超过MTU-3的值,而且发送数据是在MTU成功回调之后十几秒,

是什么原因导致手机2出现LL_ERR_TX_FIFO_NOT_ENOUGH呢?


2 replies
TL_bloom5 Feb 11, 2022 10:35
0
/A

如果使用NRF Connect的话,能否看一下app的log,log是HCI交互的,在没有空中抓包的情况下可能会有更多有用的信息。



sujianliang [Author] Feb 13, 2022 11:20
0
/A

是否会与这个配置有关?

MYFIFO_INIT(blt_rxfifo, 100, 4);

MYFIFO_INIT(blt_txfifo, 220, 4);