STM32WL5 - RCC

リセットおよびクロックコントローラ
レビジョン 1.0

STM32WL5 のリセットおよびクロック制御のプレゼンテーション
へようこそ。

1

概要
システム･リセット制御

OSC32_IN/OUT

LSE

rcc_irq
rcc_HSE32css_irq
rcc_lsecss_irq

MSI
HSI16

クロック分配レジスタインタフェース

LSI

AHB

• リセットおよびクロックコントローラ（RCC）の管理対象：• すべてのクロックの生成• CPU1、CPU2、およびバスマトリックス• ペリフェラルのカーネル･クロック

PLL

ペリフェラルのカーネル･クロック• PLL、RC オシレータ、クリスタルオシレータなど
プロセッサとペリフェラルへ

HSE32

ペリフェラルへ

OSC_IN/OUT

クロックのゲート処理の制御

NRST

プロセッサとペリフェラルへ

RCC• すべてのクロックのゲート処理• すべてのシステムとペリフェラルに対するリセットの制御

アプリケーション側の利点•

消費電力と精度の要件を満たすクロックソース選択で優れた柔軟性•CPU1 と CPU2 のサブシステムそれぞれに対する独立したクロック制御•

安全で柔軟なリセット管理2

リセットおよびクロックコントローラは、各種のリセットメカニズム
およびシステムクロックとペリフェラルのカーネル･クロックの生成を管理します。
STM32WL5 マイクロコントローラには、内部オシレータが 3 個、外部のクリスタル、発振子、または温度補償オシレータで使用するオシレータが 2 個、およびフェーズロックループ（PLL）が 1 個搭載されています。
多くのペリフェラルは、システムクロックから独立した固有のカー
ネル･クロックを備えています。
RCC ではクロックソースを柔軟に選択できるので、消費電力と精度双方の要件をシステム設計で満たすことができます。
多数のペリフェラルクロックが相互に独立して動作するので、通信速度に影響することなく、システムの消費電力を調整する作業
や、低消費電力モードで特定のペリフェラルをアクティブ状態に維持する設定を設計段階で実現できます。

2

リセットの主な機能
外部コンポーネントを使用しない安全で柔軟なリセット管理• RCC で生成するさまざまなリセット：• パワーオンリセット（rst_por）• システムリセット（nreset）• ローカル･ペリフェラルのリセット（peripheral_rst）• Sub-GHz 無線のリセット（rfrst）• バックアップ･ドメインのリセット（rst_vsw）

3

外部コンポーネントを必要としない安全で柔軟なリセット管理により、アプリケーションのコストを削減できます。
RCC は、電源リセット、システムリセット、ローカル･ペリフェラルのリセット、Sub-GHz 無線のリセット、バックアップ･ドメインのリセットをはじめとするさまざまなリセットを管理します。

3システムリセットソース（NRST）
内部フィルタと電力監視があることにより外部コンポーネントは不要
システムリセットソースで外部コンポーネントをリセット可能• システムリセットソース：• パワーオンリセット（rst_por）• ブラウンアウト･リセット（SHUTDOWN 終了時にも使用）• NRST ピンのローレベル（外部リセット）• WWDG タイムアウトイベント• IWDG タイムアウトイベント• ソフトウェアで生成するリセット（SYSRESETREQ）• 低消費電力モード（STOP、STANDBY、SHUTDOWN）でのセキュリティリセット（rst_lpwr）• オプション･バイト･ローディング･リセット（rst_obl）• STANDBY の終了• 不正な Sub-GHz 無線コマンド
4

電源ブロック（PWR）に用意されている電圧監視機能、NRST パッドに組み込まれている
フィルタ、および RCC リセットコントローラにより、外部コンポーネントは、NRST ピンに接続する外付けコンデンサ 1 つのみに削減されています。
最初にここで取り上げるシステムリセットでは、リセットおよびクロックコントローラと電源コ
ントローラの特定のレジスタを除くすべてのレジスタがリセットされます。バックアップ･ドメイ
ンはリセットされません。
次の多くのソースでシステムリセットが生成されます。
•
VDD または VFBSMPS に発生した無効な電源電圧（詳細は PWR ブロックを参照）•
ブラウンアウト機能に起因して VDD に発生した無効な電圧。ブラウンアウト機能により、VDD 電圧の固有な閾値をユーザ側で選択できます（詳細は PWR ブロックを参照）。
•
STANDBY モードまたは SHUTDOWN モードの終了•
NRST パッドに発生したローレベル
独立型ウォッチドッグからのタイムアウト•
ウィンドウ型ウォッチドッグからのタイムアウト••
Cortex M4 コアまたは Cortex M0+ コアによって開始されたソフトウェア･リセットのリクエスト•
低消費電力モードセキュリティリセット（STOP、STANDBY、または SHUTDOWN
モードへの移行がオプションバイト設定により禁止されている場合に生成される）•オプション･バイトのロード•
Sub-GHz 無線への不正コマンドの送信
システムリセット（STANDBY リセットによって生成された場合を除く）によって NRST パッドがアサートされるので、システムリセットが発生時に外部コンポーネントのリセットが可能となることに注意してください。
リセットソース･フラグは、リセットおよびクロックコントローラのステータスレジスタにあります。

