STM32G4 – RTC
リアルタイム･クロック

1.0版

STM32リアルタイムクロックのプレゼンテーションにようこそ。ここでは、非常に正確なタイムベースを提供するこのペリフェラルの主な機能の説明を行います。

1概要
STM32G4
VDD

VBAT

パワースイッチ

RTC

タンパ

LSE

PC15

PC14

PC13

2

• RTCは、あらゆる低電力モードで使用可能な、アラーム付きの超低電力ハードウェア･カレンダを提供• バッテリ･バックアップ･ドメインに属しているため、主電源がオフでもVBATが存在していれば動作可能• タンパペリフェラルはバックアップ･レジスタおよびタンパ検出が特徴

アプリケーション側の利点• 超低消費電力:300nA@1.8V

32.768kHz• ソフトウェア負荷を低減するハードウェアBCDカレンダ

RTCペリフェラルは、あらゆる低電力モードで使用可能な、アラーム付きの超低電力カレンダを提供します。
さらに、32.768kHzのロースピード外部オシレータ（LSE）からクロック供給を受けている場合には、主電源がオフであり、VBATドメインがバックアップバッテリから電源供給を受けている場合であっても、RTCが機能可能です。
RTCの消費電流は、LSEの消費電力を含めて、1.8Vにおいて300nAとなります。ハードウェアカレンダは、日付と時間の表示が必要である場合には特に、ソフトウェア負荷を減らすために2進化10進法（BCD）フォーマットで供給されます。
タンパ検出とバックアップレジスタは、タンパペリフェラルに属します。

2

主な機能

3

• BCDフォーマットのサブセカンド、秒、分、時、曜日、日、月、年• 「動作中」にプログラム可能なサマータイム補正• ウェイクアップ割込み機能を備えた、2本のプログラム可能なアラーム• プログラム可能な分解能を備える周期的フラグが、ウェイクアップ割込みをトリガ• 基準クロックソース（50Hzまたは60Hz）はカレンダの更新に使用可能• デジタル較正回路により0.95ppmの精度を達成• サブセカンド精度でイベントを保存するタイムスタンプ機能（1イベント）

RTCの主な機能は次のものです。
• 2進化10進フォーマットで提供される秒、分、時、曜日、日、月、年。サブセカンドはバイナリ形式で提供。
• サマータイムを管理するために、動作中のカレンダに1時間を加減。
• すべての低電力モードからMCUをウェイクアップできる、プログラム可能なアラームを2つ準備。
• 周期的フラグまたはウェイクアップ機能付きの割り込みの生成に使用できる、自動リロードタイマ。このタイマの分解能はプログラム可能。
• カレンダは、50Hzまたは60Hzの商用電源であるリファレンスクロックソースにより、較正可能。
• 0.95ppm分解能でクリスタル精度の補正が可能なデジタル較
正回路。
• 外部イベントに従って、タイプスタンプレジスタにカレンダの内容を保存するタイムスタンプ機能。

3

ブロック図LSE（32.768kHz）
HSE/32

rtc_ker_ck=RTCCLK

キャリブ
レーション

7ビット非同期
プリスケーラ

ck_apre15ビット同期
プリスケーラLSI

ck_spre（1Hz）

カレンダ
シャドウレジスタ
RTC_TR
RTC_DR

シャドウレジスタ
RTC_SSR

RCC_BDCR[RTCSEL]

CALIB

APBバス

アラームA
アラームB
16ビットウェイクアップ
自動リロードタイマ
pclk

rtc_tamp_evt
VBATに切り替え•4

アラーム
タンパ

TAMPALARM

RTC_OUT1
出力コント
ロール

RTC_OUT2TAMPOE

レジスタ

タイムスタンプ
検出

RTC_TS

RTC

LSEからクロック供給を受けている場合、RTCはシステムリセットの影響を受けない

