STM32C0シリーズリセットおよびクロックコントローラ

STM32C0リセットおよびクロックコントローラのプレゼンテーションへようこそ。

1

概要• STM32C0のリセットおよびクロック･コントローラ
は、システムとペリフェラルのクロックを管理• 2つの内部オシレータ• 2つの外部オシレータ（クリスタルまたは発振子）（小型パッケージで共有ピンを使用）• いくつかのペリフェラルは独立したクロックを備える

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

消費電力と精度の要件を満たすクロッ
クソース選択の柔軟性が高い•

多数のペリフェラルクロックが独立して動作するので、通信ボーレートに影響を与えることなく消費電力を調整することや、低消費電力モードで特定のペリフェラルをアクティブに維持することができる•

安全で柔軟なリセット管理• RCCはさまざまなシステムおよびペリフェラルのリセットを管理

2

STM32C0のリセットおよびクロックコントローラは、システムとペリフェラルのクロックを管理します。
STM32C0デバイスには、2つの内部オシレータと、外部クリスタルまたは発振子用の2つのオシレータが組み込まれています。
STM32C0にはPLLが存在しないことに注意してください。
多くのペリフェラルは、システムクロックから独立した固有のクロックを備えています。
またRCCは、デバイスに存在するさまざまなリセットを管理します。
STM32C0 RCCはクロックソースを柔軟に選択できるので、システム設計者は、消費電力と精度の要件を両方とも満たすことができます。多数のペリフェラルクロックが独立して動作するので、設計者は、通信ボーレートに影響を与えることなくシステムの消費電力を調整することや、低消費電力モードで特定のペリフェラルをアクティブに維持することができます。最後に、RCCは安全で柔軟なリセット管理を提供します。

2

リセットの主な機能
外部コンポーネントを使用しない安全で柔軟なリセット管理• 次の3種類のリセットを管理:• システムリセット• 電源リセット• RTCドメインリセット• ペリフェラルには個別のリセット制御ビットがある3

外部コンポーネントを使用しない安全で柔軟なリセット管理により、アプリケーションのコストが削減されます。
RCCは、システムリセット、電源リセット、およびバックアップドメインリセットの3種類のリセットを管理します。
ペリフェラルには、個別のリセット制御ビットがあります。

3

リセット･ソース• システム･リセット• RCC制御/ステータス･レジスタ2（RCC_CSR2）のリセットフラグとRTCドメインのレジスタを除くすべてのレジスタをリセット• リセット･ソース• NRSTピンのロー･レベル（外部リセット）• WWDGイベント• IWDGイベント• ソフトウェア･リセット･リクエスト（NVIC経由）• 低消費電力モード･セキュリティ･リセット• オプションバイト･ローダ･リセット• パワーオン･リセット• リセット･ソース･フラグはRCC_CSRレジスタにある
4

最初のタイプのリセットはシステムリセットでは、RCC制御およびステータスレジスタ2に存在するリセットフラグを除くすべてのレジスタをリセットします。RTCドメインもリセットされません。
システムリセットソースは次のとおりです。
• 外部リセット（NRSTピンのローレベルによって生成される）、• ウィンドウ型ウォッチドッグイベント、• 独立型ウォッチドッグイベント、• ソフトウェアリセットリクエスト、• 低消費電力モードセキュリティリセット（STOP、STANDBY、またはSHUTDOWNモードへの移行がオプションバイト設定により禁止されている場合に生成される）、• オプションバイトローダリセット、• およびブラウンアウトまたはパワーオンリセット
リセットソースフラグは、RCC制御およびステータスレジスタにあります。

4

リセット･ソース• PF2-NRST• リセット回路の設定は、オプションバイトNRST_MODE[1:0]およびIRHENを介して行われる
モード

設定NRST_MODE

IRHEN

動作

0

内部リセットの場合、NRSTピンで20µsの出力パルスが生成される

1

NRST電圧がVIL閾値（～0.3VDD）に達するまで出力パルスが維持される
この機能により、ラインが重大な容量性負荷に直面している場合に、外部コンポーネントによる内部リセットソースの検出が可能になる

01x

内部リセットはパーツの外部に伝播されない

10x

