iwaya_yoke
2024年11月19日 18時48分
以下のコマンドでスリープ機能を試しています。
1800sec(30分)であれば、設定どおりに起床するのですが、
86400sec(1日)と設定すると、約10分後に起床してしまいます。
設定方法に誤りがあれば教えていただけないでしょうか?
aiot-set-wake-trigger all disabled aiot-set-wake-trigger rtc enabled +[wakeup second] aiot-sleep-sms
==========
製品型番:A6E
Debian/ABOSバージョン:3.20.2-at.2
カーネルバージョン:Linux armadillo 5.10.224-0-at
==========
コメント
iwaya_yoke
iwaya_yoke
iwaya_yoke
at_shinya.koga
アットマークテクノの古賀です。
iwaya_yokeさん:
>aiot-sleepコマンドでの確認結果ですが、86400secを指定して適切に1日スリープした後に起床することを確認できました。
ご確認有り難うございます。
もし、スリープ機能をお使いになる目的が省電力なのであれば、aiot-sleep よりも省電力な aiot-alarm-poweroff コマンドの使用もご検討ください。
aiot-sleep は、OS をスリープモード (Suspend to RAM) にしますが、aiot-alarm-poweroff は、OS をシャットダウンして SoC (CPU ) への給電をオフします。
どちらの場合も RTC アラーム割り込みで起床できますが、aiot-alarm-poweroff は、SoC ではなく電源管理 IC が割り込みを受けて、電源管理 IC が SoC に給電再開・起動する、という違いがあります。
aiot-alarm-poweroff コマンドについては、マニュアルの「シャットダウンモードへの遷移と起床」で説明しています:
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
>aiot-sleep-smsコマンドでスリープさせたときは、特にSMSは送っていない(過去送って起床させたことはある)のですが、
>何が原因として考えられるでしょうか?
>SIMはsoracomです。
LTE 網から LTE モジュールに何らかのデータが届いた可能性がある、ということまでしか分かりません。ごめんなさい。
aiot-sleep-sms では、LTE モジュールがスリープモード状態から起床した時に出す割り込み通知を要因として SoC を起床させるのですが、LTE モジュールは、SMS を受信した時だけでなく LTE 網から何らかのデータを受信した場合にも起床するようです。
そのため、SMS 受信を起床要因にする必要がない場合は、aiot-sleep か aiot-alarm-power-off を使っていただくのがよいです。
いかがでしょうか?
iwaya_yoke
koga
アットマークテクノの古賀です。
iwaya_yokeさん:
>ご対応ありがとうございます。
>SMSで起床させたい場合があるので、aiot-sleep-smsを使いたいと思っています。
了解しました。
>取り急ぎは、想定時間より前に起きてしまった場合は再度スリープするようにしようかなと思っていますが、
>頻繁に起床すると困るので、特定のSMSを受信したときだけ起床することをしたいのですが、技術的に可能でしょうか?
ごめんなさい。できません。
起床時に、受信済み SMS があれば内容をチェックして、起床要因の SMS でない場合は再度スリープする、という対応をするしかないと思います。
iwaya_yoke
古賀さん
ご回答ありがとうございます。
現状のOSではできなくても、OSをアップデートすればできるようになるとかでもない、という理解で正しいでしょうか?
ちなみに、再度スリープする件に関して、以下のスレッドの内容が気になっています。
なんらかのLTE受信で起床しているのであれば、LTE接続しているので、すぐにスリープしても問題ないのかなと思っているのですが、
「send-at /dev/ttyMux2 AT+CSQ echo ems31」コマンドでOKが返ってくるまで待機してからスリープへ移行したほうがよいでしょうか?
https://armadillo.atmark-techno.com/forum/armadillo/23161
at_shinya.koga
アットマークテクノの古賀です。
iwaya_yokeさん:
>ご回答ありがとうございます。
>現状のOSではできなくても、OSをアップデートすればできるようになるとかでもない、という理解で正しいでしょうか?
はい。OS の振る舞いではなく、LTE モジュールの振る舞いが要因ですから、OS のアップデートで状況が変わるものでは、ありません。
>ちなみに、再度スリープする件に関して、以下のスレッドの内容が気になっています。
>なんらかのLTE受信で起床しているのであれば、LTE接続しているので、すぐにスリープしても問題ないのかなと思っているのですが、
>「send-at /dev/ttyMux2 AT+CSQ echo ems31」コマンドでOKが返ってくるまで待機してからスリープへ移行したほうがよいでしょうか?
>https://armadillo.atmark-techno.com/forum/armadillo/23161
AT+CSQ は、LTE モジュールから受信電波強度を取得する AT コマンドですが、受信電波強度を取得する必要がないのであれば、すぐにスリープして問題ないと思います。
iwaya_yoke
at_shinya.koga
2024年11月20日 11時05分
アットマークテクノの古賀です。
iwaya_yokeさん:
>以下のコマンドでスリープ機能を試しています。
>1800sec(30分)であれば、設定どおりに起床するのですが、
>86400sec(1日)と設定すると、約10分後に起床してしまいます。
>設定方法に誤りがあれば教えていただけないでしょうか?
>
aiot-set-wake-trigger コマンドの使い方は、ご提示のもので正しいです。
そして、指定した秒数が経過するかまたは LTE モジュールが SMS 受信ときに起床させたいのであれば、上記コマンド列で正しいです。
一点確認ですが、aiot-sleep-sms ではなく aiot-sleep コマンドでスリープした場合も、同じ症状が発生するでしょうか?
指定した秒数の経過時のみ起床する動作、つまり RTC アラーム割り込みのみを起床要因とする場合は aiot-sleep コマンドを使います。