これはRTCブロック図です。RTCには2つのクロックソースがあり、RTCクロック（RTCCLK）はRTCタイマカウンタに、APBクロックはRTCレジスタの読出しと書込みのアクセスに使用されます。RTCクロックは、高速外部オシレータ（HSE）をプログラム可能な比率で32分周したもの、低速外部オシレータ（LSE）、低速内蔵オシレータ（LSI）のいずれかを使用できます。STOPモードやSTANDBYモードで動作するためには、RTCク
ロックはLSEまたはLSIを使用する必要があります。SHUTDOWNモードまたはVBATモードで動作するには、RTCクロックはLSEを使用する必要があります。
RTCクロックは、最初に7ビットのプログラム可能な非同期プリスケーラーで割り、ck_apreクロックを提供します。RTCのほとんどはck_apre周波数でクロックされるため、消費電力を削減するためには、高い非同期分割値を設定することが推奨されます。
デフォルト値は128です。
次に、15ビットのプログラム可能な同期プリスケーラーがck_spreクロックを供給します。
CK_SPREクロックは、BCDレジスタを1秒単位で更新するために1Hzでなければなりません。サブセカンドレジスタの分解能は、ck_apre周波数によって定義されます。デフォルト
では256Hzです。SSRレジスタの分解能は、非同期プリスケーラ値を減少させることで高くなります。
非同期プリスケーラもバイパス可能です。この場合、サブセカンドレジスタの分解能は、RTCクロック周波数によって定義されます。
RTCには、アラームフラグ、ウェイクアップタイマフラグ、プリスケーラーからのキャリブレーション出力、およびタンパ検出イベントを提供できる2つの出力があります。
この図では、シャドウレジスタはAPBクロックドメインに属しています。これについては、このプレゼンテーションで後述します。

4

RTCレジスタ書込み保護5

セキュアなRTC初期化• RTCレジスタは、不正な書込みアクセスの防止のために書込み保護される• RTC書込みアクセスを可能とするために、電源コントローラ制御レジスタ（PWR_CR）のバックアップ･ドメイン無効化（DBP）ビットをセットする必要がある• RTC書込み保護レジスタ（RTC_WPR）にキーを書き込む必要がある• RTC初期化モードに移行するための専用ソフトウェア･シーケンス• カレンダ･レジスタとプリスケーラの初期化に使用

RTCはセキュアな方法で初期化されます。
RTCレジスタは、不正な書込みアクセスの防止のために書込み保護されています。最初に、RTC書込みアクセスを可能とするために、電源コントローラ制御レジスタのバックアップドメイン無効化ビットをセットする必要があります。次に、RTC書込み保護レジ
スタに専用シーケンスを書き込む必要があります。
クロックプリスケーラやカレンダーの値を変更するために、初期化モードに移行する必要があります。

5

RTCカレンダ

6

すべての低電力モード、VBAT、リセットでアクティブ• 時間レジスタと日付レジスタのシャドウ･レジスタを通じて初期化• カレンダの読出し：• BYPSHAD = 0: シャドウ･レジスタを読出し• STOP/STANDBY/SHUTDOWNモードからの移行時に最大1RTCCLKサイクルの遅延でシャドウ･レジスタを更新実レジスタ

日付曜日

月

日付

時間
年

HH

MMSS

SSR

• RTC_SSRまたはRTC_TRを読み取る場合、上位のカレンダ･シャドウ･レジスタの値は、RTC_DR読み取られるまでロック• BYPSHAD = 1: シャドウ･レジスタをバイパスDRTR
シャドウレ･ジスタ

SSR• カレンダの読出しによりカレンダ･カウンタに直接アクセス• ソフトウェアはすべてのカレンダ･レジスタを2回読み出しその結果を比較し、データに整合性があり正しいことを確認する必要がある

RTCカレンダは、すべての低電力モードとVBATモードで、そしてリセット中に動作を続けます。
時刻レジスタおよび日付レジスタの初期化は、APBクロックドメインにあるシャドウレジスタを通じて行われます。サブセカンドレジスタを初期化することはできません。
カレンダのサブセカンド、時刻、日付の各レジスタの内容は、2つの異なる方法で読み出すことができます。
バイパスシャドウレジスタ制御ビットがクリアされている場合には、シャドウレジスタが読み出されます。このモードの長所は、3つのレジスタすべての一貫性が保証されることです。RTC_SSRまたはRTC_TRを読み取る場合、上位のカレンダシャドウレジスタの値は、RTC_DR読み取られるまでロックされます。
このモードの短所は、STOP、STANDBY、またはSHUTDOWNモードの終了
時には、カレンダレジスタの最後の値でシャドウレジスタが更新されたことを保証するために、ソフトウェアが同期遅延だけ待つ必要があることです。
同期遅延は、最大で1RTCクロックになります。
バイパスシャドウレジスタ制御ビットがセットされている場合には、実レジスタが直接読み出されます。このモードの長所は、同期遅延分待つ必要がないことです。短所は、同期の問題のために読み出された値が誤っている可能性があるために、2回読み出して前回の読出し値と比較して、それらが正しくて整合性があることを確認する必要があるという点です。

6

RTCカレンダ機能