Fポートのパット2（PF2）のみ、リセットピンなし

入力／出力（レガシー）

11

入力のみ
GPIO

5

オプションバイトの次の2つのフィールドは、NRSTピンを設定するために使用されます。
• NRST_MODEは、NRSTピンの動作モード（入力／出力リセット、入力のみリセットまたはGPIO）を選択します。
• IRHENはInternal Reset Holder Enable（内部リセットホルダイネーブル）の略です。
電源リセットまたはSHUTDOWNモードからのウェイクアップ時、NRSTピンはリセット入力/出力として設定され、オプションバイトがロードされて予定されるモードに再設定されるまで、システムによってローに駆動されます。

5

リセット･ソース
内部フィルタと電力監視により外部コンポーネントは不要
システムリセットソースは外部コンポーネントをリセット可能
VDD
RPU
外部リセット

NRST

内部リセット中はリセットプルアップが無効
システムリセットフィルタ

パルスジェネレータ（最小20µs）

IRHEN

内部リセット

D

Q

CLEAR

6

これは、システムリセットの簡略化されたブロック図です。すべての内部リセットソースはNRSTピンでリセット信号を発生します。このピンを使用して、アプリケーションボードの他のコンポーネントをリセットできます。また、内部グリッチフィルタと、VDDが選択した閾値を下回った場合にアプリケーションのリセットを保証する安全な電力監視機能があるため、外部リセット回路は必要ありません。NRSTピンの内部プルアップ（リセッ
ト信号がローに駆動されていないときにハイレベルを維持するために必要）は、内部リセットが駆動されると非アクティブになります。これにより、リセット時の消費電力が削減されます。さらに、デバッグピンと一部のテストピンを除き、すべてのI/Oピンは、リセット中およびリセット後にアナログモードになります。これにより、リセット時およびソフトウェアの初期化前にI/Oがフローティング状態のときにシュミットトリガを通じて消費電力が削減されます。

6

リセット･ソース
外部コンポーネントが不要。ライン上に外部デバイスに使用される強力なキャパシタンスが存在する場合、リセットホルダを使用できる
VDD

VNRST

RPU
NRST

VIL

内部リセットアクティブ
7

リセットホルダの目的は、この信号の電圧レベルがVILを下回るまで、ローに駆動されたNRSTを維持することです。これは、NRSTラインに重要な容量性負荷がある場合に役立ちます。

7

リセット･ソース• 電源リセット• ソース• ブラウンアウト･リセット（BOR）またはパワーオン･リセット（POR）• すべてのレジスタをリセット• STANDBYの終了• VCOREドメインのすべてのレジスタをリセット• VCOREドメイン外のレジスタは影響を受けません（バックアップ･レジスタ、WKUP、IWDG、およびSTANDBY/SHUTDOWNモード制御）• シャットダウンを終了するとBORリセットが生成され、すべてのレジスタがリセット• RTCドメイン･リセット• 2つの具体的なリセット• RTCRST制御ビットによるソフトウェア･リセット• VDDパワーオン
8

リセットの2番目のタイプは、電源リセットです。
ブラウンアウトリセット（BOR）は、VCORE電源ドメインのすべてのレジスタをリセットします。
STANDBYモードを終了すると、レギュレータから電力が供給されるすべてのレジスタがリセットされます。
SHUTDOWNモードが終了すると、ブラウンアウトリセットが生成されます。
3番目のタイプのリセットはRTCドメインリセットで、LSEオシレータ、RTC、およびRCC制御およびステータスレジスタ1に影響します。
バックアップレジスタはVCOREドメインの外部にあることに注意してください。

8

クロックの主な機能
低消費電力、精度、および性能に応じたクロックソースの選択• 2つの内部クロックソース• 高速内部48MHz RCオシレータ（HSI48）• 低速内部32kHz RCオシレータ（LSI）• 2つの外部オシレータ• 高速外部4～48MHzオシレータ（HSE）：クロック・セキュリティ・システムを装備• 低速外部32.768kHzオシレータ（LSE）：クロック・セキュリティ・システムを装備• 1つのオーディオクロックソースI2S_CKINピン• I2S1ペリフェラル用の直接クロック入力
9