4リセットの対象範囲• パワーオン･リセットでは、VDD ドメインと VCORE ドメインにあるすべてのロジックがリセットされる。バックアップ･ドメインのロジックは影響を受けない• システムリセットでは、特定の RCC レジスタ、PWR レジスタ、およびバックアップ･ドメインを除くすべてのレジスタがリセットされる（STANDBY モードでは保持される）• バックアップ･ドメイン･リセットでは、バックアップ･ドメインの RTC レジスタ、バックアップ
レジスタ、および RCC_BDCR レジスタがリセットされる• ペリフェラルのリセットでは、関連するペリフェラルの RCC レジスタにある PERxRST
ビットがリセットされる• システムリセットソースを特定するためのフラグが RCC に用意されている

5

パワーオン･リセットは、対象範囲が最も広いリセットです。
パワーオン･リセットでは、VBAT から電源供給を受けているバッ
クアップ･ドメインのロジックを除き、VDD ドメインと VFBSMPS ド
メインに存在するすべてのロジックがリセットされます。このバッ
クアップ･ドメインには、RTC と外部低速オシレータがあります。
パワーオン･リセットではシステムリセットもトリガされるので、パワーオン･リセット中はNRST パッドがアサートされます。
システムリセットでは、RCC ブロックと PWR ブロックに存在する
一部のリソースを除き、VDD ドメインに存在するほとんどのロ
ジックがリセットされます。バックアップ･ドメインは、このリセットの影響を受けません。
バックアップ･ドメインのリセットでは、VBAT から電源供給を受けているバックアップ･ドメインがリセットされます。このバックアップ･ドメインには RTC と外部低速オシレータがあります。
また、ほとんどのペリフェラルには、個別のローカルリセット制御
ビットがあります。

5クロックの主な機能
低消費電力、精度、性能に応じたクロックソースの選択• 3 つの内部クロックソース• 16 MHz の高速内部 RC 発振回路（HSI16）• 100 kHz ~ 48 MHz の低消費電力内部 RC 発振回路（MSI）• 32 kHz の低速低消費電力内部 RC 発振回路（LSI）• 2 つの外部オシレータ• 32 MHz の高速外部オシレータ（HSE32）：クロック･セキュリティ･システムと、コンデンサの調整による RF 性能の最適化機能を装備• 32.768 kHz の低速外部オシレータ（LSE）：クロック･セキュリティ･システムを装備• 3 つの独立した出力を備えた 1 つの PLL
6

RCC によってきわめて多くのクロックソースが用意され、低消費電力、精度、性能の要件に応じて選択できます。
STM32WL5 マイクロコントローラには、次に示す 4 つの内部
RC 発振回路が組み込まれています。
• 16 MHz の高速内部 RC 発振回路（HSI16）• 100 kHz ~ 48 MHz の低消費電力内部 RC 発振回路（MSI）• 32 kHz の低速低消費電力内部 RC 発振回路（LSI）
STM32WL5 マイクロコントローラには次の 2 つのオシレータが組み込まれていて、外部のクリスタル、発振子、または温度補償
オシレータとともに使用します。
• 32 MHz の高速外部オシレータ（HSE32）：クロック･セキュリ
ティ･システムを装備• 32.768 kHz の低速外部オシレータ（LSE）：クロック･セキュリ
ティ･システムを装備
STM32WL5 マイクロコントローラには、フェーズ･ロック･ループも
1 つ組み込まれており、3 つの独立した出力からさまざまな周波数で CPU と各種ペリフェラルにクロックを供給します。

6

高速内部（HSI16）クロック
1% の精度、高速、迅速なウェイクアップ• 16 MHz、工場出荷時調整済み、ユーザによる調整可能• HSI16 の用途：
パラメータ

値

• STOP モードからのウェイクアップクロック• クロック･セキュリティ･システム（CSS）のバックアップクロック

精度（標準）

全温度範囲で±1%

起動時間

1.2 µs（最大）• STOP モード終了時に自動的にクロック開始可能

