本帖最后由 不爱胡萝卜的仓鼠 于 2024-9-1 00:58 编辑
本来想测试一下芯片在低功耗方面的表现,但是很可惜,SDK中没有找到低功耗相关的demo。那就只能简单看一下在正常工作是的功耗情况。
我这边测试的代码就是上一篇丢包及连接稳定性测试文章中的代码。测试的是client端
一.原理图分析
首先掏出原理图,找一下应该在那个位置串入电流表比较合适。小熊派的开发板没有预留电流检测座,到时候可能得拆元件飞线或者割线了。
如图是H2821芯片最小系统,可以看到他的供电是从SLE_3V3这边过来的。而SEL_3V3是由下图的电路产生的,并且我查看了,SEL_3V3从U3出去后就只去了H2821最小系统,没有去其他电路。只要在U3与H2821最小系统之间串入一个电流表即可测量H2821的功耗
二.寻找元器件及走线
PCB板上没有印刷原件号,无法通过原理图的U3找到元器件,不过目标也挺明确的,只要找到一个5条腿的芯片,那他就是U3(这张原理图上没有第二个5条腿的芯片)
可以看到,SEL_3V3在正面是没有其他走线了。通过过孔去到了背面,然后我们翻过来,看一下背面走线
背面走线也很干净,没有乱跑,直接走到H2821最小系统的下面,然后通过过控去到正面和芯片对应引脚连接(以上结论我还用万用表测量过,是正确的)
3.焊接飞线
我有两个方案
方案一:把U3的1脚翘起,在1脚与下面的PCB之间串入电流表。这样的好处是到时候可以无损装回来,洗板水擦一下和新的一样,缺点是操作麻烦。
方案二:去背面割线
我先选择方案一(注意这个“先”字,都是泪啊)
先用风枪把U3吹下来,然后在他1脚下方贴上高温胶带,这样回头焊接回来,1脚就不会和下面的焊盘连上了。
把U3再装回来
随后焊接3根线,白色接电流表的输入,黄色接电流表的输出,褐色是GND(我用的是PPK2,所以得再加一个GND,如果是万用表的电流档,就不需要了)
这张图里可以看到,我把CH340E给拆了(就是在near link旁边的芯片),因为我发现他是直连H2821的,我之前做BLE芯片项目时,调试串口也接CH340(不过后缀是G),当芯片进入休眠时,CH340会通过TX还是RX脚来着,向芯片内部灌电,导致我测试功耗数据低的离谱。CH340是默认带高电平的,即使断开5V/3.3V电平选择跳帽,他也会有3.3.V,碰巧芯片串口硬件上没有做保护,电就这么进去了。为了避免本次测量和之前一样翻车,我直接把芯片拆了。
到此一切都很顺利,只要接上PPK2,测量一下就行了,但是!!!坑爹的事来了!!!
芯片不能正常工作,我哭死。server端日志显示client连接上了,完成了MTU交互,往后就断连了,然后反复循环。因为我把CH340给拆了,也看不到日志。
我用镊子直接短接两根线的焊点处,芯片就可以正常工作。短接2根线的末端,就又不行了。测量了电压,也是3.3V,没毛病。这给我整不会了。
难道是线太长?线的品质不好(这个线品质确实垃圾,但是以前其他板子也这么用,也没啥问题啊)?C20滤波电容太远了(这个我很怀疑,当时应该上示波器看一下的)?
时间关系,我就不去研究为什么了。马上放弃方案一,把U3复原(CH340还是拆掉,不装回去),选择方案二背面割线!
然后焊接杜邦线,与PPK2连接
4.测量
测量结果如下图
从中可以很明显的看到,有一阵一阵密集的大电流,对应时间,这就是500ms一次的数据发送。
最大尖峰是21.85mA,应该是发送时的瞬间电流,这个值和正常的BLE芯片差不多
不发数据时的平均电流是2.35mA
完成一次发送的平均电流是4.13mA(事实上这里应该是一发一收的平均电流,因为代码中是write,如果用BLE的概念来理解的话,他是先发送一次,然后再接收一次ACK)
下图是小熊派官方提供的文档中关于功耗的说明,参数上对的上,没有差的太多