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