消費電流（標準）150 µA（標準）• クロック開始の遅延を避けるために STOP モード中もアクティブに維持可能• STANDBY モード終了時のシステムクロックとして使用• ペリフェラルでカーネル･クロックとして使用可能• MCO ビットと TIM17 ビットを使用してアプリケーションでHSE32 による調整が可能

7

高速内部オシレータ（HSI16）は、ウェイクアップ時間が短く、1%の精度で 16 MHz を提供する RC オシレータです。HSI16 は生産時の試験で調整済みですが、ユーザによる調整も可能です。
HSI16 は、システムの STOP モードからウェイクアップするときのクロックとして選択できるほか、クロック･セキュリティ･システム
で HSE32 の障害が検出された場合のバックアップクロックとしても選択できます。
STANDBY モードからウェイクアップするときは、HSI16 がシステ
ムクロックとして選択されます。
システムが STOP モードに移行しても HSI16 を電源オン状態に維持できます。これにより、ウェイクアップ時間を短縮できるほか、
STOP モードでペリフェラルのカーネル･クロックとして使用できます。
I2C、USART/LPUART、LPTIM などのペリフェラルでは、HSI16をカーネル･クロックとして選択できます。
HSI16 の周波数は、キャプチャモードで MCO ビットと TIM17ビットを使用することで、HSE32 を基準として調整できます。

7

低消費電力内部（MSI）クロック
低消費電力、迅速なウェイクアップ

パラメータ

値

精度（標準）

全温度範囲と電源電
圧範囲で±3%

起動時間

2.5 ~ 10 µs （標準）（選択した周波数に依存）

消費電流（標準）

0.6 ~ 155 µA （標準）（選択した周波数に依存）• 100 kHz ~ 48 MHz、工場出荷時調整済み、ユーザによる調整可能• MSI の用途：
• STOP モードからのウェイクアップクロック• クロック･セキュリティ･システム（CSS）のバックアップクロック• リセット後のシステムクロックとして使用• ハードウェア乱数発生器では MSI をカーネル･クロックとして選択可能• TIM17 ビットを使用してアプリケーションで HSE32 による調整が可能
8

低消費電力内部オシレータ（MSI）は、ウェイクアップ時間が短く、
100 kHz ~ 48 MHz の範囲の周波数を 3% の精度で提供する多周波数 RC オシレータです。MSI は生産時の試験で調整済みですが、ユーザによる調整も可能です。
システム STOP からウェイクアップするときのクロックとして MSIを選択できます。
リセット後は MSI がシステムクロックとして選択されます。
ハードウェア乱数発生器などのペリフェラルでは、MSI をカーネ
ル･クロックとして使用できます。
MSI の周波数は、キャプチャモードで TIM17 ビットを使用することで、HSE32 を基準として調整できます。

8

高速外部（HSE32）クロック
クリスタルによる安全なシステムクロック• 機能• 外部クリスタル発振子（32 MHz）

パラメータ

値

起動時間

選択したクリスタルに依存

消費電流（標準）

50 mA（標準）• コンデンサによるトリミング･バンク（外部コンデンサ不要）• 優れた RF 性能を実現する低ノイズ高性能クロック• TCXO をサポート• クロック･セキュリティ･システム（CSS）• HSE32 の障害を自動検出• ノンマスカブル割込みを生成•

TIM1/TIM16/TIM17 へのブレーク入力 => モータ制御などの重要なアプリ
ケーションを安全な状態に移行できる• バックアップクロックは HSI16 または MSI => クリスタルで障害が発生してもアプリケーションソフトウェアは停止しない• Sub-GHz 無線システムによる自動管理9

高速外部オシレータ（HSE32）は、クリスタルによる安全なシステ
ムクロックを提供します。
HSE32 は、32 MHz の外部クリスタルまたは温度補償オシレー
タをサポートします。
オンチップ･コンデンサ･トリミングにより、必要な数1/10ppmの周波数にチューニングすることが可能です。
クロック･セキュリティ･システムは、HSE32 の障害を自動検出できます。その場合は、モータ制御などの重要なアプリケーションを
安全な状態に移行するために、ノンマスカブル割込みが生成され、タイマにブレーク入力を送信できます。HSE32 の障害が検出された場合、システムクロックは HSI16 または MSI へ自動的に切り替わるので、クリスタルの障害があってもアプリケーション
ソフトウェアは停止しません。
Sub-GHz 無線がアクティブな場合、高速外部オシレータを必ず使用する必要があります。Sub-GHz 無線の動作と連携して高速
外部オシレータが自動的に管理されます。

9

高速外部（HSE32）TCXO クロック
温度補償クリスタルオシレータ• 外部 TCXO• 電源は PB0-VDDTCXO ピンから供給• HSEBYPPWR で選択

無線制御

OSC
制御
RDY
制御

