STM32WB – RTC
リアルタイムクロック

1.0 版

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

1

概要
STM32WB
VDD

VBAT

パワースイッチ

Mon 15/06/15
16:04:32
LSE

PC15• RTC は、あらゆる低電力モードで使用可能な、アラーム付きの超低電力ハードウェアカレンダを提供します。
• バッテリバックアップドメインに属しているため、主電源がオフであっても動作可能です。
• バックアップレジスタの 80バイトはタンパ検出時に消去されます。

RTC

PC14

2

PC13

32.768kHz

アプリケーション側の利点• 超低電力：315nA @1.8V• ソフトウェア負荷を低減するハードウェア BCD カレンダ
• フィルタリング付きの超低電力タンパ検出

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

2

主な機能

3

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

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

RTC_TS

RTC_TAMP1
RTC_TAMP2
RTC_TAMP3

LSE（32.768kHz）

RTCCLK

HSE/32

80バイト
バックアップレジスタ

タンパ検出

7bit 非同期 ck_apre 15bit 同期
プリスケーラプリスケーラ較正LSI

シャドウレジスタ
RTC_SSR

RCC_BDCR / RTCSEL

タイムスタンプ
検出ck_spre
（1Hz）

カレンダ
シャドウレジスタ
RTC_TR
RTC_DR
RTC_OUTAPB バスアラーム A
アラーム B
16bit 自動リロードタイマ
レジスタ
PCLK•RTCLSE からクロック供給を受けている場合、RTC はシステムリセットの影響を受けません。

これは RTC ブロック図です。RTC には 2 つのクロックソースがあり、RTCクロック（RTCCLK）は RTC タイマカウンタに、APB クロックは RTC レジスタの読出しと書込みのアクセスに使用されます。RTC クロックは、ハイスピード外部オシレータ（HSE）を 2 から 63 までのプログラム可能な比率で分周したもの、ロースピード外部オシレータ（LSE）、ロースピード内部オシレータ（LSI）のいずれかを使用できます。STOP モードや STANDBYモードで動作するためには、RTC クロックは LSE または LSI を使用する必要があります。VBAT モードで動作するには、RTC クロックは LSE を使用する必要があります。
RTC クロックは、まず最初にプログラム可能な 7bit 非同期プリスケーラで分周され、ck_apre クロックを得ます。ほとんどの RTC には ck_apre 周波数のクロックが供給されるため、消費電力を減らすために、高い非同期分周値をセットすることをお勧めします。デフォルト値は 128 です。
次に、プログラム可能な 15bit 同期プリスケーラによって ck_spre クロックを得ます。時間と日付の BCD レジスタを 1 秒インクリメントで更新するために、ck_spre は 1Hz である必要があります。サブセカンドレジスタの分解能は、ck_apre 周波数によって定義されます。デフォルトでは 256Hz です。SSR レジスタの分解能は、非同期プリスケーラ値を減少させることで高くなります。非同期プリスケーラもバイパス可能です。この場合、サブセカンドレジスタの分解能は、RTC クロック周波数によって定義されます。

4

RTC レジスタ書込み保護5

セキュアな RTC 初期化• RTC レジスタは、不正な書込みアクセスの防止のために書込み保護されています。
• RTC 書込みアクセスを可能とするために、電源コントローラ制御レジスタ（PWR_CR）のバックアップドメイン無効化（DBP）ビットをセットする必要があります。
• RTC 書込み保護レジスタ（RTC_WPR）にキーを書き込む必要があります。

• RTC 初期化モードに移行するための専用ソフトウェアシーケンス• カレンダレジスタとプリスケーラの初期化に使用されます。

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

5

RTC カレンダ

66

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

• BYPSHAD = 0：シャドウレジスタを読出し• STOP/STANDBY モードからの移行時に最大 2
RTCCLK サイクルの遅延でシャドウレジスタを更新します。

実レジスタ

日付曜日

月日付

• TR の読出し後に DR 更新が停止し、DR が読み出されると停止が解除されます。

時間
年

HH

MMSS

SSR

• SSR の読出し後に TR と DR の更新が停止し、DR が読み出されると停止が解除されます。

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

TRシャドウレジスタ

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

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

6

RTC カレンダ機能

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

• タイムスタンプ• 外部 I/O イベントに従って、カレンダの値をタイプスタンプレジスタに保存• VBAT への切り替え発生時の内部タイムスタンプ検出

このスライドには、カレンダの主な機能が説明されています。
サマータイムは、自動的に 1 時間加減算することによりソフトウェアによる管理が可能です。
動作中にオフセットをサブセカンドレジスタに加減算することにより、ck_apre クロック分解能で、RTC クロックをリモートクロックに同期させることができます。この機能は、RF アプリケーションで使用されることが一般的です。
基準クロック（50Hz または 60Hz の商用電源）を用いて、カレンダの長期精度を向上させることができます。基準クロックが自動検出され、それが存在する場合にはカレンダの更新に用いられます。基準クロックが使用できない場合、自動的に LSE クロックがカレンダの更新に用いられます。この機能は、STANDBY モー
ドと VBAT モードでは使用できません。
タイムスタンプ機能が使用できます。サブセカンド、時刻、日付の各レジスタのカレンダ値は、タイムスタンプ I/O にイベントが発生するとタイムスタンプレジスタに保存されます。VBAT への切り替え発生時にも、タイムスタンプイベントが発生することがあります。

