最近一段时间被拉去支援哥们的一个微弱信号采集项目,解决关于蓝牙干扰模拟信号采集的问题,硬件工程师也要有一定的软件背景,看海采坑小课堂今天和大家分享下问题的经过。
起因
哥们做的微弱信号采集,目标信号大约是uV级别,带宽小于100Hz,前期调试时发现会有一个22Hz的干扰,这是怎么回事呢?于是我就被安排了过去。
采集系统结构并不复杂,主要由一个前端运放、ADC和蓝牙模块组成,蓝牙模块是CC2640,微弱信号经过运放放大之后,被ADC转换为数字信号,通过蓝牙发送给电脑。
蓝牙?我看到蓝牙时,心里已经有了怀疑方向,但咱以前也没接触过蓝牙,还是慢慢分析吧。
复现
接手到问题后当然是先复现现象。下图是采集70uVpp@12Hz的正弦信号的时域和频域图,22Hz的干扰很明显,竟然达到了16uVpp(谐波以及50Hz工频干扰暂时不考虑;前期版本不稳定,22Hz的频率也有一点点变化,这里也不详细介绍,我们都统一看22Hz)。
分析
首先要判断干扰从哪里引入的,将运放与ADC断开,单独用ADC采集时,基本没有干扰,则干扰大概率和前端运放有关,耐心搞耐心干。
降低前端运放放大倍数,将放大倍数修改为2倍,22Hz干扰也基本消失,和单独使用ADC的结果接近,得出初步结论:干扰很可能是被高放大倍数的运放放大后,被ADC采集到,进而在频谱上出现。
基于上述分析,恢复运放放大倍数后,将前端运放输入短路,重新连接ADC测试,发现在输入为0时,也有22Hz干扰。
分析2
既然干扰和前端运放强相关,就着重检查了前端运放的模拟、电源走线,以及电源分配和地回流的处理。
发现了几个可能的风险点:
模拟信号缺乏屏蔽
模拟电源缺乏屏蔽
模拟地数字地隔离不干净
接下来就是查找产生干扰的源(我怀疑是蓝牙搞得鬼),咱不急,一点点来分析。
先测试了模拟电源的纹波,受限于示波器精度,只能分辨10mV,没发现异常,但这并不代表电源就是ok的,需要进一步排除。
我甚至怀疑是模拟电源的开关噪声被采集到了,因为我们系统电源的架构包含电荷泵以及BUCK,这个是一个怀疑的对象,但是对电荷泵的测试中没有发现和22Hz有关的频率,电源手册中也没有相关频率介绍。
考虑到手头没有测电流以及高精度电压测试仪器,为了进一步对电源进行测试,我尝试抓模块工作的电流,重点在抓蓝牙工作时的电流,很怀疑是蓝牙间歇性工作引起的干扰,如果猜测正确,应该在软件代码中会找到证据。
话不多说,是骡子是马咱拉出来溜溜。
测试原理如下图,将一个电阻串联到蓝牙电源线路中,根据欧姆定律,流过电阻的电流和电压成正比,那么测量电阻两端的电压,就可以间接观察蓝牙工作时的电流情况。
对于电阻的选择要注意,如果选择的太小,那么微弱电流乘小电阻得到的电压太小,无法被10mV的示波器看到。反之如果电阻太大,那么其分压就大,使得蓝牙无法 正常工作,阻值计算过程这里不做介绍。
锁定
果不其然,电阻两端的电压波形如下(示波器不能存波形,我缺个示波器。。。。各位同学将就着看吧),电阻两端的电压存在22Hz的纹波,说明蓝牙工作时有22Hz 的脉冲电流,结论:22Hz干扰大概率由蓝牙引起。
需要进一步验证蓝牙的影响。我们的蓝牙在工作时,并不是一刻不停的发送数据,而是间歇性的发送数据,这个间歇性的频率可调,我们项目就是22Hz,如下图所示,这个间歇性工作期间,蓝牙就会从电源抽一个比较大的电流,虽说CC2640是低功耗器件,然而这个功耗指的是平均功耗,并不是瞬时功耗。
我从来没有搞过蓝牙,凭直接感觉,这个连接间隔并不是固定的,大概率是可调的,联系软件哥们,找到了和22Hz有关的代码,下面的代码就是和连接间隔时间有关。
我们修改了时间间隔,将其由22Hz改为33Hz,再次测量干扰的频率同时串电阻测量蓝牙电流波形,均发现干扰和电流频率从22Hz转变为33Hz。
问题就是蓝牙引起,根因锁定。
对于EMC而言,有传导和辐射两种方式,那么这个属于哪种呢?
回答这个问题之前,有同学会有这个疑问,低采样率能采集到蓝牙高频信号吗?
蓝牙是2.4G(我这示波器带宽才500Mhz,我缺个示波器),模拟系统采样频率才几百Hz,那么几百Hz的采样率可以采集到高频信号吗?
理论上是可以的,只是不满足奈奎斯特采样定理,会出现频率失真。
而对于实际系统而言,比如运放,都有自己的带宽,这个带宽小于2.4G,实际上又是采集不到高频信号。
那为什么还是会出现呢?(有点矛盾有点绕)这是因为对于辐射而言,系统内部有一些非线性器件,会起到调制解调或整流的作用,最终在频谱上出现(后面有时间再详细介绍)。
多说一点,我们看下CC2640的电源架构。
2640的主电源是VDDS,VDDS进来后会通过一个BUCK降压产生VDDR给射频RF回路使用,2640也可以通过设置选择LDO给射频使用,LDO和BUCK二选一,LDO缺点是功耗就大了,优点是可以节省面积。我实测时发现如果拆掉这个BUCK电感,2640其实也可以自动开启内部LDO维持系统正常工作。
根据前面的判断,蓝牙工作时的大电流22Hz的脉冲干扰和RF回路有关,用示波器测了下VDDR纹波,就是22Hz。如果分析传导的话,就着重查VDDS和VDDR这两路电,以及GND的处理。
蓝牙这个干扰源是通过传导、辐射引起的,不同的原因有不同的解决对策。
经过处理后,22Hz干扰已经可以降低到0.5uVpp以下了。
接下来就是重新修改原理图,PCB走线,投板后希望一切正常。