10

外部温度補償クリスタルオシレータから高速外部（HSE）クロックを受け取ることができます。TCXO 動作モードを CPU で使用する場合は HSEBYPPWR ビットでその動作モードを選択し、SubGHz 無線で使用する場合は Sub-GHz 無線コマンド
Set_TcxoMode() で選択します。TCXO の電源は PB0VDDTCXO ピンから供給します。TCXO を有効および無効にする場合も、このピンを使用します。Sub-GHz 無線コマンド
set_TcxoMode() を使用して電源供給レベルを選択できます。

10

低速内部（LSI）クロック
32 kHz の内部クロック• 超低消費電力 LSI （SHUTDOWN モードと VBAT モードを除くすべてのモードで使用可能）• RTC、LCD、LPTIM、IWDG に使用可能（無線システムでは使用不可）• TIM16 ビットを使用してアプリケーションで HSE32 によって調整可能
LSI 32 kHz
初期精度±1.6%
精度（標準）

全温度範囲で±1.5%
全 VDD 範囲で+0.1/-0.2%

消費電流（標準）110 nA11

STM32WL5 マイクロコントローラには、32 kHz の超低消費電力
低速内部（LSI）オシレータが搭載されています。SHUTDOWN
モードと VBAT モードを除くすべてのモードで使用できます。
LSI を使用して、RTC、低消費電力タイマ、独立型ウォッチドッグにクロックを供給できます。
LSI の精度は、初期精度で±1.6%、全温度範囲で＋1.5%、全電圧範囲で＋0.2% です。LSI 消費電流は 110 nA （標準）です。
LSI の周波数は、キャプチャモードで TIM16 ビットを使用することで、HSE32 を基準として調整できます。

11

低速外部（LSE）クロック
低消費電力または高駆動に設定可能な 32.768 kHz のクロック
すべての電力モードと VBAT モードで使用可能•

LSE には外部水晶発振器または外部発振子と使用できるほか、バイパスモードでは外部クロックソースと使用可能•

LSE のクロック･セキュリティ･システム：VBAT モードを除くすべてのモードで使用可能•

Sub-GHz 無線システム、RTC、ハードウェア乱数発生器、LPTIM、USART、LPUART で LSE を使用可能
水晶の最大臨界相互コンダクタンス（µA/V）

消費電流（nA）

超低消費電力

0.5

250

中低駆動

0.75

315

中高駆動

1.7

500

高駆動

2.7

630

モード

12

32.768 kHz の低速外部オシレータ（LSE）は、外部水晶発振器
または外部発振子と使用できるほか、バイパスモードで外部ク
ロックソースと使用できます。オシレータの駆動機能はプログラ
ム可能です。消費電流がわずか 250 nA の超低消費電力モードから高駆動モードまで 4 つのモードで使用できます。
クロック･セキュリティ･システムは、LSE オシレータの障害を監視します。障害が発生した場合は、RTC クロックから、選択している LSI クロックにアプリケーションで切り替えることができます。
クロック･セキュリティ･システムは、VBAT モードを除くすべてのモードで動作します。また、リセット中も動作します。
LSE を使用して、Sub-GHz 無線システム、RTC、ハードウェア
乱数発生器、低消費電力タイマ、USART、および低消費電力
UART の各ペリフェラルにクロックを供給できます。

12

クロックのツリー構成
IWDG へ

RTC へ

CPU1、AHB1、 AHB2 へ
CPU1 FCLK へ• システムクロックを選択するための動的な切り替え機能• 選択できるシステムクロックソース：

CPU1 システム･タイマへ

APB1 へ

SYS
クロック･
ソース制御

APB1 TIMx へ

APB2 へAPB2 TIMx へ

CPU2 へ
CPU2 FCLK へ
CPU2 システム･タイマへ• HSI16• MSI（リセット後および STANDBY モード終了後のデフォルトのクロック）• HSE32• PLL（PLLRCLK）

AHB3、Flash、SRAM1、SRAM2 へ
APB2 へ
RF へ

ADC へ

USART1 へ
USART2 へ
LPUART1 へ

LPTIM1 へ
LPTIM2 へ
LPTIM3 へ• 動的な分周器により容易に周波数を調整可能• Cortex-M4 コア（HCLK1）

SPI2S2 へ

RNG へ

I2C1 へ
I2C2 へ
I2C3 へ• Cortex-M0+ 無線システム（HCLK2）• Flash メモリと SRAM メモリ（HCLK3）13