RCCにより非常に多くのクロックソースを選択できるようになり、低消費電力、精度、および性能の要件に応じた選択が可能です。
STM32C0デバイスには2つの内部クロックソースが組み込まれています。1つは高速内部48MHz RCオシレータ（HSI48）、もう1つは低速内部32kHz RCオシレータ（LSI）です。
STM32C0デバイスには、外部のクリスタルまたは発振子とともに使用する2つのオシレータが組み込まれています。1つはクロック・セキュリティ・システムを装備した高速外部4～48MHzオシレータ（HSE）、もう1つはクロック・セキュリティ・システムを装備した低速外部32.768KHzオシレータ（LSE）です。
I2S_CKINピンは、I2S1ペリフェラルの可能なクロックソースの1つです。
STM32C0デバイスにはPLLが組み込まれていませんが、HSI48はデバイスに最大周波数を提供し、クロック分周器によって下げることができます。

9シンプルなクロックツリー
HSE
HSI48

HSIDIV÷1…128
CPU、DMA、メモリ、AHBペリフェラルへ

SYSCLK

AHBプリスケーラ÷1…512HCLK

APBプリスケーラ
1…16

PCLK

APB
ペリフェラルへ

LSE
LSI

LSE
スタンバイとシャットダウンを除くすべての電力モードで利用可能

÷3
2

LSI
SHUTDOWNを除くすべてのモードで利用可能

RTCへ
10

システムクロックは、高速内部48MHz RCオシレータ（HSI48）
または高速外部4～48MHzオシレータHSE）から生成できます。
HCLKと呼ばれるAHBクロックは、プログラム可能なプリスケー
ラでシステムクロックを分周することによって取得できます。
PCLKと呼ばれるAPBクロックはプログラム可能なプリスケーラ
でAHBクロックを分周することによって生成されます。
RTCクロックは、低速外部32.768KHzオシレータ（LSE）、低速内部32KHz RCオシレータ（LSI）、または32分周されたHSEによって生成されます。
LSEは、SHUTDOWNを除くすべての低電力モードで有効なままにすることができます。
LSIは、SHUTDOWNとSTANDBYを除くすべてのモードで有効なままにすることができます。
各発振器は、使用されていないときは個別にオンまたはオフに切り替えることができ、消費電力を最適化できます。

10

高速内部（HSI48）クロック
1%の精度と高速なウェイクアップ時間• HSI48 48MHz、工場出荷時調整済み、ユーザによる調整可能• HSIDIV後のHSI48• STOPモードからのウェイクアップクロック• クロック・セキュリティ・システム（CSS）のバックアップクロック• I2C1、U(S)ART1-2は、STOPモード中にHSI48を有効にして、STOPシーケンスからのウェイクアップを検出できる• HSI48は、ペリフェラルウェイクアップシーケンス検出を除き、STOPモード中はオフのまま

11

高速内部オシレータは48MHz RCオシレータで、1%の精度と高速ウェイクアップ時間を実現します。
HSI48は生産テスト中にトリミングされ、ユーザがトリミングすることもできます。
HSI48は、STOPモードからのウェイクアップ時のクロックとして、またHSE障害がクロックセキュリティシステムによって検出された場合のバックアップクロックとして選択できます。
HSI48は、システムクロックとして使用されていないときにペリフェラルで使用できるようにするために、STOPモードを終了するときに自動的にウェイクアップできます。
USART1、USART2、およびI2C1ペリフェラルは、HSI48がこれらのペリフェラルの1つのクロックソースとして選択されている場合、MCUがSTOPモードであってもHSI48発振器をイネーブルできます。

11

HSI48の特性
HSI48（48MHz）
精度（標準）

0 – 85°C+/- 1 %

-40 – 125°C- 2.5 / + 2 %

消費電流（標準）260 µA

起動時間（標準）1.4 µs12

この表は、HSI48クロックの特性を示しています。
HSI48の精度を向上させるには、TIM14、TIM16、およびTIM17チャネル1入力キャプチャに基づいてトリミング手順を実装します。
HSE/32やLSEなどのクロックリファレンスは、HSI48によってクロックされるカウンタの現在値を高精度にキャプチャするために使用されます。
HSIクロックの起動時間は1.4μs（代表値）ですが、HSEクロックの起動時間は通2μs（代表値）です。

