打印
[蓝牙芯片]

CH592的BLE+USB应用冲突怎么解决

[复制链接]
1115|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
BLE, USB, H5, BCD, CD, CDC
例程BLE主机模式加入USB CDC功能后,BLE偶尔会占用系统时间过久,造成USB掉线,有没有好的解决办法

使用特权

评论回复
沙发
WCHTECH75| | 2025-6-5 19:47 | 只看该作者
BLE是主循环查询,tmos任务和回调实现通常不会占用太长时间,可以查看下程序中是否有其他事件处理事件较长或开启睡眠低功耗导致usb掉线。

使用特权

评论回复
板凳
dffzh| | 2025-6-6 08:56 | 只看该作者
是已经通过实际测试仿真确认了BLE占用系统时间太久了?

使用特权

评论回复
评论
dffzh 2025-6-6 09:06 回复TA
@彩虹天空cc :1、正常时占用时间是多少?2、占用时间较长时,仿真看下是哪块代码或循环结构导致的,逐步排查。 
彩虹天空cc 2025-6-6 08:59 回复TA
我通过翻转GPIO测得BLE最长占用0.8ms时间 
地板
彩虹天空cc|  楼主 | 2025-6-6 08:58 | 只看该作者
在CONFIG.h中已经把HAL_SLEEP设为FALSE
把BLE任务屏蔽掉,USB就不会掉线,不然偶尔会掉线

6527868423c904509a.png (23.99 KB )

6527868423c904509a.png

使用特权

评论回复
5
彩虹天空cc|  楼主 | 2025-6-6 09:04 | 只看该作者
我usb是这样做的

9372668423e80733aa.png (134.53 KB )

9372668423e80733aa.png

使用特权

评论回复
6
彩虹天空cc|  楼主 | 2025-6-6 09:07 | 只看该作者
串口打印显示USB过一会就自己掉线
Discovering...
Device 1 - Addr 38 c8 c6 36 31 36
Device 2 - Addr 2b d7 58 41 b2 7c
Device 3 - Addr 2a d9 3d 2f 35 c2

[09:02:59.850]收←◆Device 4 - Addr 99 ba 60 59 2c 14
Device 5 - Addr b0 3d fd 22 39 3d
Device 6 - Addr d4 a0 a5 1 30 75
Device 7 - Addr b5 5a f d8 e5 9
Device 8 - Addr 75 a3 d7 5a 82 2

[09:02:59.955]收←◆Device 9 - Addr 7b 38 a2 c5 80 68
Device 10 - Addr 8d 1 24 52 16 c1

[09:03:00.031]收←◆SET_ADDRESS:48
str 3
str 3
str 0
str 0
str 2
str 2

[09:03:00.093]收←◆SET_CONFIGURATION
GET_LINE_CODING:0
ctl 00 00
SET_LINE_CODING
21 20 00 00 00 00 07 00
LINE_CODING 0 115200 8 1 0
GET_LINE_CODING:0
str 0
str 0
str 0
str 0
str 1
str 1
str 1
str 1
str 2
str 2
str 2
str 2

[09:03:00.185]收←◆ctl 00 00

[09:03:00.301]收←◆ctl 00 00

[09:03:01.285]收←◆Device not found...

使用特权

评论回复
评论
彩虹天空cc 2025-6-6 09:55 回复TA
@WCHTECH75 :关闭调试也试了 
WCHTECH75 2025-6-6 09:48 回复TA
串口打印是比较耗时的,可以将打印去掉试试。 
7
低语之树| | 2025-6-6 09:41 | 只看该作者
在使用 沁恒 CH592 开发 BLE + USB 同时工作的应用时,确实可能出现资源冲突或接口竞争的问题,比如:

BLE 占用主频高、中断多,干扰 USB 时序;
USB 使用独立端点和中断系统,与 BLE 堆栈冲突;
SRAM/Flash 空间分配不合理;
某些引脚(如USB D+/D-)与外设复用冲突;

使用特权

评论回复
8
彩虹天空cc|  楼主 | 2025-6-6 09:54 | 只看该作者
最后发现关闭DCDC POWER就好了
#if (defined(DCDC_ENABLE)) && (DCDC_ENABLE == TRUE)
    PWR_DCDCCfg(ENABLE);
#endif

使用特权

评论回复
9
绝影孤狼| | 2025-6-9 08:27 | 只看该作者
这个问题可能是由于资源冲突引起的。你可以尝试调整BLE和USB的优先级,或者优化BLE的数据传输速率,减少对系统资源的占用。

使用特权

评论回复
10
暖茶轻语| | 2025-6-9 14:49 | 只看该作者
这个问题可能是由于BLE和USB共用系统资源导致的。你可以尝试优化BLE的代码,减少其占用系统时间,或者使用中断服务来管理BLE和USB的数据传输。

使用特权

评论回复
11
绝影孤狼| | 2025-6-9 15:22 | 只看该作者
这个问题可能需要对CH592的固件进行优化。你可以尝试调整BLE和USB的优先级,确保USB通信不会因BLE占用时间过长而中断。

使用特权

评论回复
12
暖心小太阳| | 2025-6-9 15:43 | 只看该作者
这个问题可能是由于资源冲突导致的。建议检查BLE和USB的中断优先级设置,确保USB的优先级更高。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

58

帖子

0

粉丝