i.MX RT500 低功耗管理——VDDCORE LVD 电压设置

智能穿戴手表的重要参数之一就是低功耗,在有限的空间内,电池的容量也有限,除了电池技术的发展,作为手表的主控芯片也需要有良好的低功耗管理功能,这里将介绍下 RT500  Active Mode下 VDDCORE 电压设置。

我们拿到 RT500 EVK ,它是使用一颗 PMIC 来给 RT500 提供各路电压,我们先来看 RT500 的电压组成:

 

 

其中最主要的还是 VDDCORE 这个部分,供电范围:0.6-1.155V ,不过这个不同电压对主频的要求也是相对的,主频越高,所需的电压则越大,这个在 User Manual 有详细说明。

使用的 PMIC 型号为 PCA9420 ,这颗 IC 可以提供 4 路输出,如下图:

 

这是 EVK 上的 PMIC 与 RT500 的连接,其中连接到 VDDCORE 的是 SW1_OUT 这一路输出: 

 

 

现在打开 SDK 中的例程,来演示如何设置电压,在 MCUXpresso 中导入 pca9420 的工程:

 

 

导入之后在 pca9420.c 中,修改 mode2 的SW1 电压,

 

 

将代码下载到板子后,选择 switch mode ,然后选择 mode2 ,测量电压可以看到跟预期的 0.975 差不多,我们将其改为: kPCA9420_Sw1OutVolt0V850

 

 

下载进去再次选择测量,可以看到电压也是跟预期一样,我们再试着把电压继续往下降,前面说到电压降低频率也需要降低,这里我们先将主频设置为 12MHz ,点击“配置工具”->“时钟”,分频值替换至图中分频值,点击“更新源代码”:

 

 

设置完成后,将其改为 kPCA9420_Sw1OutVolt0V825

 

 

下载测量得到 1.045 V 左右,不仅电压高了,而且串口发送已经没反应了,RT500 看起来已经运行的不正常了,这时候复位后串口有输出,再次进入 mode2 还是同样的结果,跑异常了。现在再次把它设置为 kPCA9420_Sw1OutVolt0V850 ,下载测量又是正常的,为什么设置的比 0.85V 低就会不正常呢?在 User Manual 中有说明:

 

 

 

这里设置了默认的 LVD 值,所以需要更低的电压值,我们需要在 LVDCORECTRL 寄存器设置对应电压,SDK 中已经有 API 可以设置,调用void POWER_SetLvdFallingTripVoltage(power_lvd_falling_trip_vol_val_t volt) 即可:

 

 

这时候我们将其设置为 0.825V ,下载测量正常,代码也还在正常运行。

 

这里也可以测试下前后功耗对比,降低 0.1V 左右电流可以减少1-2mA ,可以设置 VDDCORE 的电压来降低一些功耗,Active mode VDDCORE 电压设置可以应用在手表息屏后几秒钟判断是否需要进入深度睡眠的这段时间。

 

参考资料:

《IMXRT500RM》

 https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt500-crossover-mcu-with-arm-cortex-m33-dsp-and-gpu-cores:i.MX-RT500?fpsp=1&tab=Documentation_Tab

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论