Armadilloフォーラム

Armadillo-440 スリープ機能について

sas_okuyama

2015年9月1日 18時10分

お世話になります、okuyamaと申します。

以前、フォーラム内でArmadillo-400 シリーズで
スリープ機能を実装されている文言があり、
Armadillo-440でrtcwakeコマンドを実行してみましたが、
以下のメッセージが表示します。

[root@armadillo440-0 (ttymxc1)]# rtcwake -m mem -s 3600
-ash: rtcwake: not found

上記のメッセージから、rtcwakeコマンドがないとあるので、
なにか設定を行えばよいようにも思いますが、
解決方法について、
誰かわかる方がいらっしゃいましたら、
ご教授願いたいと思います。

何卒よろしくお願いいたします。

コメント

at_yuma.arakawa

2015年9月9日 15時59分

> Armadillo-440でrtcwakeコマンドを実行してみましたが、
申し訳ありません、rtcwakeはA440用のAtmark Distに含まれておりません。

「Armadilloをスリープ状態へ移行させ、アラーム割り込みで復帰させたい」
という用途であれば、sysfs経由で実現できます。

■ 操作例: アラーム割り込みを60秒後に設定し、スリープ状態(suspend-to-RAM)へ移行
[Armadillo]# echo +60 > /sys/class/rtc/rtc0/wakealarm
[Armadillo]# echo mem > /sys/power/state

詳しくは以下を参照してください。
- 9.20.1. スリープ機能
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
- 9.12.2. アラーム割り込み
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…

sas_okuyama

2015年9月11日 19時22分

at_yuma.arakawa さまへ

お世話になります、okuyamaです。

ご返答ありがとうございます。

> 「Armadilloをスリープ状態へ移行させ、アラーム割り込みで復帰させたい」
> という用途であれば、sysfs経由で実現できます。
>
> ■ 操作例: アラーム割り込みを60秒後に設定し、スリープ状態(suspend-to-RAM)へ移行
> [Armadillo]# echo +60 > /sys/class/rtc/rtc0/wakealarm
> [Armadillo]# echo mem > /sys/power/state
>
> 詳しくは以下を参照してください。
> - 9.20.1. スリープ機能
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
> - 9.12.2. アラーム割り込み
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…

返答内容を確認いたしました。
確認結果として、
 1.スリープ状態への移行:OK
 2.アラーム割り込みで復帰:NG
でした。

ソフトウェアマニュアルp.96の
「図9.2アラーム割り込み発生時刻の設定」に
記載されてある内容でも確認しましたが、
/proc/interruptsコマンドの応答がない状況です。

また、今回ご教授いただいたコマンドの実用例を検索したところ、
以下のサイトがありました。

http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…

そこに記載されてある内容から、
ハードの改造が必要であることがわかりましたので、
PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。

すみませんが、以下のご質問をさせていただきます。

(質問1)
カーネルコンフィギュレーションで
ARMADILLO400_RTC_ALM_INT_CON9_2

RTC_ALM_INT_WAKE_SRC_SELECT
を有効するとありますが、

ARMADILLO400_RTC_ALM_INT_CON9_2は、
「System Type -->」
 「Freescale MXC Implementations --> 」
  「MX25 Options -->」
   「Armadillo-400 Board options -->」
    「Enable RTC alarm interrupt at CON9_2」 ← この箇所を有効にしました。

RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
わかりませんでした。
ここの設定に関してはデフォルトで「y」でしたので、気にはしていなかったのですが、
設定されていない可能性もあるので、確認したいのですが、設定箇所がわかりません。

誰かわかる方がいらっしゃいましたら、
ご教授願いたいと思います。

何卒よろしくお願いいたします。

y.nakamura

2015年9月12日 4時02分

中村です。

これが原因かわかりませんが(推測ですが)・・・

>  2.アラーム割り込みで復帰:NG
...
> http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…
>
> そこに記載されてある内容から、
> ハードの改造が必要であることがわかりましたので、
> PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。

ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
オプションのRTCモジュールを使っているということですよね。

440の液晶関連はどうなっていますか?
液晶のタッチパネルによるウェイクアップが有効になっていないとなると(420と同じだとすると)、
デフォルトでは、スリープ時にRTCオプションモジュールの電源(3.3V_IO)が落ちます。
これを回避するには(420の場合の回避方法です)、次のようにしてスリープ前に、
たとえば、シリアルインターフェース2によるウェイクアップを有効にしてあげれば、
スリープしてもRTCオプションモジュールの電源が切れなくなります。
# echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup

このあたりのことは、マニュアルの
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
の下の方の
9.20.1.1. 外部デバイスへの電源供給について
です。

> RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
> わかりませんでした。

昔の自分のメモでは、ここのところは、
ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。

linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
これだと思います。

config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT
        bool "RTC alarm interrupt at CON9_2"
        default y
        depends on ARMADILLO400_CON9_2_RTC_ALM_INT

--
なかむら

sas_okuyama

2015年9月14日 23時08分

中村さまへ

お世話になります、okuyamaです。

ご回答ありがとうございます。

> # echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup

上記コマンドを追加したところ、RTCからのアラーム割り込みが発生することを確認しました。

> ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
> オプションのRTCモジュールを使っているということですよね。

はい、そのとおりです。
RTCモジュールは内蔵電池で動作しているので、
Armadillo-440ボードの電源に左右されないものと思ってました…

> 昔の自分のメモでは、ここのところは、
> ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
> となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。
>
> linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
> これだと思います。
>

> config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT
>         bool "RTC alarm interrupt at CON9_2"
>         default y
>         depends on ARMADILLO400_CON9_2_RTC_ALM_INT
> 

この箇所は同じでした。

ようやく、アラーム割り込みで復帰が動作し始めたところなので、
もう少し、動作確認を行い、なにかわかったことがあれば、
UPいたします。

これからも、よろしくお願いいたします。

> 中村です。
>
> これが原因かわかりませんが(推測ですが)・・・
>
> >  2.アラーム割り込みで復帰:NG
> ...
> > http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…
> >
> > そこに記載されてある内容から、
> > ハードの改造が必要であることがわかりましたので、
> > PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。
>
> ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
> オプションのRTCモジュールを使っているということですよね。
>
> 440の液晶関連はどうなっていますか?
> 液晶のタッチパネルによるウェイクアップが有効になっていないとなると(420と同じだとすると)、
> デフォルトでは、スリープ時にRTCオプションモジュールの電源(3.3V_IO)が落ちます。
> これを回避するには(420の場合の回避方法です)、次のようにしてスリープ前に、
> たとえば、シリアルインターフェース2によるウェイクアップを有効にしてあげれば、
> スリープしてもRTCオプションモジュールの電源が切れなくなります。
> # echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup
>
> このあたりのことは、マニュアルの
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
> の下の方の
> 9.20.1.1. 外部デバイスへの電源供給について
> です。
>
>
> > RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
> > わかりませんでした。
>
> 昔の自分のメモでは、ここのところは、
> ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
> となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。
>
> linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
> これだと思います。
>

> config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT
>         bool "RTC alarm interrupt at CON9_2"
>         default y
>         depends on ARMADILLO400_CON9_2_RTC_ALM_INT
> 

>
> --
> なかむら
>

y.nakamura

2015年9月15日 1時41分

中村です。

> 上記コマンドを追加したところ、RTCからのアラーム割り込みが発生することを確認しました。

解決できたようですが、

> RTCモジュールは内蔵電池で動作しているので、
> Armadillo-440ボードの電源に左右されないものと思ってました…

これ、気になります。

私もRTCオプションモジュールにバッテリをつないでいれば
(モジュールのCON2につなぐCR2032などですよね?)、
+3.3V_IOが切れても大丈夫だと思っていました。

案件の仕様としてバッテリをつなぐことができなかったので
試したことはないのですが、設計時に「バッテリをつなげば
+3.3V_IOをOFFにできるのになぁ」と。

--
なかむら

izawa

2015年9月15日 15時03分

毎度お世話様、伊澤です。

私もよくわかっていませんが。
A420WLの場合は電池を抱かせてやると、スリープしてもアラームでwakeupします。
電池がない場合は、マニュアルにもあるように数分でアラームが来なくなりますね。
# 何故かA420WLにはRTCモジュールもついてくるのですが、試していません。

y.nakamura

2015年9月15日 15時17分

中村です。

okuyamaさんの元の質問からは話がずれてしまいますが、お許しを・・・

伊澤さん、

> A420WLの場合は電池を抱かせてやると、スリープしてもアラームでwakeupします。
> 電池がない場合は、マニュアルにもあるように数分でアラームが来なくなりますね。

情報ありがとうございます。
A420-WLANは借りて使ったことはありますが、今は手元にないので。。。

> # 何故かA420WLにはRTCモジュールもついてくるのですが、試していません。
これ、なんでRTCモジュールが付属してるんでしょうね。

--
なかむら