7

高精度デジタル較正

8

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

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

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

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

較正ウィンドウ

精度

全体範囲

8秒

± 1.91ppm[0 ± 480ppm]

16 秒± 0.95ppm[0 ± 480ppm]

32 秒± 0.48ppm[0 ± 480ppm]

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

8

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

9

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

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

9

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

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

ウェイクアップ周期

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

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

ck_spreck_spre = 1Hz の場合に1 秒から 36 時間

分解能
61µs 以上

1秒

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

10

タンパ検出11

超低電力耐タンパ回路

耐タンパスイッチ

RTC_TAMP1

RTC_TAMP2

RTC_TAMP3

オプションのフィルタリングコンデンサ• VBAT モードでは 3 本のタンパピンとイベントを使用可能

タンパ
検出

リセット 80バイトバッ
クアップレジスタ• 各イベントに対してフィルタリング付きの設定可能な
アクティブエッジまたはレベル• タンパイベント検出時にはバックアップレジスタをリセット• タンパイベントによってタイムスタンプイベントを生成可能

RTC には、超低電力タンパ検出回路が内蔵されています。この目的は、セキュアなアプリケーションで物理的タンパ行為を検出することと、侵入を受けた場合に機密データを自動消去することです。
3 本のタンパピンとイベントに対応しており、すべての低電力モー
ドと VBAT モードで動作可能です。
検出はエッジトリガかレベルトリガで可能であり、アクティブエッジまたはレベルはイベントごとに設定可能です。
タンパイベントの検出時には、バックアップレジスタの内容が消去されます。
タンパイベントによりタイムスタンプイベントを生成可能です。

11

タンパ検出12

フィルタリング付きの安全で超低電力のタンパ検出• I/O プルアップ抵抗の用途は耐タンパスイッチのオープン状態検出に設定可能• さまざまな静電容量値に対応する設定可能なプリチャージパルス• 1、2、4 または 8サイクル• 設定可能なフィルタ• サンプリングレート：128、64、32、16、8、4、2、1Hz• MCU をウェイクアップするために割込みを発行する前の連続した同一イベントの個数：1、2、4または 8

タンパ検出回路には、超低電力デジタルフィルタが含まれています。内部 I/O プルアップは、耐タンパスイッチの状態検出に使用できます。
タンパピンがローレベルである場合の消費電流を回避するため、I/O プルアップはプリチャージパルスの間のみ印加されます。プ
リチャージパルス期間は、さまざまな静電容量値に対応するため設定可能となっており、1、2、4 または 8RTC サイクルから選択できます。プリチャージパルスの最後で、ピンのレベルがサンプリングされます。
タンパピンにはフィルタを適用可能です。これは、デバイスをウェイクアップするために割込みを発行する前に、所定の個数の連続した同一イベントを検出することから構成されています。この個数は設定可能であり、1～128Hz でプログラム可能なサンプリン
グレートにおいて、1、2、4 または 8イベントから選択できます。

12タンパ検出-信号

13

RTCCLK
フローティング入力（未接続）

スイッチ開放タンパ検出入力の電圧

入力電圧のサンプリングはここで行われます

1サイクルプリチャージ
2サイクルプリチャージ
4サイクルプリチャージ(8サイクルについては図示せず)

スイッチを閉じます。

この図には、内部プルアップを用いたタンパ検出が図示されています。内部プルアップは、1、2、4 または 8サイクルの間適用可能です。スイッチが開放されていると、抵抗器によってレベルがプルアップされます。スイッチが閉じられていると、レベルはローのままとなります。
プリチャージパルスの最後で、入力電圧がサンプリングされます。

13

割込み
割込みイベント

14

説明

アラーム A

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

アラーム B

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

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

タイムスタンプイベントの発生時にセットタンパ 1

RTC_TAMP1 でタンパイベントが検出されたときにセットタンパ 2

RTC_TAMP2 タンパイベントが検出されたときにセット

タンパ 3

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

14低電力モード
モード

15

説明RUN有効。

SLEEP

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

STOP

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

STANDBY

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

SHUTDOWN

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

すべての低電力モードで RTC ペリフェラルがアクティブとなり、トリガされると、RTC 割込みによってデバイスが低電力モードを終了します。STOP モードと STANDBY モードでは、LSE またはLSI クロックのみが RTC へのクロック供給に用いられます。
SHUTDOWN モードと VBAT モードでは、LSE クロックのみが動作可能であることに注意してください。

15

デバッグ情報16• DBG_RTC_STOP bit：コア停止時に RTC カウンタは停止します。

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

16

関連ペリフェラル

17• これは、RTC に関連したペリフェラルに関する次のトレーニングを参照してください。
• リセットおよびクロック制御（RCC）• 電源制御（PWR）• 拡張割込みコントローラ（EXTI）

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

17