HSI16、MSI、HSE32、または PLL システムの PLLRCLK 出力からシステムクロックを取得できます。
システムクロックを選択するスイッチは動的なもので、アプリケー
ションの性能ニーズに応じてその場で周波数を変更することが可能です。
Cortex-M4 コア、Cortex-M0+ コア、Flash メモリは互いに独立したクロック分周器を備えているので、それぞれが異なる周波数で動作できます。Flash メモリに供給する HCLK3 は、Cortex-M4
コアと Cortex-M0+ コアに選択した最大周波数以上の周波数による動作とすることをお勧めします。
また、このスライドに示しているプリスケーラはすべて動的なので、オンザフライで変更でき、周波数スケーリング操作がきわめて簡潔になります。

13

クロック周波数と電圧スケーリング
低周波数における電力の最適化• 低周波数で動作する場合は動作範囲を変更することでさらに消費電力を節減• 範囲 1• Cortex-M4 最大周波数 = 48 MHz• Cortex-M0+ 最大周波数 = 48 MHz• PLL VCO 最大周波数 = 344 MHz• MSI 最大周波数 = 48 MHz• LPRUN• 範囲 2• Cortex-M4 最大周波数 = 16 MHz• Cortex-M0+ 最大周波数 = 16 MHz• PLL VCO 最大周波数 = 128 MHz• MSI 最大周波数 = 24 MHz• Cortex-M4 最大周波数 = 2 MHz• Cortex-M0+ 最大周波数 = 2 MHz• PLL は無効
• MSI 最大周波数 = 2 MHz
14低周波数で消費電力を最適化するには、動作範囲を変更するか、
低消費電力 RUN モードを選択します。
範囲 1 では、Cortex-M4 のクロック（HCLK1）、Cortex-M0+ のクロック（HCLK2）、および共有バスのクロック（HCLK3）が 48
MHz を超えないようにする必要があります。
範囲 2 では、Cortex-M4 のクロック（HCLK1）、Cortex-M0+ のクロック（HCLK2）、および共有バスのクロック（HCLK3）が 16
MHz を超えないようにする必要があります。
低消費電力 RUN モードでは、Cortex-M4 のクロック（HCLK1）、
Cortex-M0+ のクロック（HCLK2）、および共有バスのクロック（HCLK3）が 2 MHz を超えないようにする必要があります。

14

PLL
入力範囲が広く、高精度な出力周波数• 整数 PLL x 1• PLL• システムクロック専用出力 x 1• SPI2S、ハードウェア乱数発生器用出力オプ
ション x 1• ADC 用出力オプション x 1• PLL クロック：• プリ分周器付の単一の固有なソース HSE32、
HSI16、または MSI• 広い入力周波数範囲• 2.66 ~ 16 MHz• 広い VCO 出力周波数範囲• 範囲 2 で 96 ~ 128 MHz• 範囲 1 で 96 ~ 344 MHz• 3 つの出力• PLL（R & Q）
• ポスト分周器の範囲 2 ~ 8• PLL （P）
• ポスト分周器の範囲 2 ~ 32

15

STM32WL5 マイクロコントローラに搭載されている PLL により、システムクロックやペリフェラルのカーネル･クロックに必要な周波数を柔軟に生成できます。
PLL は、2.66 ~ 16 MHz の広い入力周波数範囲に対応します。
PLL は、プリ分周可能な HSE32、HSI16、または MSI の各ク
ロックソースと組み合わせて使用できます。
PLL の VCO は、範囲 1 で 96 MHz ~ 344 MHz、範囲 2 で 96
MHz ~ 128 MHz の広い周波数範囲に対応しています。
PLL は、その VCO 周波数からポスト分周器によって得られる 3
種類の出力クロック（/P、/Q、/R）を提供します。
PLL を使用して、システムクロックが生成され、また SPI2S、ハードウェア乱数発生器、ADC の各ペリフェラルのカーネル･ク
ロックが生成されます。

15

クロック出力• 2 つのクロック出力：• MCO：RUN モードと STOP モードで使用可能• HSI16、MSI、HSE32、PLLSYSCLK、SYSCLK、LSI、または LSE• LSCO：RUN モード、STOP モード、および STANDBY モードで使用可能• LSI または LSE
HSI16
MSI
HSE32
PLLSYSCLKSYSCLKLSI
MCO（PA8）

LSCO（PA2）
LSE

LSI
LSE
16

RUN モードと STOP モードでは GPIO ピン PA8 でマルチクロッ
ク出力が可能で、さまざまな高速クロックと低速クロックを選択できます。
RUN モード、STOP モード、および STANDBY モードで GPIO
ピン PA2 で低速クロック出力が可能で、さまざまな低速クロックを選択できます。

16

