1. 问题现象与初步排查
最近在调试中科蓝讯平台的蓝牙模块时,遇到了一个棘手的问题:当设备通过高速串口进行数据传输时,如果此时有来电通话,设备会直接关机。这个现象非常奇怪,因为单独使用高速串口或单独通话都是正常的。作为嵌入式开发者,我们需要系统地分析这个问题。
首先我做了几个基础测试:
- 仅开启高速串口传输大数据(1Mbps以上),设备工作正常
- 仅进行通话测试,设备工作正常
- 当高速串口传输过程中来电,设备立即关机
重要提示:这种复合型问题往往与电源管理或中断冲突有关,需要从底层开始排查。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件层问题分析
2.1 电源系统负载能力
中科蓝讯平台通常采用3.7V锂电池供电,经过DC-DC转换后为各模块供电。我测量了以下关键参数:
| 工作状态 | 整机电流 | 3.3V电源纹波 | 1.8V电源纹波 |
|---|---|---|---|
| 空闲状态 | 15mA | 50mV | 30mV |
| 高速串口 | 85mA | 120mV | 80mV |
| 通话状态 | 210mA | 150mV | 100mV |
| 复合状态 | 瞬间310mA | 300mV+ | 200mV+ |
从数据可以看出,当高速串口和通话同时工作时,电源系统出现了明显的电压跌落。特别是3.3V电源的纹波超过了芯片的容忍范围(通常要求<5%即165mV)。
2.2 硬件设计改进方案
针对电源问题,我们做了以下改进:
- 在DC-DC输出端增加470μF钽电容
- 为蓝牙模块和基带芯片的电源引脚添加0.1μF去耦电容
- 将电源走线宽度从8mil增加到15mil
- 在电池连接器处增加100μF储能电容
改进后测试发现,复合工作时的纹波降到了180mV左右,但问题仍未完全解决。
3. 软件层问题分析
3.1 中断优先级冲突
中科蓝讯平台的典型中断分配如下:
c复制// 典型中断优先级配置
#define UART_IRQ_PRIORITY 5
#define AUDIO_IRQ_PRIORITY 2 // 音频相关中断
#define BT_IRQ_PRIORITY 3 // 蓝牙协议栈中断
