STM32G0 - RTC
リアルタイム･クロック
レビジョン 1.0

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

1

STM32F0との違い

2• RTCの実装はSTM32F0と同じであるが、少し機能強化されている。
• STM32G0には2つのアラーム（A と B）がある• STM32F0にはアラーム Aのみがある• STM32G0では、タンパIPとRTCが分離されている• STM32F0では、タンパはまだIPの一部となっている

STM32F0 の RTC に関して STM32G0 の RTC に追加された新機能は次のとおりです。
• 2 つのアラーム• RTC ブロックがタンパブロックと分離されています。

2

概要
STM32G0

パワースイッチ

RTC

TAMP

LSE

PC15

PC14

PC13

VDD

• RTCは、すべての低消費電力モードで、アラーム付きの超低消費電力ハードウェアカレンダを搭載している

VBAT• バッテリ･バックアップ･ドメインに属しているため、主電源がオフでVBATが存在するときにも、機能が維持される

3• TAMPペリフェラルは、バックアップ･レジスタとタンパ検出を備えている

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

32.768 kHz• ハードウェアBCDカレンダによりソフトウェアの負荷が低減される

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

3

主な機能

4

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

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

4

ブロック図rtc_ker_ck=
RTCCLK

LSE（32.768 kHz）
HSE/32LSI較正

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

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

ck_spre （1 Hz）

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

シャドウレジスタ
RTC_SSR

RCC_BDCR [RTCSEL]CALIBAPB バスアラーム A
アラーム B

pclk

tamp_evt
VBAT への切り替え•ALARM
TAMP

16 ビットウェイクアップ自動再ロードタイマ

5

RTC_OUT1
出力制
御TAMPALARM

RTC_OUT2TAMPOE

レジスタ

タイムスタンプ
検出RTC_TS

RTC

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

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

5

RTCレジスタ書込み保護6

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

RTC は、安全な方法を使用して初期化されます。
RTC レジスタは不正な書込みアクセスを避けるために書込み保護されています。最初に、RTC 書込みアクセスを有効にするために、電源コントローラ制御レジスタのバックアップドメイン保護の無効化ビットをセットする必要があります。次に、RTC書込み保護レジスタに特定のシーケンスを書き込む必要があります。
クロックプリスケーラ値またはカレンダ値を変更するには、初期化モードに入る必要があります。

6

RTCカレンダ

7

すべての低消費電力モード、VBAT、リセットでアクティブ• シャドウレジスタ（時間レジスタと日付レジスタ）を通じて初期化が行われる• カレンダの読出し：• BYPSHAD = 0：シャドウレジスタを読み出す

実際のレジスタ

日付
曜日月

日付

時刻
年

HH

MMSSSSR• BYPSHAD = 1：シャドウレジスタをバイパス

同期
DR• STOP/STANDBY/SHUTDOWN モードの終了時にシャドウレジスタを更新するために最大 1 RTCCLK サイクルの遅延が発生。
• RTC_SSR または RTC_TR のどちらかを読み出すと、高次カレンダシャドウレジスタの値は RTC_DR が読み出されるまでロックされる。

TR
シャドウレジスタ

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

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

RTCカレンダ機能

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

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

δt

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

8

RTCカレンダ機能

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

9

高精度デジタル較正

10

クリスタルの精度を補償•設定可能なウィンドウ内に適切に分散される、N 個（設定可能）の 32kHz
クロックパルスのマスキング／追加から構成される•

動作中に較正値を変更できる•クリスタル周波数と較正結果を測定するために、1Hz 出力を提供
較正ウィンドウ

精度

全範囲

8秒

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

16 秒

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

32 秒

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

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

10

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

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

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

11

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

12

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

ウェイクアップ周期

分解能

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

RTCCLK = 32.768 kHz の場合、122 µs から 32 秒

61 µs（最小）ck_spreck_spre = 1 Hz の場合、1 秒から 36 時間1秒

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

12

割込み
割込みイベント

13

説明

アラーム A

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

アラーム B

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

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

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

13

低消費電力モードモード

14

説明RUN

アクティブ

SLEEP

アクティブ
• RTC 割込みによって、デバイスは SLEEP モードを終了する

低消費電力 RUN

アクティブ

低消費電力 SLEEP

アクティブ• RTC 割込みによって、デバイスは低消費電力 SLEEP モードを終了する

STOP 0 / STOP 1

クロックが LSE または LSI によって供給される場合、アクティブ• RTC 割込みによって、デバイスは STOP 0/STOP 1 モードを終了する

STANDBY

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

SHUTDOWN

クロックが LSE によって供給される場合、アクティブ• RTC 割込みによって、デバイスは SHUTDOWN モードを終了する

RTC ペリフェラルはすべての低消費電力モードでアクティブであり、RTC 割込みによってデバイスは低消費電力モードを終了します。STOP 0、STOP 1 および STANDBY モードでは、LSE または LSI クロックのみを使用して RTC にクロックを供給できます。このオシレータは VBAT ドメインに属しているため、SHUTDOWN モードでは LSE のみが機能します。

14

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

デバッグを目的として MCU デバッグインタフェースで 1 ビットを使用できます。これにより、コアが停止したときに RTC カウンタを停止できます。

15

関連ペリフェラル

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

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

16