12

高速外部（HSE）クロック
安全なクリスタルシステムクロック• HSE 4～48MHz• 最大48MHzの外部ソース（バイパス･モード）• 外部クリスタル／セラミック発振子（4～48MHz）• クロック・セキュリティ・システム（CSS）• HSEの障害を自動的に検出しHSI48への切り替わる（HSIDIV後）• ノンマスカブル割込み生成• TIM1/TIM16/TIM17へのブレーク入力• モータ制御などの重要なアプリケーションを安全な状態に移行できる

13

高速外部オシレータは、安全なクリスタルシステムクロックを提供します。
HSEは、4～48MHzの外部クリスタルまたはセラミック発振子をサポートし、またバイパスモードで外部ソースをサポートします。
クロック・セキュリティ・システムは、HSEの障害を自動検出できます。ノンマスカブル割込みが生成された場合、モータ制御などの重要なアプリケーションを安全な状態に移行するために、ブレーク入力をタイマに送信できます。
HSEの故障が検出されると、システムクロックは自動的に内部オシレータHSI48に切り替えられるため、水晶故障の場合でもアプリケーションソフトウェアは停止しません。

13

高速外部（HSE）クロック• オシレータで使用するHSEシステムで、新しいオルタネート機能が使用可能• バイパス･モードで外部クロックを使用する場合、アプリケーションを外部クロックのイネーブル信号として使用するために、新しいOSC_EN機能が使用可能。低消費電力モードに移行するときに、外部クロックをオフにするために使用される

OSC_IN

外部ソース

OSC_OUTGPIO
OSC_EN
オルタネート機能

14

外部ソースモード（HSEバイパスモードとも呼ばれる）では、外部クロックソースが必要です。最大48MHzまでの周波数を使用できます。
外部クロック信号（矩形波、正弦波、または三角波）で、OSC_INピンを駆動する必要があります。
OSC_OUTピンはGPIOとして使用したり、OSC_ENオルタネート機能として設定して、デバイスが低消費電力モードに移行するときに外部クロックシンセサイザの停止を有効にする信号を提供することができます。

14

低速内部（LSI）クロック
超低消費電力内部32KHzオシレータ
SHUTDOWNモードを除くすべてのモードで使用可能

LSI 32KHz
精度（標準）

オーバー温度およびVDD +/-7%消費電流（標準）110 nA15

STM32C0デバイスには超低消費電力32KHz RCオシレータを内蔵しており、SHUTDOWNを除くすべてのモードで使用できます。
このLSIは、RTCおよび独立したウォッチドッグのクロックに使用できます。
LSIの精度は温度に対してプラスまたはマイナス1.5%、電圧に対してプラスまたはマイナス0.1マイナス0.2%です。
LSIの消費電力は110nA（標準）です。
独立ウォッチドッグ（IWDG）がハードウェアオプションまたはソフトウェアアクセスによって開始される場合、LSIオシレータは強制的にオンになり、無効にすることはできません。

15

低速外部（LSE）クロックm低消費電力または高駆動に設定可能な32.768KHz
RUN、SLEEP、STOPモードで使用可能• LSEは外部水晶発振器／発振子またはバイパスモードの外部クロックソースで使用可能• LSEのクロック・セキュリティ・システム（CSS）：STANDBYとSHUTDOWNを除くすべてのモードで利用可能• リセット時も動作• LSEはSYSCLKのソースとして使用可能
最大限界
水晶 gm（µA/V）

消費電流（nA）

OSC32_IN

中高駆動

1.7

50032.768KHz
発振子

高駆動

2.7630モード

プログラム可能なアンプを駆動fLSE