ペリフェラルのカーネル･クロック
バスクロックから独立したインタフェースクロックを持つペリフェラル• ペリフェラルによってはインタフェースに独立したカーネル･クロックを備える• Sub-GHz 無線、ハードウェア乱数発生器、SPI2S、ADC、I2C、USART、LPUART、および LPTIM• バスクロックを使用してペリフェラルのレジスタにアクセス可能• カーネル･クロックを使用してインタフェース機能を処理• ペリフェラルのバスクロックとカーネルクロックはどちらも、RCC のペリフェラルクロック･イネーブ
ル･ビットである xxxEN と xxxSMEN でゲート処理される
xxxEN

xxxSMEN

0

x

停止

1

0

RUN モードでアクティブ、SLEEP モードと STOP モードで停止

1

1

バスクロック

カーネル･クロック

RUN モードと SLEEP モードでアクティブ、
STOP モードで停止

RUN モード、SLEEP モード、STOP モードでアクティブ

• ペリフェラルによっては STOP モードでもカーネル･クロックで動作可能• Sub-GHz 無線、I2C、USART、LPUART、および LPTIM• カーネル･クロックで HSI16、LSI、または LSE を選択している場合

17

ペリフェラルの中には、プロセッサのバスインタフェースと特定のペリ
フェラルインタフェース機能で別々のクロックを備えているものがあります。
バスクロックはペリフェラルのレジスタへのアクセスに使用し、カーネル･クロックはペリフェラルインタフェースの特定の機能に使用します。
バスクロックとカーネル･クロックが分離されているので、ペリフェラルの動作に影響することなく、相互接続とプロセッサの動作周波数をア
プリケーションから変更できます。たとえば、USART のカーネル･ク
ロックを使用してシリアルインタフェース通信のボーレートを生成し、バスクロックを使用してレジスタインタフェース通信のボーレートを生成します。
ペリフェラルのバスクロックとカーネル･クロックの有効化は、リセット
およびクロックコントローラのペリフェラルイネーブル･ビットと SLEEP
モードイネーブル･ビットで制御します。両方のビットを 1 に設定すると、ペリフェラルは SLEEP モードで動作してデータを転送できます。
カーネル･クロックとして HSI16、LSI、または LSE を選択すると、ペリフェラルが動作状態になってシステムを STOP モードからウェイク
アップできます。STOP モードのペリフェラルでは、バスマトリックス上
でデータをメモリなどに転送できません。詳細については、各ペリフェ
ラルに関するトレーニングのスライドを参照してください。

17

クロックのゲート処理（1）• CPU、バスマトリックス、およびペリフェラルのクロックは、次の条件に従ってゲート処理される• CPU の動作モード（CRun、CSleep、CStop）• CPU ごとのペリフェラルの割当て• CPU ごとの、ペリフェラルの SLEEP モード･イネーブル• RCC_busENR.xxxEN ビットと RCC_C2busENR.xxxEN ビット：• ペリフェラルを CPU に割り当てるために使用• ペリフェラルの動作モードは、その割当て元である CPU のモードに従う• ペリフェラルは両方の CPU に割り当てることができる• RCC_bus_SMENR.xxxEN ビットと RCC_C2busSMENR.xxxEN ビット：• CPU が CSleep モードの場合にペリフェラルの動作を維持するために使用
18

CPU、バスマトリックス、ペリフェラルのクロックは、CPU の動作
モード、ペリフェラル割当て、およびペリフェラルの SLEEP モー
ドイネーブル･ビットに従ってゲート処理されます。CPU に属する
リセットおよびクロックコントローラのペリフェラルイネーブル･ビットがセットされている場合、ペリフェラルはその CPU に割り当てられます。CPU が CRun モードの場合は、ペリフェラルとそれに関連するバスマトリックスにクロックが供給されます。ペリフェラ
ルにアクセスするには、CPU からペリフェラルをイネーブルにしておく必要があります。両方の CPU が特定のペリフェラルにアクセスする必要がある場合、それぞれの CPU がそのリセットおよびクロックコントローラのペリフェラルイネーブル･ビットをイネー
ブルにする必要があります。

18

クロックのゲート処理（2）• CPU• CPU が CRun モードの場合はクロックが供給される• CPU が CSleep モードまたは CStop モードの場合はクロック供給が停止• ペリフェラル
• 割当て元の CPU が CRun モードの場合はクロックが供給される• 割当て元の CPU が CSleep モードであるが、その CPU が SLEEP モードでも動作できるようになっていればクロックが供給される• CPU によって割り当てられていない場合または割当て元の CPU が CStop モードの場合はクロック供給が停止• 割当て元の CPU が CSleep モードであり、その CPU が SLEEP モードで動作できるようになっていない場合はクロック供給が停止• バスマトリックス• バスマトリックス上の CPU またはペリフェラルがクロック供給を受けている場合はクロックが供給される• バスマトリックス上の CPU およびすべてのペリフェラルが停止している場合はクロック供給が停止
19

