超级电容安全关机问题

1 概述

介绍在ED-IPC和ED-PAC产品上使用超级电容时遇到的安全关机问题的背景和使用范围。

1.1 背景

  • 超级电容工作原理:

    我司ED-IPC和ED-PAC等产品中的超级电容与PCBA中的扩展GPIO芯片的LVD引脚相连,当断开设备外部电源时,LVD引脚会产生中断信号,CPU检测到中断信号后会执行/usr/sbin/lvd-callback.sh脚本。用户可自定义lvd-callback.sh的内容,使超级电容在触发时实现预期的功能。

  • 超级电容功能介绍:

    我司出厂的带超级电容的ED-IPC和ED-PAC等产品默认已安装ed-lvd 软件包,默认/usr/sbin/lvd-callback.sh配置文件如下图。主要功能是用sync在安全关机前保存缓存数据。

image-20250123170159531
  • 超级电容安全关机问题现象:

    当用户在正常使用带超级电容的ED-IPC和ED-PAC时,若遇到外部突然断电或手动断开设备电源,设备会执行安全关机。若在超级电容未放完电时(PWR灯常亮)再次插上设备电源,则设备仍然处于关机状态且无法正常启动。待超级电容放完电后(PWR灯熄灭),插上设备电源,设备将正常启动。

1.2 适用范围

超级电容安全关机问题涉及的产品包含:

  • ED-IPC2100(选配超级电容的版本)
  • ED-IPC2200(选配超级电容的版本)
  • ED-SBC2300(选配超级电容的版本)
  • ED-IPC2600(选配超级电容的版本)
  • ED-IPC3100(选配超级电容的版本)
  • ED-SBC3300(选配超级电容的版本)
  • ED-IPC3600(选配超级电容的版本)
  • ED-HMI2120(选配超级电容的版本)
  • ED-HMI2630(选配超级电容的版本)
  • ED-HMI3120(选配超级电容的版本)
  • ED-HMI3630(选配超级电容的版本)
  • ED-PAC3100(标配超级电容)
  • ED-PAC3630(标配超级电容)

提示

以上涉及的产品,若生产日期在2025年37周之后,则出厂默认已删除/usr/sbin/lvd-callback.sh文件中的sudo poweroff,不存在此问题。

  • 设备的SN码所在的标签一般位于设备外壳上,设备的SN码的前四位数字大于等于2537表示设备的生产时间为2025年37周之后。

    image-sn

2 解决方案

针对以上问题现象,我司工程师经过测试验证得出如下两种解决方法,具体操作如下文。

前提条件:

  • 设备在出现安全关机问题之前,已正常启动进入系统。
  • 设备上带有超级电容。
  • 设备已通过Wi-Fi或网口接入以太网。

操作步骤:

方法一(操作简单,后续无法实现用sync在关机前保存缓存数据的功能):

警告

如果设备带有codesys,则不能使用此方法。

  1. 断开设备的外部电源,等待约3分钟,待超级电容的电量耗尽后再重新给设备上电。

  2. 待设备正常启动后,在终端命令窗格依次执行如下命令,删除ed-lvd包。

sudo systemctl stop lvd-detect.service
sudo apt purge ed-lvd

提示

删除ed-lvd包后,超级电容配置文件不再起作用,避免因为安全关机造成设备无法启动。

方法二(后续支持配置其它的关机前功能):

  1. 断开设备的外部电源,等待约3分钟,待超级电容的电量耗尽后再重新给设备上电。

  2. 待设备正常启动后,在终端命令窗格执行如下命令,进入/usr/sbin/lvd-callback.sh脚本编辑模式,再删除文件中的sudo poweroff

sudo nano /usr/sbin/lvd-callback.sh
image-20250828165343790
  1. Ctrl+o保存文件,再按Enter确认,最后按Ctrl+x退出文件。

  2. 执行如下命令,重启设备,使配置生效。

sudo reboot

提示

当超级电容被触发时,设备会依次执行/usr/sbin/lvd-callback.sh中的命令,用户可以根据需求,自定义脚本的内容。