[经验分享] 基于RISCV指令集的中科昊芯DSP(280025C)开发板测试(二)——低功耗模式功耗简测

zhaoxiawanqiu   2024-8-23 18:42 楼主

昊芯入门学习记录-LPM简易测试

任务目标:
主函数执行两LED状态翻转20次后进入三种低功耗模式,每次间隔小于1S,系统160Mhz,默认外设配置(所有外设时钟均打开)。

一、测试数据

1、IDEL模式下功耗(电流显示其功耗,5V直流电源供电)

3-1.jpg
3-2.jpg
 
        以上两图分别为未进入IDEL模式和进入IDEL模式(LED停止翻转)时电流消耗,显然可以观察到其电流均在168mA,即进入IDEL模式对该任务情况下负载功耗没有改变,分析其原因为在时钟初始化时打开了所有外设,进入IDEL模式时这些外设没有被关闭,又因该任务(灯是否翻转)对功耗没有影响,故有该现象。
2、StandBy模式下功耗
1-1.jpg
1-2.jpg

        以上两图分别为未进入StandBy模式和进入该模式(LED停止翻转)时电流消耗,显然可以观察前者电流为166mA、后者电流为55mA,显然进入该模式可以明显降低系统功耗。

3、Halt模式下功耗

2-1.jpg
2-2.jpg
        以上两图分别为未进入Halt模式和进入该模式(LED停止翻转)时电流消耗,显然可以观察到前者电流在167mA、后者电流在51mA,显然进入该模式可以明显降低系统功耗,且较Standby模式功耗更低。
4、测试视频(halt模式,其余两种模式类同)
0

 
二、代码解读
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);


    }

代码.png

 

 

 

三、总结和待完成部分

    本次实验在频率固定外设固定的情况下测试了3种低功耗模式的电流消耗,IDEL模式若不关闭外设则无法起到降低功耗的作用,Standby模式和Halt模式有较大程度的功耗降低。  由于对参考手册的解读尚有欠缺之处,所以在进入低功耗模式后退出的唤醒部分程序还未能弄懂,待后面进一步读懂手册的基础上再进行该部分程序的编写设计。

 

 

本帖最后由 zhaoxiawanqiu 于 2024-8-23 21:50 编辑

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复