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

1.0版

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

1概要
STM32H7
VDD

VBAT

パワースイッチ

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

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

RTC

PC14

2

PC13

アプリケーション側の利点• 超低電力：225nA@1.2V• ソフトウェア負荷を低減するハードウェアBCDカレンダ

32.768kHz• フィルタリング付きの超低電力タンパ検出

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

2

主な機能

3

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

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

RTC_TS

RTC_TAMP1
RTC_TAMP2
RTC_TAMP3

LSE（32.768kHz）

RTCCLK

HSE/32

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

タンパ検出

較正LSI

7ビット非同期 ck_apre 15ビット同期
プリスケーラプリスケーラシャドウレジスタ
RTC_SSR

RCC_BDCR/RTCSEL

タイムスタンプ
検出

ck_spre（1Hz）

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

APBバス

アラームA
アラームB
16ビット自動リロードタイマ
レジスタ
PCLK

•

RTC

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

これはRTCブロック図です。RTCには2つのクロックソースがあり、RTCクロック（RTCCLK）はRTCタイマカウンタに、APBクロックはRTCレジスタの読出しと書込みのアクセスに使用されます。RTCクロックは、ハイスピード外部オシレータ（HSE）を2から63までのプログラム可能な比率で分周したもの、ロースピード外部オシレータ（LSE）、ロースピード内部オシレータ（LSI）のいずれかを使用できます。STOPモードやSTANDBYモードで動作するた
めには、RTCクロックはLSEまたはLSIを使用する必要があります。VBATモードで動作するには、RTCクロックはLSEを使用する必要があります。
RTCクロックは、まず最初にプログラム可能な7ビット非同期プリスケーラで分周され、ck_apreクロックを得ます。ほとんどのRTCにはck_apre周波数のクロックが供給されるため、消費電力を減らすために、高い非同期分周値をセットすることをお勧めします。デフォルト値は128です。
次に、プログラム可能な15ビット同期プリスケーラによって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モードからの移行時に最大が行われる

2RTCCLKサイクルの遅延でシャドウ･レジスタを更新する• TRの読出し後にDR更新が停止し、DRが読み出されると停止が解除される

実レジスタ

日付
曜日

月

日付

時間
年

HH

MM

SS

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

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

ck_spreウェイクアップ周期
RTCCLK=32.768kHzの場合に122µsから32秒
ck_spre=1Hzの場合に1秒から36時間

分解能
61µs以上1秒

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

10

タンパ検出11

超低電力耐タンパ回路

耐タンパスイッチ• VBATモードでは3本のタンパ･ピンとイベントを使用可能

RTC_TAMP1

RTC_TAMP2• RTCの電源監視および温度監視によるタンパ
タンパ
検出

リセット 128バイト

バックアップレジスタ

RTC_TAMP3
オプションのフィルタリング
コンデンサ

電圧モニタ
温度モニタ

4KB
バックアップSRAM• イベントの発生が可能イベントごとにアクティブエッジやレベルを設定可能• タンパイベント検出時にはバックアップ･レジスタをリセットおよびバックアップSRAMのリードアクセスが禁止される• タンパ･イベントによってタイムスタンプ･イベントを生成可能

RTCには、超低電力タンパ検出回路が内蔵されています。この目的は、セキュアなアプリケーションで物理的タンパ行為を検出することと、侵入を受けた場合に機密データを自動消去することです。
3本のタンパピンとイベントに対応しており、すべての低電力モードとVBATモードで動作可能です。タンパ3のイベント検出は、I/Oのイベント、RTC電源ドメインの電圧の過不足、または温度の過不足の検出によって発生します。これらの電圧および温度モニター検出は，PWR_CR2コントロールレジスタで有効になっています。
検出はエッジトリガかレベルトリガで可能であり、アクティブエッジまたはレベルはイベントごとに設定可能です。
タンパイベントが検出されると、バックアップレジスタの内容が消去されます。また、タンパイベントが発生すると、バックアップSRAMの消去が完了するまでバックアップSRAMへの読み出しが禁止されます。
タンパイベントによりタイムスタンプイベントを生成可能です。

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モードを終了

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

15

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

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

16

関連ペリフェラル

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

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

17