M5StackCore2(AWS機)。内蔵RTC、時刻が更新されない(時刻停止)事象発生(未解決)

プログラミング

 まだ不具合かどうか分かりません。また、自作プログラムのバグの影響で起きている事象かもしれません。申し訳御座いませんが内容を疑って本記事を読んで頂きたいと思います。

現在分かっていることは下記です(2021/8/8 10時)
 ①一定時間間隔(最短5分)でNTPサーバに接続しRTC時刻修正(同期)を行っていると
  RTCが停止する場合がある
 ②タッチスクリーンに触る(触り続ける)とRTCが停止する場合がある
  ※①のコードを無効化しても発生
  ※loop内でM5.update();を実行
なお、AWS機のみの確認です。非AWS機での実験は現状未実施です(手元に無いので)

 M5StackCore2のAWS版を購入して連続稼働チェックをしていたところRTC(リアルタイムクロック)の不具合に遭遇しました。原因を究明してRTCを使うか、(諦めて)configTime()を使うか決めたいと思います。

RTCの時刻更新停止

 それにしても私はM5StackCore2のRTCと相性が悪いようです。前回は時刻の「時」が「秒」のようになる不具合に遭遇しました。記事は下記になります。

 今回はRTCのみ時間が停止する現象に遭遇しております。ローカルタイム(getLocalTime)の時刻は正常(のようです)。アイキャッチ画像とここの画像は同じデバイスを時間をずらして撮影したものになります。画像の「LT」がローカルタイムの時刻、「RTC」がRTCの時刻です。画面表示タスク(Core1)が10秒毎にLTとRTCを読み込み、他の数値と共に画面表示しております。

 「LT」基準で考えると40秒 「RTC」は止まったままです。別の事象では数時間止まったままでした(後に動き出す。時刻は数時間遅れのまま)。

 またです。またRTCです。

 プログラムの見直しと実験をしたいと思いますが、無理せず「 configTime 」と「 getLocalTime 」で対応するかもしれません。

 ところで、これに関連する情報が検索でヒットしません、もしかしたらM5Core2でRTCを使っている日本の方が少ないのかもしれません(か、自分のプログラムのバグか)。

 取り敢えず、RTCにはご注意下さい。

 現在、私はプログラムのバージョンを落とし、連続稼働して同じ事象が発生するか確認中です。

 もしかしたら、液晶表示処理(M5Display関連)がRTCに影響するのかもしれません(感ですが)。

【追記: 2021/08/04 】RTC停止発生後、EasyLoader_M5Core2_FactoryTest.exeを実行してもダメでしたが、EasyLoader_Core2_for_AWS_Default.exeでRTC再始動

 半月ほど前のプログラムバージョンを一晩中動かしてもRTC停止は起きなかったのですが、タッチスクリーンを触っているとRTC停止が発生しました(タッチボタンに M5Display関連 の処理が実装されています(バックライト処理やsleepなど))。ここで、非AWS機用のEasyLoaderを実行しましたがRTC表示は止まったままでした。自作プログラムの画面表示処理やRTC読み込み処理が悪い訳ではないようです。

時間経過確認用画像1
時間経過確認用画像2(プログラム書き込み中ではありません)

 次に、EasyLoader_Core2_for_AWS_Default.exeを実行しました。いわゆるAWS用の EasyLoader です。

AWS用 EasyLoaderでRTC動き始めました。

 AWS用EasyLoaderを実行するとRTCは動き始めました。時刻をみるとやはりRTCが停止していたようです。AWS機用と非AWS機用のEasyLoaderのソースコードを比較すればRTCが止まった原因、もしくはRTC停止時の対策方法が分かるかもしれません。

 そもそもCore2とはいえAWS機に非AWS機を流し込んだのが反則でしょうか。よく分かりませんが参考までに情報共有させて頂きます。

 もしも、問題等あればご指摘下さい。

タイトルとURLをコピーしました