以下内容已经在盈鹏飞嵌入式I.MX6UL核心板_Iot-6ULX+EVB-6ULX平台验证通过,Iot-6ULX/EVB-6ULX平台介绍如下:
i.MX6ULL SNVS_GPIO状态设置及保存测试
为了验证i.MX6ULL处理器 SNVS_GPIO在不同的电源模式下的运行状态,在EVB-T6UL板上进行本次测试。
本次测试的方式是在系统启动运行进入到ON模式,通过指令对GPIO进行输出配置,然后再通过指令操作使系统的电源模式从ON模式切换到其他模式,判断GPIO的配置状态是否保存。其中重点关注从ON切换到OFF模式,SNVS电源域只由纽扣电池供电的情况下,SNVS_GPIO的状态。
1.硬件电路改动1
测试过程中选用GPIO5_IO2和GPIO5_IO3两个端口进行验证,这两个端口在EVB-T6UL设计中应用在看门狗复位电路。为了排除看门狗芯片对IO状态的影响,以及相关供电电路中元件产生压降导致供电电压降低对SNVS电源的影响,测试前,需要对EVB-T6UL的硬件电路进行修改。
硬件电路改动说明如下:
EVB-T6UL底板上排除对测试IO状态的影响,拆除看门狗芯片TPL5010(U33)。降低电路中元件产生的压降,R124改为0R电阻,拆除RTC芯片RX8010(U31)。使核心板上VDD_BAT在OFF模式由纽扣电池供电,底板上焊接R123,不焊R122。
COM-T6UL核心板上拆除复位指示灯D3及串联电阻R43,拆除电阻R42。
EVB-T6UL底板上硬件改动1
EVB-T6UL底板上硬件改动2
2.验证测试1
电路修改完成后,开始测试,此时核心板上VDD_SNVS_IN电源由VDD_3V3和VDD_BAT两个电源同时供电。VDD_3V3由底板上3.3V电源供电,VDD_BAT由底板上的纽扣电池和3.3V电源同时供电。
产品上电启动后,输入指令cat /sys/power/state,可查看系统支持的电源管理模式:
电源管理模式说明:
电源管理模式 | 定义 | 说明 |
on | Power on | 该模式系统正常工作状态 |
freeze | Suspend to idle (s2idle) | 该模式冻结用户空间,所有IO置于低功耗状态,处理器更多处于空闲状态 |
standby | Power on suspend (shallow) | 该模式冻结用户空间,所有IO置于低功耗状态,非引导的CPU脱机,低级别系统功能被挂起 |
mem | Suspend to RAM (deep) | 该模式系统和设备状态保存在RAM中,出RAM外的所有设备进入低功耗状态,RAM则进入self-refresh模式 |
off | Power down | 该模式系统电源关断 |
系统启动后,可输入IO控制指令,通过测量IO的电平,验证IO状态是否可以设置。
IO控制指令说明:
电源管理模式 | 说明 |
gpionum= | 输入要控制的IO口编号 |
echo ${gpionum} > /sys/class/gpio/export | 执行后,在当今前目录生成 gpio节点 |
echo out > /sys/class/gpio/gpio${gpionum}/direction | 设置 GPIO 引脚方向,配置为输出 |
echo 1 > /sys/class/gpio/gpio${gpionum}/value | 配置IO口电平,高电平(输出) |
echo 0 > /sys/class/gpio/gpio${gpionum}/value | 配置IO口电平,低电平(输出) |
2.1 Freeze模式
EVB-T6UL上电启动,进入ON模式,测量GPIO5_IO2和GPIO5_IO3,默认为低电平,输入IO控制指令,可控制IO置高或者置低,IO状态可设置。
将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo freeze> /sys/power/state,进入freeze模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下为终端显示界面以及测试记录:
测试条件:Battery≈3.2V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 3.11V | 3.19V | 可设置,VH≈3.19V | 可设置,VH≈3.19V |
freeze | 3.11V | 3.19V | 可保存,V≈3.19V | 可保存,V≈3.19V |
说明:VDD_BAT和VDD_SNVS_IN均为COM-T6UL核心板上的电源。
系统进入freeze模式后,终端不可操作,板上无触发启动元件,产品需断电重启。
2.2 Standby模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo standby> /sys/power/state,进入standby模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下为终端显示界面以及测试记录:
测试条件:Battery≈2.9V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 3.11V | 3.18V | 可设置,VH≈3.18V | 可设置,VH≈3.18V |
standby | 3.11V | 3.20V | 可保存,V≈3.20V | 可保存,V≈3.20V |
系统进入standby模式后,终端不可操作,板上无触发启动元件,产品需断电重启。
2.3 Mem模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo mem> /sys/power/state,进入standby模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下为终端显示界面以及测试记录:
测试条件:Battery≈3.2V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 3.11V | 3.19V | 可设置,VH≈3.19V | 可设置,VH≈3.19V |
mem | 3.11V | 3.19V | 可保存,V≈3.19V | 可保存,V≈3.19V |
系统进入mem模式后,终端不可操作,板上无触发启动元件,产品需断电重启。
2.4 OFF模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,然后关闭电源,进入OFF模式,测量GPIO5_IO2和GPIO5_IO3为低电平,状态不可保存。以下为测试记录:
测试条件:Battery≈2.9V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 3.11V | 3.18V | 可设置,VH≈3.18V | 可设置,VH≈3.18V |
off | 2.7V | 2.56V | 不可保存,V=0V | 不可保存,V=0V |
COM-T6UL上不执行Disk模式,所以此模式不做说明。
3.硬件电路改动2
在经过硬件电路改动1后,核心板上VDD_SNVS_IN电源由VDD_3V3和VDD_BAT两个电源同时供电。为验证VDD_SNVS_IN由纽扣电池单独供电,排除底板VDD_3V3的影响,SNVS_GPIO的状态设置及保存情况,需要在硬件电路改动1的基础上,再次修改电路。
硬件电路改动说明如下:
EVB-T6UL底板上拆除D24,VDD_BAT由纽扣电池单独供电。
COM-T6UL核心板上拆除D2,R42贴0R电阻,VDD_SNVS_IN由VDD_BAT单独供电。
4.验证测试2
电路修改完成后,开始测试,此时核心板上VDD_SNVS_IN电源由VDD_BAT单独供电,VDD_BAT则由纽扣电池单独供电。
2.1 Freeze模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo freeze> /sys/power/state,进入freeze模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下测试记录:
测试条件:Battery≈2.82V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 2.82V | 2.82V | 可设置,VH≈2.82V | 可设置,VH≈2.82V |
freeze | 2.82V | 2.82V | 可保存,V≈2.82V | 可保存,V≈2.82V |
系统进入freeze模式后,终端不可操作,板上无触发启动元件,产品需断电重启。
2.2 Standby模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo standby> /sys/power/state,进入standby模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下为终端显示界面以及测试记录:
测试条件:Battery≈2.84V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 2.84V | 2.84V | 可设置,VH≈2.84V | 可设置,VH≈2.84V |
standby | 2.84V | 2.84V | 可保存,V≈2.84V | 可保存,V≈2.84V |
2.3 Mem模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,输入电源模式切换指令echo mem> /sys/power/state,进入standby模式,测量GPIO5_IO2和GPIO5_IO3为高电平,状态可保存。以下为终端显示界面以及测试记录:
测试条件:Battery≈2.9V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 2.9V | 2.9V | 可设置,VH≈2.9V | 可设置,VH≈2.9V |
mem | 2.9V | 2.9V | 可保存,V≈2.9V | 可保存,V≈2.9V |
系统进入mem模式后,终端不可操作,板上无触发启动元件,产品需断电重启。
2.4 OFF模式
EVB-T6UL上电启动,进入ON模式,将GPIO5_IO2和GPIO5_IO3设置为高电平,然后关闭电源,进入OFF模式,测量GPIO5_IO2和GPIO5_IO3为低电平,状态不可保存。以下为测试记录:
测试条件:Battery≈2.83V。
电源管理模式 | VDD_BAT | VDD_SNVS_IN | GPIO5_IO2 | GPIO5_IO3 |
on | 2.83V | 2.83V | 可设置,VH≈2.83V | 可设置,VH≈2.83V |
off | 2.83V | 2.83V | 不可保存,V=0V | 不可保存,V=0V |
5.测试结论
通过上述验证,可得出以下结论:
1、电源模式在ON模式,SNVS_GPIO电平状态可设置,可保持。
2、电源模式由ON切换到Freeze模式,SNVS_GPIO可保存,不可设置。
3、电源模式由ON切换到Standby模式,SNVS_GPIO可保存,不可设置。
4、电源模式由ON切换到Mem模式,SNVS_GPIO可保存,不可设置。
5、电源模式由ON切换到OFF模式,SNVS_GPIO不可保存。