OSC32_OUT
STM32C01632.768KHzの低速外部オシレータは、外部水晶または発振子、またはバイパスモードの外部クロックソースとしても使用できます。
バイパスモードでは、外部クロックソースを提供する必要があります。最大1MHzの周波数を持つことができます。
オシレータの駆動強度はプログラム可能です。
これは、RCC制御/ステータスレジスタ1（RCC_CSR1）のLSEDRVビットを使用して実行時に変更でき、一方では堅牢性と短い起動時間、もう一方では低消費電力の間で最良の妥協点を得ることができます。
クロックセキュリティシステムは、LSE発振器の障害を監視します。
障害が発生した場合、アプリケーションはRTCクロックをLSIに切り替えることができ、NMIが自動的に生成されます。
CSSは、SHUTDOWNを除くすべてのモードで機能します。
リセット中でも機能します。
LSEはSYSCLKのソースクロックとして使用できます。

16

HSE / LSE 共通ピン• HSE発振器ピンの再マップは、
HSE_NOT_REMAPPEDオプションビッ
トを通じて制御可能• HSE発振器を接続できるのは、

OSC_IN（PF0）OSC_OUT（PF1）HSE• OSC_IN、OSC_OUTのいずれかの専用ピン• またはLSEオシレータOSCX_INおよびOSCX_OUTと共有されるピンLSE

OSCX_IN（PC14）
OSCX_OUT（PC15）

17

STM32C0では、高速発振器と低速発振器の間で共有する発振器ピンが導入されています。
この再マッピングオプションは、特にピン数の少ないデバイスで役立つ高いレベルの柔軟性を提供します。
したがって、PC14-OSCX_IN/PC15-OSCX_OUTはLSEとHSEの両方で共有されるため、2つのクロックソースを同時に使用することはできません。

17

システムクロック• LSI、LSE、HSI48（プリスケール済みの可能性あり）、およびHSEクロック･ソースから選択• システムクロック、AHBおよびAPBの最大周波数：48MHz• 単一のパワーレンジ
SYSCLK

HSI48

HSE

48MHz

48MHz

48MHz

18

システムクロックはLSI、LSE、HSI48、HSEクロックソースの中から選択します。
最大システムクロック周波数は48MHzです。
APBバスの周波数は最大48MHzです。
システムリセット時、HSI48オシレータから派生したHSISYSクロックがシステムクロックとして選択されます。
クロックソースがシステムクロックとして使用されている場合、それを停止することはできません。

18クロック信号出力
HSI48
HSE
LSI

÷1, 2, 4, 8, ..
128

マイクロコントローラクロック出力（MCOとMCO2）LSESYSCLK

LSI
LSE

低速クロック出力（LSCO）は、STANDBY、SHUTDOWNモードではなく、STOP時に使用可能

19

さまざまなクロックをI/Oパッドに出力できます。
MCO端子とMCO2端子は、LSI、LSE、SYSCLK、HSI48、HSEから選択されたクロックを独立して出力します。
MCOとMCO2のマルチプレクサはそれぞれ、プログラム可能な比率でさらに分割されます。
LSCOピンにより、低速クロック（LSIまたはLSE）の出力が可能になります。
低速クロック出力はSTOPモードで使用できます。

19

クロック･ゲーティング
RUNおよびSLEEPモードで動的消費電力を最適化• ペリフェラル･クロック有効レジスタ• ペリフェラル･クロックはデフォルトでは無効（Flashメモリを除く）• クロックが無効の場合、レジスタの読み書きアクセスはサポートされない• メモリ･インタフェース･クロック（FlashメモリおよびSRAMインタフェース）は、SLEEPモード中にソフトウェアによって停止可能• SLEEPおよびSTOPモードでのペリフェラル･クロック有効レジスタ• SLEEP、STOPモードでペリフェラル･クロックを有効または無効にする• 対応するペリフェラルクロック有効がクリアされている場合は効果がない• バスとカーネルの両方のクロックを制御• SLEEPモードとSTOPモードに影響を与える（STOPモードで独立したクロックがアクティブなペリフェラルの場合）
20

