第14章 i.MX 7Dualの電源制御

本章では、パワーマネジメントICによるi.MX 7Dualの電力供給を制御する方法について説明します。

i.MX 7Dualの電源は、パワーマネジメントICによって制御されています。パワーマネジメントIC の電圧出力を停止・開始することで、i.MX 7Dualの電源をONまたはOFFにすることができます。

14.1. i.MX 7Dual 自身による制御

GPIOクラスディレクトリ以下のvalueファイルに値を書き込むことによって、i.MX 7Dual自身で電源をOFFにすることができます。

対応する、GPIOクラスディレクトリは、/sys/class/gpio/gpio255/ です。

電源をOFFにするには、次のようにコマンドを実行します。

[armadillo ~]# echo 255 > /sys/class/gpio/export
[armadillo ~]# echo 0 > /sys/class/gpio/gpio255/value

図14.1 GPIOのexportとvalueファイルへの書き込みによる電源OFF


[警告]

i.MX 7Dual 自身による制御を行うには、ボード情報のGPIOバージョンが2.0以降である必要があります。

GPIOバージョンは次に示すコマンドで確認することができます。

[armadillo ~]# dmesg | grep gpio_bmic
[    0.146609] gpio_bmic 3-0014: version: 2.0

GPIOバージョンが 2.0より小さいの場合でも、インストールディスク v20161026_iotg3以降(install_disk_sd_20161026_iotg3.img以降)を適用すると、GPIOバージョン 2.0以降に更新することができます。 インストールディスクの使用方法については「インストールディスクを使用する」をご参照ください。

14.2. SMSによる制御

Armadillo-IoT G3では、特定の電話番号を持つ端末から特定の文字列を含むSMSを受信した時にi.MX 7Dualの電源をONまたはOFFにすることができます。

電話番号およびON/OFFを表す文字列は、設定ファイルを作成し、3Gモジュール PDS6-Jに内蔵されているフラッシュメモリに書き込むことで指定します。

ここでは、設定ファイルの構文や設定ファイルの変更方法、SMSによるi.MX 7Dualの電源制御の具体的な手順を説明します。

[警告]

本機能を利用する場合、microSIM(UIMカード)に保存されているSMSは全て削除されます。

[警告]

この機能と13章SMSを利用するの機能は、同時に利用することができません。

どちらの機能を利用するかは、PDS6-Jに内蔵されているフラッシュメモリ上に設定ファイルが存在しているかどうかで判断しています。設定ファイルを書き込むことで、次回の起動から本機能が利用可能になります。

14.2.1. 設定ファイル

14.2.1.1. 構文

設定ファイルの構文を次に示します。

power_on=[POWER_ON] 1
power_off=[POWER_OFF] 2
phone_list=[PHONE_NUMBER],[PHONE_NUMBER]  3

1

[POWER_ON]に指定した文字列を含むSMSを受信した時、i.MX 7Dualの電源をONにします。

2

[POWER_OFF]に指定した文字列を含むSMSを受信した時、i.MX 7Dualの電源をOFFにします。

3

[PHONE_NUMBER]に指定した電話番号を持つ端末からのSMSを受け付けます。「,」区切りで複数の電話番号を指定することができます。

図14.2 SMSによるi.MX 7Dualの電源制御 設定ファイルの構文


設定ファイルの作成例を次に示します。

[armadillo ~]# echo "power_on=on" > pwr.conf
[armadillo ~]# echo "power_off=off" >> pwr.conf
[armadillo ~]# echo "phone_list=08011112222,09033334444" >> pwr.conf
[armadillo ~]# cat pwr.conf
power_on=on
power_off=off
phone_list=08011112222,09033334444

図14.3 SMSによるi.MX 7Dualの電源制御 設定ファイルの作成例


14.2.1.2. 書き込み

設定ファイルの書き込みには、pds6j-write-confコマンドを使用します。

pds6j-write-confコマンドは、引数に与えられた設定ファイルの構文を解析し、構文が正しい場合のみ、PDS6-Jに内蔵されているフラッシュメモリに設定ファイルを書き込みます。この時、古い設定ファイルは上書きされます。

[警告]

コマンドの実行中は、電源を切断しないでください。PDS6-Jに内蔵されているフラッシュメモリが破損し、モジュールが正しく動作しなくなる可能性があります。

[警告]

pds6j-write-confコマンドは、PDS6-Jにアクセスしている間、ModemManagerおよびNetworkManagerを一旦停止します。

pds6j-write-confの実行方法を次に示します。

[armadillo ~]# pds6j-write-conf [設定ファイルへのパス]

図14.4 pds6j-write-confの実行方法


14.2.1.3. 読み出し

設定ファイルの読み出しには、pds6j-read-confコマンドを使用します。

pds6j-read-confコマンドは、PDS6-Jに内蔵されているフラッシュメモリから設定ファイルを読み出して、引数に与えられたファイルに書き込みます。設定ファイルが見つからなかった場合、ファイルには何も書き込まずに終了します。

[警告]

pds6j-read-confコマンドは、PDS6-Jにアクセスしている間、ModemManagerおよびNetworkManagerを一旦停止します。

pds6j-read-confの実行方法を次に示します。