CPU は、CRun モードの場合のみクロック供給を受けます。
CPU が CRun モードである場合、または CPU が CSleep モードで、CPU に割り当てられているペリフェラルが SLEEP モード
でも動作できるようになっている場合は、そのペリフェラルにのみ
クロックが供給されます。
バスマトリックス上の CPU またはペリフェラルにクロックが供給されている場合、そのバスマトリックスにクロックが供給されます。

19

ペリフェラルの割当て最適化した低消費電力クロック供給
CPU1
HCLK1 バスマトリックス

CPU1• システムペリフェラル：

CPU2

PER1.1• PWR、RCC、EXTI、FLASH、
SRAM1、SRAM2• 両方の CPU でアクティブ

CPU2

PER1.2

PER1.3Sub-GHz無線

PER1.N

Sub-GHz
SPI

AES

RNG

PKA

HSEM

IPCC

GTZC

FLASH-IF

FLASH

SRAM1

SRAM2

EXTI

RCC

PWR

HCLK3 バスマトリックス• 割り当てられた
ペリフェラル：

CPU1

CPU2

• Flash インタフェース、IPCC、
PKA、RNG、AES2、
SUBGHZSPI、PERn.m• CPU1 および CPU2 への割当てが必要• 割当てを解除された
ペリフェラル• CPU、バスマトリックス、ペリフェラ
ルのクロックのうち必要なクロック
のみがアクティブ共有

20

リセットおよびクロックコントローラには 2 組のレジスタがあるので、プロセッサ
単位でペリフェラルを割り当てる（イネーブルにする）ことができます。これは重要な点です。ペリフェラルとそれに関連するバスマトリックスにクロックが供給されるのは、このペリフェラルの割当て元 CPU が CRun モードである場合、またはその CPU が CSleep モードであり、このペリフェラルのペリフェラル SLEEP
モードイネーブル･ビットもセットされている場合のみです。
ペリフェラルの動作は、その機能に応じて異なります。
システムの動作に必要なペリフェラルのイネーブル･ビットはなく、両方の CPUに常時割り当てられています。
それ以外のすべてのペリフェラルは、どちらの CPU にも割り当てることができます。
ペリフェラルにアクセスするには、それを CPU に割り当てておく必要があります。
両方の CPU で共有するペリフェラルは、両方のプロセッサに割り当てる必要があります。ペリフェラルへのアクセスの競合は、アプリケーション側で回避する必要があります。共有ペリフェラルへのアクセスの管理に効果的なハードウェアセ
マフォ IP が存在します。
ペリフェラルの割当てにより、CPU サブシステムを動的に設定し、CPU が使用するペリフェラルにのみクロックが供給されるようにすることができます。CPU とその割当てペリフェラル、および関連するバスマトリックスは、リセットおよびク
ロックコントローラによって CPU サブシステムと見なされます。簡単な例として、
CPU1 が RUN モードでアクティブな場合、システムペリフェラル、CPU1 のペリ
フェラル、および割り当て済みのあらゆるペリフェラルも同様に動作します。共有バスマトリックスと CPU1 のバスマトリックスの動作も同様です。
スライドの例では、PER1.1 は CPU1 によって割り当てられています。PER1.2と Sub-GHz 無線は CPU2 によって割り当てられています。PER1.3 は両方のCPU によって割り当てられています。

20

動作状態
• サブシステムの状態• CRun モードまたは CSleep モードでは、そのバスマトリックスとペリフェラルにクロックが供給される• CStop モードでは、そのバスマトリックスとペリフェラルのバスクロックが停止する• システムの状態• 少なくとも 1 つのサブシステムが CRun モードまたはCSleep モードの場合は RUN モード• すべてのサブシステムが CStop モードの場合、STOP モード、STANDBY モード、または
SHUTDOWN モード
システムの状態
RUN*

Cortex-M4 サブシステム（CPU1）

Cortex-M0+ サブシステム（CPU2）

CRun/CSleep/CStop

CRun/CSleep/CStop

CStop

CStop

STOP
STANDBY
SHUTDOWN* 少なくとも 1 つのサブシステムが CRun モードまたは CSleep モードであるものとする

21

スライドの表では、システムの状態とサブシステムの状態を簡単にまとめています。
• サブシステムが CRun モードまたは CSleep モードの場合、そのバスマトリックスにクロックが供給されます。
• サブシステムが CStop モードの場合、そのバスマトリックスのクロックが停止します。
• すべてのサブシステムが CStop モードの場合にのみ、シス
テムは STOP モード、STANDBY モード、または
SHUTDOWN モードに移行します。
システムの状態の詳細については、電源コントローラ（PWR）に関するトレーニングのスライドを参照してください。

