基于RISCV指令集的中科昊芯DSP(280025C)开发板测试(二)——低功耗模式功耗简测
[复制链接]
本帖最后由 zhaoxiawanqiu 于 2024-8-23 21:50 编辑
昊芯入门学习记录-LPM简易测试
任务目标:
主函数执行两LED状态翻转20次后进入三种低功耗模式,每次间隔小于1S,系统160Mhz,默认外设配置(所有外设时钟均打开)。
一、测试数据
1、IDEL模式下功耗(电流显示其功耗,5V直流电源供电)
以上两图分别为未进入IDEL模式和进入IDEL模式(LED停止翻转)时电流消耗,显然可以观察到其电流均在168mA,即进入IDEL模式对该任务情况下负载功耗没有改变,分析其原因为在时钟初始化时打开了所有外设,进入IDEL模式时这些外设没有被关闭,又因该任务(灯是否翻转)对功耗没有影响,故有该现象。
2、StandBy模式下功耗
以上两图分别为未进入StandBy模式和进入该模式(LED停止翻转)时电流消耗,显然可以观察前者电流为166mA、后者电流为55mA,显然进入该模式可以明显降低系统功耗。
3、Halt模式下功耗
以上两图分别为未进入Halt模式和进入该模式(LED停止翻转)时电流消耗,显然可以观察到前者电流在167mA、后者电流在51mA,显然进入该模式可以明显降低系统功耗,且较Standby模式功耗更低。
4、测试视频(halt模式,其余两种模式类同)
二、代码解读
1、初始化延时,该函数大约在160Mhz频率的情况下延时2-3S,可防止系统上电进入低功耗模式而无法重新装载程序。
for(uint8_t j=0;j<100;j++)
SysCtl_delay(50000000);
2、主函数LED翻转25次后进入低功耗模式,给一个计数变量每循环一次自加,当Cnt变量是25的整数倍时进入低功耗模式(通过不同的进入函数进入三种低功耗模式),Cnt变量也为退出低功耗模式做准备,以便于下一次执行25次翻转后再进入低功耗模式,LED翻转延时时间约为0.5S。
while(1)
{
Cnt++;
if(!(Cnt%25))
{
GPIO_setPinConfig(GPIO_26_GPIO26);
GPIO_setPadConfig(26, GPIO_PIN_TYPE_INVERT);
GPIO_setQualificationMode(26, GPIO_QUAL_SYNC);
GPIO_setDirectionMode(26, GPIO_DIR_MODE_IN);
SysCtl_setStandbyQualificationPeriod(30);
SysCtl_enableLPMWakeupPin(26);
SysCtl_enterHaltMode();
Device_init();
}
GPIO_togglePin(31);
GPIO_togglePin(34);
for(uint8_t j=0;j<20;j++)
SysCtl_delay(50000000);
}
三、总结和待完成部分
本次实验在频率固定外设固定的情况下测试了3种低功耗模式的电流消耗,IDEL模式若不关闭外设则无法起到降低功耗的作用,Standby模式和Halt模式有较大程度的功耗降低。 由于对参考手册的解读尚有欠缺之处,所以在进入低功耗模式后退出的唤醒部分程序还未能弄懂,待后面进一步读懂手册的基础上再进行该部分程序的编写设计。
|