[armadillo ~]# pds6j-read-conf [読み出したファイルを配置するパス]

図14.5 pds6j-read-confの実行方法


14.2.1.4. 削除

設定ファイルの削除には、pds6j-rm-confコマンドを使用します。

pds6j-rm-confコマンドは、PDS6-Jに内蔵されているフラッシュメモリ上の設定ファイルを削除します。設定ファイルが見つからなかった場合、メッセージを出力して終了します。

[警告]

コマンドの実行中は、電源を切断しないでください。PDS6-Jに内蔵されているフラッシュメモリが破損し、PDS6-Jが正しく動作しなくなる可能性があります。

[警告]

pds6j-rm-confコマンドは、PDS6-Jにアクセスしている間、ModemManagerおよびNetworkManagerを一旦停止します。

pds6j-rm-confの実行方法を次に示します。

[armadillo ~]# pds6j-rm-conf

図14.6 pds6j-rm-confの実行方法


14.2.1.5. i.MX 7Dualの電源制御を行うための準備

SMSによるi.MX 7Dualの電源制御を行うには、設定ファイルを書き込んだ状態で3Gモジュール PDS6-Jを再起動する必要があります。

そのため、「書き込み」の手順で設定ファイルを書き込んだ後、「終了方法」の手順で電源を切断してください。その後、電源を接続してください。

[警告]

rebootコマンドでは、PDS6-Jを再起動することはできません。

14.2.1.6. i.MX 7Dualの電源をOFFにする

図14.3「SMSによるi.MX 7Dualの電源制御 設定ファイルの作成例」で作成した設定ファイルを例に説明します。

i.MX 7Dual の電源をOFFにするには、08011112222または09033334444の電話番号を持つ端末からArmadillo接続したmicroSIM(UIMカード)の電話番号宛に次のSMSを送信します。

off

図14.7 SMS本文


PDS6-JがSMSを受信すると、i.MX 7Dualの電源をOFFにした後、受信したSMSの送信元の電話番号宛に次のSMSを返信します。

Power Off Command accepted.

図14.8 SMS本文


[ティップ]

PDS6-Jの起動後、PDS6-J内部で動作しているJavaアプリケーションがSMSを処理できるようになるまで3分程度かかることがあります。そのため、SMSの送信は、PDS6-Jの起動後1~3分程度待つことをおすすめします。

14.2.1.7. i.MX 7Dualの電源をONにする

図14.3「SMSによるi.MX 7Dualの電源制御 設定ファイルの作成例」で作成した設定ファイルを例に説明します。

i.MX 7Dual の電源をONにするには、08011112222または09033334444の電話番号を持つ端末からArmadillo接続したmicroSIM(UIMカード)の電話番号宛に次のSMSを送信します。

on

図14.9 SMS本文


PDS6-JがSMSを受信すると、i.MX 7Dualの電源をONにした後、受信したSMSの送信元の電話番号宛に次のSMSを返信します。

Power On Command accepted.

図14.10 SMS本文


[ティップ]

PDS6-Jの起動後、PDS6-J内部で動作しているJavaアプリケーションがSMSを処理できるようになるまで3分程度かかることがあります。そのため、SMSの送信は、PDS6-Jの起動後1~3分程度待つことをおすすめします。

14.3. アドオンインターフェースによる制御

アドオンインターフェース(CON1、CON2)の55ピン PMIC_ONOFF信号によって、i.MX 7Dualの電源をONまたはOFFにすることができます。

PMIC_ONOFF 信号を、2秒以上GND にショートすると、i.MX 7Dualの電源をOFFにすることができます。 PMIC_ONOFF 信号を、2秒未満GND にショートすると、i.MX 7Dualの電源をONにすることができます。

アドオンインターフェース(CON1、CON2)の仕様については、「CON1 アドオンインターフェース1」「CON2 アドオンインターフェース2」を参照してください。

14.4. RTCによる制御

RTC のアラーム割り込みによって、i.MX 7Dualの電源をONにすることができます。

アラーム割り込みは、sysfs RTC クラスディレクトリ以下のwakealarm ファイルから利用できます。

wakealarm ファイルに UNIX エポックからの経過秒数、または先頭に+を付けて現在時刻からの経過秒数を書き込むと、アラーム割り込み発生時刻を指定できます。

3600秒後、アラーム割り込みを発生させるには、次のようにコマンドを実行します。

[armadillo ~]# echo +3600 > /sys/class/rtc/rtc0/wakealarm

図14.11 アラーム割り込みの設定


コマンド実行後、「アドオンインターフェースによる制御」「SMSによる制御」を参照し、i.MX 7Dualの電源をOFFにします。

3600秒後、アラーム割り込みによってi.MX 7Dualの電源がONになります。

14.5. ユーザースイッチ1(SW1)の操作による制御

ユーザースイッチ1(SW1)の操作によって、i.MX 7Dualの電源をONにすることができます。

「アドオンインターフェースによる制御」「SMSによる制御」 を参照し、i.MX 7Dualの電源をOFFにします。その後、ユーザースイッチ1(SW1)を押すことで、i.MX 7Dualの電源がONになります。

ユーザースイッチ1(SW1)の位置については、「Armadillo-IoTゲートウェイの外観」を参照してください。