21

Sub-GHz 無線のシステムクロック
自律的無線動作• 無線システムは、CPU の介在を必要とせずに自律的に動作できる• HSE32 クロックソースを直接管理• 無線システムに必要なクロックは自動的に有効になる• 無線の内部と外部のシステムクロック

22

無線システムは自律的に動作でき、STOP モードおよび
STANDBY モードから CPU システムをウェイクアップできます。
無線システムのクロックは、無線スタックで管理されますが、動作モードによっては無線システム自体で管理されます。HSE32 ク
ロックは無線の送受信通信に使用されます。

22

ウェイクアップとスタートアップ• システムのパワーオンの場合およびリセット後のシステム起動の場合：• システムクロックとして MSI が選択される。他のクロックと PLL は無効になる• CPU とシステムが STOP モードからウェイクアップした場合：• システムクロックとしてHSI16またはMSIを選択できる（STOPWUCK）。他のクロックとPLLは無効になる。
• HSI16は、ペリフェラルのカーネル･クロックとして使用できるように、STOP中もアクティブな状態に維持できる（HSIKERON）• Sub-GHz 無線は、内部無線クロックまたは HSE32 を使用して、STOP モード中もアクティブな状態に維持できる• CPU とシステムが STANDBY モードからウェイクアップした場合：• システムクロックとして MSI が選択される。他のクロックと PLL は無効になる。
• Sub-GHz無線は、内部無線クロックまたは HSE32を使用して、STANDBY モード中もアクティブな状態に維持できる• システムが RUN モードの状態で CPU が CStop モードからウェイクアップした場合：• CPU のクロックは CStop モードに移行した時点のクロックと同じ
23

システムが再起動するとき、クロックシステムはリセットされ、システムの起動に使用する高速クロックを除き、すべての高速クロックと PLL は無効になります。
LSI と LSE は、元々有効であった場合は動作を継続します。
パワーオン後およびシステムリセット後は、システムクロックとして MSI クロックが選択されます。
STOP モードからウェイクアップする場合は、リセットおよびクロックコントローラ･レ
ジスタの STOPWUCK ビットの設定により、MSI または HSI16 をシステムクロッ
クとして選択できます。STOP モードでは、HSI16 クロックをアクティブな状態に維持して、HSI16 クロックをペリフェラルのカーネル･クロックとして使用できます。
STOP モードでは、Sub-GHz 無線の内部クロックまたは HSE32 を使用して、Sub-GHz 無線をアクティブな状態に維持できます。
STANDBY モードからウェイクアップした場合、システムクロックとして MSI クロックが有効になります。CPU が STANDBY モードでも、Sub-GHz 無線の内部クロッ
クまたは HSE32 を使用して、Sub-GHz 無線をアクティブな状態に維持できます。
システムが RUN モードに維持されている状態で CPU が CStop モードからウェイ
クアップする場合は、クロック設定が保持されているので、CPU は CStop モードに移行したときと同じクロックを使用してウェイクアップします。
電源コントローラの STOP フラグと STANDBY フラグから、システムのウェイク
アップ･モードを読み出すことができます。詳細については、電源コントローラに関するトレーニングのスライドを参照してください。
CPU の CSleep モードがクロック設定に影響することはなく、CPU サブシステムのクロックに対するゲート処理のみが変化します。

23

割込み
割込みイベントタイプ

説明

HSE32 のクロック･セキュリティ･システム

NMI

HSE32 オシレータで障害が検出された場合にセット

LSE のクロック･セキュリティ･システム

IRQ

LSE オシレータで障害が検出された場合にセット

PLL レディ割込みフラグ

IRQ

PLL ロックによるクロックレディ

HSE32 レディIRQ

HSE32 オシレータによるクロックレディ

HSI16 レディIRQ

HSI16 オシレータによるクロックレディ

MSI レディIRQ

MSI オシレータによるクロックレディ

LSE レディIRQ

LSE オシレータによるクロックレディ

LSI レディIRQ

LSI オシレータによるクロックレディ

24

このスライドでは、リセットおよびクロックコントローラの割込みの一覧を示しています。HSE32 と LSE のクロック･セキュリティ･シ
ステム、PLL、および 5 つのオシレータすべてのレディ信号によって割込みが生成されます。

24

関連ペリフェラル• 必要に応じて、次のペリフェラルに関連するトレーニングを参照：• 電源制御（PWR）• 非同期割込みとイベントコントローラ（EXTI）

25

このトレーニングのほか、電源制御と拡張割込みコントローラに関するトレーニングが有用なことがあります。

25