i.MX6ULL の電源制御方法

本章では、ソフトウェアによるi.MX6ULLの電源制御方法について説明します。

ハードウェアによる電源制御については、「外部からの電源制御」を参照してください。

13.1. poweroffコマンドによる制御

poweroff コマンドを利用して、i.MX6ULL 自身で電源を OFF にすることができます。poweroff コマンドで電源を OFF にすると、ONOFF ピン(Armadillo-640 CON9 11ピン)を制御することで電源を ON にすることができます。

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

[armadillo ~]# poweroff

図13.1 poweroff コマンドによる電源 OFF


[警告]

i.MX6ULL 自身による制御を行うには、Linux カーネルのバージョンが v4.14-at3 以降である必要があります。

13.2. WLAN/RTC オプションモジュールによる制御

WLAN/RTC オプションモジュールに搭載されている RTC のアラーム割り込みによって、i.MX6ULL の電源を ON にすることができます。

このためには、WLAN/RTC オプションモジュール上のJP1(はんだジャンパ)をショートしておく必要があります。JP1については「JP1(ONOFFピン接続ジャンパ)」を参照してください。 また、RTCの割り込み信号はアラームを解除するまで出力され続けるため、i.MX6ULL の電源が ON になってから5秒以内に、ブートローダーもしくはLinuxカーネルがアラームを解除する必要があります。

ブートローダーの起動時に RTC のアラームを解除するには次のようにコマンドを実行します。

=> setenv stop_nr3225sa_alarm yes
=> saveenv
[警告]

ブートローダーの起動時に RTC のアラームを解除するにはブートローダーのバージョンが2018.03-at4 以降である必要があります。

i.MX6ULLの電源をOFFにし、1分後に電源をONにするには、次のようにコマンドを実行します。

[armadillo ~]# echo +60 > /sys/class/rtc/rtc0/wakealarm  1
[armadillo ~]# poweroff  2
: (省略)
[   32.428051] reboot: Power down


U-Boot 2018.03-at4 (Dec 18 2018 - 18:34:38 +0900)  3

CPU:   Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
I2C:   ready
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   FEC
=>

図13.2 i.MX6ULLの電源をOFFにし、1分後に電源をONにする手順


1

1分後にアラームを設定します。

2

i.MX6ULLの電源をOFFにします。

3

1分経過後、自動的にi.MX6ULLの電源がONになります。

[警告]

WLAN/RTC オプションモジュールに搭載されている RTC NR3225SAは、毎分 0 秒にしかアラーム割り込みを発生させることができません。

0時 0分 30秒の時に、1秒後にアラームが鳴るように設定したとしても、実際にアラーム割り込みが発生するのは 0時 1分 0秒となります。

[警告]

sysfs RTC クラスディレクトリ以下の wakealarm ファイルからアラーム割り込みを発生させるには、Linux カーネルのバージョンが v4.14-at10 以降である必要があります。

[ティップ]

linux-v4.14-at10 以前のLinux カーネルでも、ioctl RTC_ALM_SET, ioctl RTC_AIE_ONを使用してアラーム割り込みを発生させることができます。

詳しくは、RTC の man ページを参照してください。