Howto

RTCを使用する方法

このHowtoでは、Armadillo-IoT G3/G3L,Armadillo-X1(以下Armadilloと記載)にてRTCを使用する方法と使用例についてご紹介します。

RTC

RTCとは、Board Management IC及びi.MX7Dualが持つ機能で、ハードウェアクロックを管理します。
システムに電源が供給されていない間もバッテリや外部電源で動作させ、時刻を保持し続けることが可能です。
不意にACアダプターが抜かれる,ブレーカーを落とすなどの電源断でシステムクロックがリセットされても、予め保持されたハードウェアクロックの時刻が同期され、システムクロックが再使用可能となります。
RTCを使用することで、以下の状況でも時刻を利用することができます。

  • システム稼働中にNTPサーバ接続やNITZ取得など時刻を同期する方法がない場合
  • 再起動直後など、時刻同期が行われる前に時刻を使用したアプリケーションを実行したい場合

RTCバックアップインターフェース

Armadilloには、電源が切断されても時刻を保持させたい場合に備え、RTCバックアップインターフェースが実装されています。
このインターフェースに外付けバッテリー(例:CR2032 CR1220など)を接続することで、電源断状態でもRTCに保存されている時刻を長時間保持することができます。

RTCバックアップインターフェースの詳細は、各Armadilloの製品マニュアルを確認してください。

使用方法

RTCを利用するには、まず外部などから時刻を取得し、Linuxカーネルが管理するシステムクロックに同期させます。
その後、RTCが管理するハードウェアクロックに時刻を設定する必要があります。

システムクロック,ハードウェアクロック,時刻を同期する方法については別Howto「時刻を同期する方法」を参照してください。

使用例

製品マニュアル「i.MX 7Dualの電源制御 RTCによる制御」に、RTCのアラーム割込み機能を使用する例が記載されています。
これを利用することで、22時~翌8時まではArmadilloを停止させておき、8時に電源がONになり稼働する といった低電力モードを実装した運用が可能になります。

バッテリを使用しない状態でのRTC使用方法

Armadillo-IoT G3、Armadillo-X1ではACアダプターなどで本体に電源が供給されている場合、RTCバックアップインターフェースに外付けバッテリーが接続されていなくてもRTCに電源が供給されています。
そのため、上記で紹介した使用例などは外付けバッテリー無しでも実装可能です。
ただし、本体への電源が供給されなくなった場合はRTCも停止するため、RTCに保持されていた時刻が消えてしまうことに注意が必要です。