zhaoxiawanqiu 发表于 2024-8-23 18:42

基于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;">&nbsp;</div>

<div style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上两图分别为未进入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;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上两图分别为未进入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;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上两图分别为未进入Halt模式和进入该模式(LED停止翻转)时电流消耗,显然可以观察到前者电流在167mA、后者电流在51mA,显然进入该模式可以明显降低系统功耗,且较Standby模式功耗更低。</div>

<div style="text-align: left;">4、测试视频(halt模式,其余两种模式类同)</div>

<div style="text-align: left;">45cde5ffdc4f781c94490027215cf836<br />
&nbsp;</div>

<div style="text-align: left;">二、代码解读</div>

<div style="text-align: left;">1、初始化延时,该函数大约在160Mhz频率的情况下延时2-3S,可防止系统上电进入低功耗模式而无法重新装载程序。</div>

<div style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(uint8_t j=0;j&lt;100;j++)<br />
&nbsp; &nbsp; &nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />
&nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;Cnt++;<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;if(!(Cnt%25))<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;{<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;GPIO_setPinConfig(GPIO_26_GPIO26);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;GPIO_setPadConfig(26, GPIO_PIN_TYPE_INVERT);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;GPIO_setQualificationMode(26, GPIO_QUAL_SYNC);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;GPIO_setDirectionMode(26, GPIO_DIR_MODE_IN);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;SysCtl_setStandbyQualificationPeriod(30);</p>

<p>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;SysCtl_enableLPMWakeupPin(26);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;SysCtl_enterHaltMode();</p>

<p>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Device_init();<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;}<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;GPIO_togglePin(31);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;GPIO_togglePin(34);<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;for(uint8_t j=0;j&lt;20;j++)<br />
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;SysCtl_delay(50000000);</p>

<p><br />
&nbsp; &nbsp; }</p>

<p style="text-align: center;"></p>
</div>

<div style="text-align: left;">&nbsp;</div>

<p>&nbsp;</p>
</div>

<div style="text-align: center;">&nbsp;</div>

<p>三、总结和待完成部分</p>

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

<p>&nbsp;</p>
</div>

<p>&nbsp;</p>
页: [1]
查看完整版本: 基于RISCV指令集的中科昊芯DSP(280025C)开发板测试(二)——低功耗模式功耗简测