7• 「サマータイム」は自動的に1時間だけ加算したり減算することで管理• サブセカンド分解能のオフセットを加算/減算することで最大1秒のカレンダ同期=>リモート･クロックによる同期が可能• リファレンス･クロック検出：より正確な秒のクロックソース（50Hzまたは60Hz商用電源）を使用することで、カレンダの長期精度の向上が可能：• 基準クロックが自動検出され、カレンダの更新に用いる• 基準クロックが使用できなくなった場合には、自動的にLSEクロックをカレンダの更新に用いる

ck_spre（1Hz）
RTC_REFIN（50Hzまたは60Hz）
δt

δt

このスライドには、カレンダの主な機能が説明されています。
サマータイムは、自動的に1時間加減算することによりソフトウェアによる管理が可能です。
動作中にオフセットをサブセカンドレジスタに加減算することにより、ck_apreクロック分解能で、RTCクロックをリモートクロックに同期させることができます。この機能は、無線アプリケーションで使用されることが一般的です。
基準クロック（50Hzまたは60Hzの商用電源）を用いて、カレンダの長期精度を向上させることができます。基準クロックが自動検出されます。LSEクロックの精度が悪いために1Hzクロックがずれると、RTCは1Hzクロックを少しずれ、将来の1Hzクロックエッジが揃うようにします。このメカニズムのおかげで、カレンダは基準クロックと同じくらい正確になります。
基準クロックが使用できない場合、LSEクロックは自動的にカレンダの更新に使用されます。

7

RTCカレンダ機能

8• タイムスタンプ• 外部I/Oイベントに従って、カレンダの値をタイプスタンプ･レジスタに保存• VBATへの切り替え発生時の内部タイムスタンプ検出• タンパ検出の場合のオプション･タイムスタンプ• タイムスタンプ･フラグ（TSF）が既に設定されている間に新しいタイムスタンプ･イベントが検出された場合、タイムスタンプ･オーバーフロー･フラグ（TSOVF）がセット

タイムスタンプ機能が使用できます。サブセカンド、時刻、日付の各レジスタのカレンダ値は、タイムスタンプI/Oにイベントが発生するとタイムスタンプレジスタに保存されます。VBATへの切り替え発生時にも、タイムスタンプイベントが発生することがあります。
タイムスタンプフラグがセットされている間にタイムスタンプイベントが発生した場合、タイムスタンプオーバーフローフラグがセットされます。この場合、タイムスタンプレジスタは、前のイベントのタイムスタンプを維持します。

8

高精度デジタル校正

9クリスタルの精度を補正•

N個（設定可能）の32kHzクロック･パルスのマスキング／追加から構成され、かなり広範囲での設定が可能•

較正値は動作中に変更可能•

1Hz出力が搭載されており、クリスタル周波数と校正結果を測定可能
較正ウィンドウ

精度

全体範囲

8秒

± 1.907 ppm[-487.1 ppm, +488.5 ppm]

16秒

± 0.954 ppm[-487.1 ppm, +488.5 ppm]

32秒

± 0.477 ppm[-487.1 ppm, +488.5 ppm]

デジタル較正は、クリスタル精度と、温度および経年変化による精度のばらつきの補正に用いられます。
プログラム可能な回数のRTCクロックサイクルのマスキングまたは追加から構成されており、かなり広範囲での設定が可能です。
較正値は、検出された温度変化などに応じて動作中に変更可能です。1Hz校正出力信号が搭載されており、較正値の適用前後のクリスタル周波数を測定可能です。
ここに示した精度は、デジタル較正の分解能です。較正ウィンド
ウサイズは8秒、16秒、32秒の中から設定可能です。32秒の校正
ウィンドウでの精度は±0.48ppmとなります。全体修正範囲は、487ppmから488ppmまでです。精度分解能は、較正ウィンドウサイズによって拡大縮小します。アプリケーションにおける最終的な精度は、クリスタルパラメータ精度、温度検出精度、ソフトウェア較正手順が開始された頻度などに依存します。
較正ウィンドウの精度に到達するためには、測定ウィンドウは較正ウィンドウの倍数である必要があります。

9

RTCのプログラム可能なアラーム

10

カレンダ値に基づく柔軟性の高い2つのアラーム• カレンダのサブセカンド、秒、分、時、日付がアラーム･レジスタにプログラムされた値と一致した場合に、アラーム･フラグがセット• デバイスにすべての低電力モードを終了させる2種類のアラーム• アラーム･イベントは、極性が設定可能である特定の出力ピンに送ることも可能• カレンダのサブセカンド、秒、分、時、日付の各フィールドは、（マスクの有無を）独立に選択可能• マスクすると、周期的アラーム割込みの設定が可能

