[蓝牙芯片]CH582作为Central连接其他厂芯片Disconnected...Reason:3b解决方案

news/2024/10/28 23:22:12/

今天要跟大家分享的是WCH的CH582作为Central连接其他厂芯片peripheral遇到的坑。踩完这个坑,感觉越来越喜欢CH582了。良心的蓝牙芯片,特别是对于我们这些搞电脑游戏外设的开发者来说,真乃国产良“芯”!!!

一、硬件环境:
1.Central:
用的是CH582作为central接收两个peripheral的报文,同时使用了它的USB host接收我们的usb hid设备报文,然后整合成一个usb dongle(实际上是一个(usb Gamepad)。582有蓝牙,又有两个usb(支持主从),竟是是强大如斯,赞赞赞


2.peripheral
这里我们有两个从机,都是用的FR8012HAQ ,这颗片子是我第一次接触的国产蓝牙,遇到了许多巨坑,其中的酸楚不便与人说。选择这颗片子的原因是它内置了PMU,电源管理模块,对于电池电量的检测是非常方便的,只需要把ADC参考源改一下,重新配置一下就可以,但是ADC只有一个,而且是10位的,这就不友好了。
二、软件设计
本人软硬件都会一点,但都不精。所以软硬件开发时候都很容易遇到bug。
这次遇到的bug是连接参数问题。
首先是我们测试主从经常掉线,两从连一主,其中,数最后一个连接上的主机最容易断开重连,打印日志如下图: 

断开的原因是Disconnected...Reason:3b,是0x3B,马赛克的原因是我找不到那张bug图了
查阅蓝牙5.3规范中的错误码如下图: 

断开的原因是Disconnected...Reason:3b,是0x3B,马赛克的原因是我找不到那张bug图了


查阅蓝牙5.3规范中的错误码如下图

这里说是不可接受的参数,那这样应该是主从连接参数配置的问题。
下面我们来检查一下参数,首先是582做的central:

// Connection min interval in 1.25ms#define DEFAULT_MIN_CONNECTION_INTERVAL     6// Connection max interval in 1.25ms#define DEFAULT_MAX_CONNECTION_INTERVAL     100// Connection supervision timeout in 10ms#define DEFAULT_CONNECTION_TIMEOUT          100void Central_Init(){centralTaskId = TMOS_ProcessEventRegister(Central_ProcessEvent);// Setup GAPGAP_SetParamValue(TGAP_DISC_SCAN, DEFAULT_SCAN_DURATION);GAP_SetParamValue(TGAP_CONN_EST_INT_MIN, DEFAULT_MIN_CONNECTION_INTERVAL);GAP_SetParamValue(TGAP_CONN_EST_INT_MAX, DEFAULT_MAX_CONNECTION_INTERVAL);GAP_SetParamValue(TGAP_CONN_EST_SUPERV_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);}

计算参数,最小连接间隔6x1.25ms=7.5ms,最大连接间隔100x1.25ms=125ms, 连接超时时间100x10ms=1S.
接着我们再来看看从机的,

void param_timer_func(void *arg){co_printf("param_timer_func\r\n");gap_conn_param_update(0, 12, 12, 0, 500);}

然后再看API文档

 



0.625us是什么鬼?有这么夸张吗,BLE达不到吧。后来跟FAE确认,


1.25ms才是真。

然后我把两从机的参数改成与Central的一致。最小连接间隔6x1.25ms=7.5ms,最大连接间隔100x1.25ms=125ms, 连接超时时间100x10ms=1S.
完美解决!!!

三、个人总结
因为公司是小微企业,所以需要掌握很多技能,项目的迭代非常快,基本上每个人手头都是至少3个项目并行进行的。导致了很难深入学习。
但是我们不用担心学不到东西,我们需要做的是,做好笔记,利用闲暇时间总结一下,比如多发帖子!
另外就是遇到bug不要慌,找原厂FAE,这里真的非常感谢WCH的FAE,技术支持力度真的很到位。

 还有就是多去找找资料,比如Disconnected...Reason:3b这个错误码,其实在《Core_v5.3》,蓝牙的核心规范文档上面就有介绍,如下

 !!
---------------------
作者:lilijin1995
链接:https://bbs.21ic.com/icview-3277970-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

 


http://www.ppmy.cn/news/896773.html

相关文章

D-OJ刷题日记:散列查找实验(闭散列) 题目编号:582

请设计一个整型闭散列表,散列函数为除留余数法,处理冲突时的探查方法为线性探查法,其中散列表的长度、除留余数法的模和关键码的个数由键盘输入,再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找&#xff0…

【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度

【sgUploadTray】上传托盘自定义组件&#xff0c;可实时查看上传列表进度 特性&#xff1a; 可以全屏可以还原尺寸可以最小化可以回到右下角默认位置支持删除队列数据 sgUploadTray源码 <template><div :class"$options.name" :show"show" :size…

库克背刺等等党,iPad新老款全涨价,配件上还想多赚67元

羿阁 衡宇 发自 凹非寺量子位 | 公众号 QbitAI 离离原上谱&#xff0c;库克老贼对iPad全系进行了大涨价&#xff01; 且不论新品&#xff0c;搭载M2芯片的iPad Pro 2022&#xff0c;史无前例6799元起售。 就连在售的产品也应声而涨&#xff01; iPad 9涨价100元&#xff0c;iPa…

苹果的刀法不行了,iPhone15plus的定价将降千元

苹果在2022年发布了四款iPhone&#xff0c;其中的iPhone14plus本来是希望以更大电池容量来吸引消费者&#xff0c;然而由于落后的配置和设计极为不受欢迎&#xff0c;据称苹果吸取了教训将降低iPhone15plus的定价&#xff0c;降价幅度将达到千元人民币。 2022年苹果将iPhone划分…

华为起诉小米专利侵权,国家知识产权局已受理;iPhone 等设备电池正式涨价;FFmpeg 6.0 发布|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

网络数据安全风险评估实施指引(一)

近日&#xff0c;全国信息安全标准化技术委员会发布了《网络安全标准实践指南 网络数据安全风险评估实施指引》&#xff08;TC260-PG-20231A v1.0-202305&#xff09;&#xff0c;旨在响应《数据安全法》要求&#xff0c;落实重要数据处理过程风险评估&#xff0c;衔接已发布的…

iPhone13 系列售价曝光:没有涨价;曝华为P50系列7月29日发布;丁磊称专业比学校更重要:你同意吗?|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

苹果公司突然宣布多国App Store将涨价,但中国区未受影响

9 月 20 日消息&#xff0c;苹果公司宣布&#xff0c;最早于2022年10月5日起&#xff0c;下列地区App Store上的App及App内购项目的价格将上调&#xff0c;这些地区包括&#xff1a;智利、埃及、日本、马来西亚、巴基斯坦、波兰、韩国、瑞典、越南和所有使用欧元的地区。 值得一…