i.MX6ULL 掉电保护说明¶
imx6ull在突然掉电的场合需要做好掉电保护,防止根文件系统损坏导致系统无法启动,特别是nand核心板用户,请尤为注意。
掉电保护电路¶
掉电保护电路主要是两个部分,一是通过超级电容存储电量,在掉电时,为CPU继续供电;二是掉电检测部分,当检测到掉电的时候,电源切换为超级电容充电,同时给CPU发出个掉电信号,CPU做掉电保护相关处理。
模块接口说明¶
引脚1:5V输出;
引脚2:掉电检测IO的电源,用于上拉掉电检测IO;
引脚3:掉电检测IO,掉电时该IO输出低;
引脚4:开机信号,连接imx6ull的ON/OFF按键;
引脚5:GND
软件配置¶
这里以掉电检测IO连接imx6ull的GPIO1_IO03为例:
(以下内容涉及Systemd管理方面的知识,不熟悉的朋友建议先看下 探索Systemd 教程)
(1)掉电保护脚本pdp.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/bin/bash
echo 3 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio3/direction
while true
do
dect_gpio=$(cat /sys/class/gpio/gpio3/value)
if [ ${dect_gpio} = '0' ]; then
sync
poweroff
fi
sleep 0.5s;
done
|
(2)掉电检测服务pdp.service
1 2 3 4 5 6 7 8 9 10 | [Unit]
Description = power down protection daemon
[Service]
# pdp.sh放在/home/debian/目录下,放在其他目录可更改该
路径
ExecStart = /home/debian/pdp.sh
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
|
(3) 开机启动掉电保护脚本pdp.sh
把pdp.service放到/etc/systemd/system/目录
sudo mv pdp.service /etc/systemd/system/
赋予pdp.sh可执行权限
sudo chmod +x pdp.sh
设置开机自启动
sudo systemctl enable pdp
sudo systemctl start pdp
查看服务状态
sudo systemctl status pdp