RTCには、カレンダの値の比較に基づく、柔軟性の高い2種類のアラームが搭載されています。カレンダのサブセカンド、秒、分、時、または日付がアラームレジスタにプログラムされた値と一致すると、アラームフラグがセットされます。
アラームイベントは、すべての低電力モードからデバイスをウェイクアップ可能です。
アラームイベントは、極性が設定可能である特定の出力ピン
RTC_OUTに送ることも可能です。
カレンダアラームのサブセカンド、秒、分、時、日付の各フィールドは、比較に対して独立にマスクすることもマスクしないことも可能です。マスクが使用される場合、周期的アラームが生成されます。

10

周期的自動ウェイクアップ

11

柔軟性の高い周期的ウェイクアップ割込み• 周期的ウェイクアップ･フラグは、16ビットのプログラム可能なバイナリ自動リロード
ダウンカウンタ（17ビットまで拡張可能）によって生成• デバイスにSTOP/STANDBY/SHUTDOWNモードを終了させることが可能
ウェイクアップ･タイマ（WUT）クロック

ウェイクアップ周期

分解能

2、4、8、または16分周したRTCCLK

RTCCLK=32.768kHzの場合に122マ
イクロ秒から32秒

61µs以上ck_spreck_spre=1Hzの場合に1秒から36時間

1秒

カレンダとアラームに加えて、低電力モードからウェイクアップする機能を備えた周期的イベントを、別の16ビット自動リロードカウンタによって生成可能です。このカウンタは読出しできません。
ウェイクアップタイマクロックは、ソフトウェア設定に応じて2、4、8、または16分周したRTCクロックとすることも、同期プリスケーラの出力とすることも可能です。分周されたRTCクロックを用いると、RTCクロック周波数が32.768kHzである場合に、ウェイクアップ周期は122マイクロ秒から32秒の間となります。この場合、分解能は61マイクロ秒以上となります。ck_spreクロックを用いると、ck_spreクロックが1Hzである場合に、ウェイクアップ周期は1秒から36時間の間となります。

11

割込み
割込みイベント

12

説明

アラームA

カレンダ値がアラームA値に一致した場合にセットアラームB

カレンダ値がアラームB値に一致した場合にセットウェイクアップ･タイマ

ウェイクアップ自動リロードタイマが0に到達したときにセット

タイムスタンプ

タイムスタンプ･イベントの発生時にセットいくつかのRTCイベントによって割込みの生成が可能です。すべての割込みが、すべての低電力モードからMCUをウェイクアップ可能です。
カレンダの値がアラームA値に一致した場合に、アラームA割込みがセットされます。
同様に、カレンダ値がアラームB値に一致した場合に、アラームB割込みがセットされます。
ウェイクアップ自動リロードタイマがゼロに到達したときに、ウェイクアップタイマがセットされます。
タイムスタンプイベントの発生時に、タイムスタンプ割込みがセットされます。

12低電力モード
モード

13

説明RUN

有効

SLEEP

有効• RTC割込みによって、デバイスはSLEEPモードを終了

低電力RUN

有効低電力SLEEP有効• RTC割込みによって、デバイスは低電力SLEEPモードを終了

STOP0/STOP1

クロックがLSEまたはLSIによって供給される場合に有効• RTC割込みによって、デバイスはSTOP0/STOP1モードを終了

STANDBY

クロックがLSEまたはLSIによって供給される場合に有効• RTC割込みによって、デバイスはSTANDBYモードを終了

SHUTDOWN

クロックがLSIによって供給される場合に有効• RTC割込みによって、デバイスはSHUTDOWNモードを終了

すべての低電力モードでRTCペリフェラルがアクティブとなり、トリガされると、RTC割込みによってデバイスが低電力モードを終了します。STOP0/STOP1モードとSTANDBYモードでは、LSEまたはLSIクロックのみがRTCへのクロック供給に用いられます。このオシレータはVBATドメインに属しているため、LSEのみがSHUTDOWNモードで機能します。

13

デバッグ情報14• DBG_RTC_STOPビット：コア停止時にRTCカウンタは停止

デバッグのためにコアが停止された場合にRTCカウンタを停止するために、MCUデバックインタフェースの1ビットを使用可能です。

14

関連ペリフェラル

15• RTCに関連したペリフェラルに関する次のトレーニングを参照してください。
• タンパとバックアップ･レジスタ（TAMP）• リセットおよびクロック制御（RCC）• 電源制御（PWR）• 拡張割込みコントローラ（EXTI）

リアルタイムクロックに関連したペリフェラルのリストです。詳細については、必要に応じてこれらのペリフェラルトレーニングを参照してください。
• タンパとバックアップレジスタ• リセットおよびクロック制御• 電源制御• 拡張割込みコントローラ

15