ペリフェラルクロックゲーティングを使用すると、動的消費電力を最適化できます。
RUNモードと低消費電力RUNモードでは、各ペリフェラルクロックをゲートオン／オフできます。
デフォルトでは、ペリフェラルのクロックは無効になっています（デフォルトで有効になっているFlashメモリクロックを除く）。ペ
リフェラルのクロックが無効になっていると、ペリフェラルのレジスタを読み書きできません。
他のレジスタでは、STOP、SLEEPモード中にペリフェラルのクロックを設定できます。また、これは、STOPモードで独立したクロックがアクティブなペリフェラルの場合、STOPモードにも影響します。対応するペリフェラルクロック有効がクリアされた場
合、これらの制御ビットは効果がありません。デフォルトでは、STOP、SLEEP、および低消費電力SLEEPモードでアクティブなペリフェラルクロックはゲートされません。ペリフェラルが不要な場合は、消費電力を削減するために、そのクロック有効ビットをクリアする必要があります。
20割込み割込みイベント

説明

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

LSEオシレータで障害が検出された場合にセットHSEクロック・セキュリティ・システム

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

HSEオシレータ･クロックがレディ状態

HSI48レディHSI48オシレータ･クロックがレディ状態

LSEレディ

LSEオシレータ･クロックがレディ状態

LSIレディ

LSIオシレータ･クロックがレディ状態

21

このスライドにはRCC割込みがリストされています。
LSEおよびHSEクロックセキュリティシステム、およびすべてのオシレータレディ信号は割込みを生成できます。
外部LSEまたはHSEが失われた場合の自動クロック切り替えを示すフラグは、NMI割込みサービスルーチンでクリアする必要があることに注意してください。

21

STM32F0、STM32G0xとの主な違い
STM32F0

STM32G0

STM32C0

NRST

入出力

GPIO、入力、入力および出力

GPIO、入力、入力および出力リセット･ハンドラ

なし

はい

はい

PLL

1出力

3出力

PLLなし

LSEのCSS + LSCO

なし

はい

はい

SYSCLKへのHSI分周器

なし

はいはい

2xSYSCLKで動作するタイマ

なし

はいなし

HSI/最大CPUスピード（MHz）

8 / 4816 / 64

48 / 48

22

STM32C0に実装されているRCCユニットはSTM32G0と似ており、STM32F0マイクロコントローラと比較して新しい機能を提供します。
NRSTピンには3つの用途があります。
1. 外部ロジックがSTM32C0にリセット条件を信号を送るために使用するリセット入力
2. リセット入力および出力（レガシーモード）。ピン上の有効なリセット信号はデバ
イスの内部ロジックに伝播され、すべての内部リセットソースはパルス生成器を介して外部からこのピンに駆動されます。
3. このモードでは、ピンは標準GPIOとして使用でき、リセットはデバイスの内部リセットソースからのみ可能です。
リセットホルダーオプションを使用すると、オプションバイトで有効になっている場合、ピンの電圧がVIL閾値に達するまで確実にローに引き下げられます。
コストを考慮してPLLは組み込まれていません。HSI48オシレータにより、システムは最大48MHzで動作します。
クロックセキュリティシステム（CSS）もLSEを監視し、障害を検出します。
低速外部32.768KHz発振器（LSE）がシステムクロックとして使用されている場合、LSEクロックの故障が検出されると、システムクロックは自動的に低速内部32KHzRCオシレータ（LSI）に切り替わります。
STM32C0に関しては、APBプリスケーラ分周係数が1に設定されている場合、タイマクロックTIMPCLKはPCLK周波数で動作し、それ以外の場合はPCLK周波数の2倍で動作します。したがって、タイマの最大周波数はSYSCLK周波数です。

22

関連ペリフェラル• 次のペリフェラルにリンクされているこれらのトレーニングを参照• STM32C0 電源制御（PWR）• STM32C0 割込み（NVIC-EXTI）

23

このトレーニングに加えて、電源制御と割込みコントローラのトレーニングが役に立つ可能性があります。

23

参照• 詳細については、次のソースを参照• AN2867（STM8AF/AL/S およびSTM32マイクロコントローラ用発振器設計ガイド）

24

詳細については、アプリケーションノートAN2867（STM8AF/AL/S およびSTM32マイクロコントローラ用発振器設計ガイド）を参照してください。

24

Find out more at www.st.com© STMicroelectronics - All rights reserved.
ST logo is a trademark or a registered trademark of STMicroelectronics International NV or its affiliates in the EU and/or other countries.
For additional information about ST trademarks, please refer to www.st.com/trademarks.
All other product or service names are the property of their respective owners.

ありがとうございました。

25