GD32L233C-START 开发板评测二: GD32L233C芯片低功耗性能测试1
[复制链接]
GD32L233C-START 开发板评测二:
GD32L233C芯片低功耗性能测试
一、测试前的准备工作
在准备进行低功耗性能测试前,首先,我们要先对开发板的电路进行分析,为测试芯片的休眠电流作出准备。
图1:开发板上MCU部分电路原理图
图2:开发板MCU部分电源供电电路
如图1和图2所示,这是开发板上MCU部分的电路图,从图上分析可以看出,USB输入的5V电源电压通过LDO稳压后输出+3.3V电压(+3V3)是直接送入到单片机的VDD和VBAT这2个电源引脚的,同时,MCU外接的VREF电压也是从+3.3V通过电感滤波后获得的。所以,要测试芯片在休眠时的电流,我们必须在PCB上找出连接MCU电源引脚的+3.3V铜皮走线,将它用刀片割开,再在这个回路中串入万用表进行电流测量。
下面是PCB上+3.3V电源至MCU的铜泊走线图,我将芯片电源3.3V走线的位置标示了出来,在进行测试时,将用刀片将这个供电的铜皮割开,再串入万用表测量电流。
图3:开发板PCB走线图
如上图所示,我用黄线标志出来的走线就是单片机的电源供电走线铜皮,+3.3V从LDO稳压输出后通过E6 滤波,然后直接连接到了单片机的1脚(VBAT)和10 脚(VDD),另一路铜皮通过电感L1连接到单片机的9脚(VREF+),所以在这里我先将底层+3.3V的供电的这条铜皮割开,然后串入万用表测量电流。
二、对芯片进行低功耗程序编程和测试
为了测试芯片的低功耗性能,我们需要对芯片编写程序,使它进入低功耗休眠模式,在这里,GD32的官方库文件里已经包含了测试用的DEMO程序,它的路径如下:
我们打开官方提供的库文件;在目录下有一个Examples的文件夹,它的目录下就是芯片的整个DEMO测试程序,因为我们是需要测试芯片的休眠电流,所以在这里我们选择PMU文件夹打开,在它的目录下,有5个测试程序,我们选择第一个文件夹下的测试程序“Deepsleep_wakeup_exti”,外部中断唤醒休眠模式。
将这个文件夹下的所有文件复制并替换库文件夹里的模板工程文件夹“Template”里的文件,然后打开进行编绎,在这里我使用的是Keil MDK,然后将编绎好的固件烧录到芯片运行测试。
注意:官方提供的工程文件里,需要修改一下程序,因为原程序在芯片上电后定时器将启动,然后初始化完成后有一个2秒的延时,再进入休眠模式,这里定时器将会产生中断,执行中断程序里的led_spark函数,这样,当程序运行到休眠时,LED是打开的状态,影响休眠电流,所以,我们需要在休眠前增加一条关闭LED的函数。
三、休眠电流测试
将上面的代码编绎后烧录到芯片中进行测试,我们会发现芯片在上电复位后,LED将闪烁5次,然后熄灭(重点来了,这就是为什么我们要增加一个关闭LED的函数,否则,LED是打开状态的)
- 观察休眠电流,通过万用表监测,我们发现休眠时,芯片的工作电流是大约1.6mA。
等等:怎么休眠电流这么大呢?
还记得在论坛的评测文章中有一个小伙伴提出的休眠电流也是1.6mA左右。
- 分析电流过大的原因,然后进行测试。
- 首先,我们来排除与芯片电源引脚无关的其它电流消耗,这里VREF+也通过一个电感连到了+3.3V上,所以我先将电感拆除,然后再进行电流测量,测试结果发现电流还是1.6mA左右,证明VREF对电流的影响不大
- 割开SWD调试脚与GDLINK的2个IO口的连接,测试结果:电流1.6mA左右没有变化。
- 再检查开发板的电路,发现MCU的UART0连接到了虚拟串口芯片CH340上,因为串口的TX和RX在默认状态是有电压的,根据以往经验,这个地方也会产生漏电流,如是,试着割开CH340芯片的供电,再次测量休眠电流,测试结果1.1mA,电流减少了0.5mA。
- 至此,因时间关系(下班后利用晚上的时间进行测试),低功耗初步测试完成,下一次继续深挖这个开发板上休眠电流大的原因,争取能最终测试到符合数据手册标定的休眠电流。并将开发板上引起休眠电流过大的原因与大家分享。
|