3. RCC
RCC = Reset, expansion and Clock Control
この章は、CH32F2x、CH32V2x、およびCH32V3xファミリ全体に適用されます。
コントローラは、電源領域の分割とアプリケーションにおける周辺機器の消費電力管理を考慮し、様々なタイプのリセットと設定可能なクロックツリー構造を提供します。
この章では、システムにおける各クロックの動作範囲について説明します。
コントローラは、電源領域の分割とアプリケーションにおける周辺機器の消費電力管理を考慮し、様々なタイプのリセットと設定可能なクロックツリー構造を提供します。
この章では、システムにおける各クロックの動作範囲について説明します。
3.1 主な特徴 (Main features)
●複数のリセットタイプ
●複数のクロックソース、バスクロック管理
●外部水晶発振器モニターとクロックセキュリティシステムを内蔵
●各ペリフェラルクロックの個別管理:リセット、有効化、無効化
●内部クロック出力
●複数のクロックソース、バスクロック管理
●外部水晶発振器モニターとクロックセキュリティシステムを内蔵
●各ペリフェラルクロックの個別管理:リセット、有効化、無効化
●内部クロック出力
3.2 リセット
リセットには、
・3.2.1 電源リセット
・3.2.2 システム リセット
・3.3.3 バックアップ ドメイン リセット
の 3 種類があります。
・3.2.1 電源リセット
・3.2.2 システム リセット
・3.3.3 バックアップ ドメイン リセット
の 3 種類があります。
3.2.1 電源リセット
電源リセットが発生すると、バックアップドメインを除くすべてのレジスタがリセットされ(バックアップドメインはVBATから電源供給されます)、
アプリケーションプログラム内のPCポインタはアドレス0x00000004(リセットベクターテーブル)に固定されます。
電源リセットは、以下のイベントが発生したときに生成されます。
●パワーオン/パワーダウンリセット(POR/PDRリセット)
●スタンバイモードからのウェイクアップ
電源リセットは、以下のイベントが発生したときに生成されます。
●パワーオン/パワーダウンリセット(POR/PDRリセット)
●スタンバイモードからのウェイクアップ
3.2.2 システムリセット
システムリセットが発生すると、制御/ステータスレジスタ(RCC_RSTSCKR)のリセットフラグとバックアップドメインを除くすべてのレジスタがリセットされます。
RCC_RSTSCKRレジスタのリセットステータスフラグビットを参照することで、リセットイベントの要因を特定できます。
システムリセットは、以下のイベントが発生すると生成されます。
●NRSTピンのLowレベル(外部リセット)
●ウィンドウウォッチドッグのカウント終了条件(WWDGリセット)
●独立ウォッチドッグのカウント終了条件(IWDGリセット)
●ソフトウェアリセット(SWリセット)
●低消費電力管理リセット
ウィンドウ/独立ウォッチドッグリセット:ウィンドウ/独立ウォッチドッグのペリフェラルタイマのカウントサイクルオーバーフローによってトリガされます。
詳細については、対応する章を参照してください。
ソフトウェアリセット:CH32F2xは、コアレジスタ(AIRCR)のビット2を1に設定することでシステムをリセットします。
具体的な動作については、Cortex-M3コアマニュアルを参照してください。
CH32V2xおよびCH32V3xは、割り込み設定レジスタ(PFIC_CFGR)のSYSRESETビットを1に設定するか、PFIC_SCTLRレジスタのSYSRESETビットを1に設定すると、システムをリセットします。
詳細は、該当する章を参照してください。
低消費電力管理リセット:ユーザー選択バイトのSTANDY_RSTビットを0に設定すると、スタンバイモードリセットが有効になります。
このとき、スタンバイモードに入る処理が実行された後、スタンバイモードに入る代わりにシステムリセットが実行されます。
ユーザー選択バイトのSTOP_RSTビットを0に設定すると、ストップモードリセットが有効になります。
ストップモードに入る処理が実行された後、ストップモードに入る代わりにシステムリセットが実行されます。
RCC_RSTSCKRレジスタのリセットステータスフラグビットを参照することで、リセットイベントの要因を特定できます。
システムリセットは、以下のイベントが発生すると生成されます。
●NRSTピンのLowレベル(外部リセット)
●ウィンドウウォッチドッグのカウント終了条件(WWDGリセット)
●独立ウォッチドッグのカウント終了条件(IWDGリセット)
●ソフトウェアリセット(SWリセット)
●低消費電力管理リセット
ウィンドウ/独立ウォッチドッグリセット:ウィンドウ/独立ウォッチドッグのペリフェラルタイマのカウントサイクルオーバーフローによってトリガされます。
詳細については、対応する章を参照してください。
ソフトウェアリセット:CH32F2xは、コアレジスタ(AIRCR)のビット2を1に設定することでシステムをリセットします。
具体的な動作については、Cortex-M3コアマニュアルを参照してください。
CH32V2xおよびCH32V3xは、割り込み設定レジスタ(PFIC_CFGR)のSYSRESETビットを1に設定するか、PFIC_SCTLRレジスタのSYSRESETビットを1に設定すると、システムをリセットします。
詳細は、該当する章を参照してください。
低消費電力管理リセット:ユーザー選択バイトのSTANDY_RSTビットを0に設定すると、スタンバイモードリセットが有効になります。
このとき、スタンバイモードに入る処理が実行された後、スタンバイモードに入る代わりにシステムリセットが実行されます。
ユーザー選択バイトのSTOP_RSTビットを0に設定すると、ストップモードリセットが有効になります。
ストップモードに入る処理が実行された後、ストップモードに入る代わりにシステムリセットが実行されます。
3.2.3 バックアップ ドメイン リセット
バックアップドメインリセットが発生すると、バックアップレジスタ、RCC_BDCTLRレジスタ(RTCイネーブルおよびLSE発振器)を含む、バックアップドメインレジスタのみがリセットされます。
バックアップドメインリセットは、以下のイベントが発生したときに生成されます。
●VDDとVBATの両方の電源がオフになっていることを前提として、VDDまたはVBATの電源がオンになった場合
●RCC_BDCTLRレジスタのBDRSTビットを1に設定する
●RCC_APB1PRSTRレジスタのBKPRSTビットを1に設定する
バックアップドメインリセットは、以下のイベントが発生したときに生成されます。
●VDDとVBATの両方の電源がオフになっていることを前提として、VDDまたはVBATの電源がオンになった場合
●RCC_BDCTLRレジスタのBDRSTビットを1に設定する
●RCC_APB1PRSTRレジスタのBKPRSTビットを1に設定する
3.3クロック
3.3.1 システムクロック構造

注: このクロックツリー構造は、CH32F20x_D6、CH32F20x_D8、CH32V20x_D6、およびCH32V30x_D8に適用されます。
3.3.2 High-speed clock (HSI/HSE)
HSIはシステム内の8MHz RC発振器によって生成される高速クロック信号です。
HSI RC発振器は、外部デバイスに依存せずにシステムクロックを供給できます。
起動時間は非常に短いですが、クロック周波数の精度は低くなります。
HSIは、RCC_CTLRレジスタのHSIONビットを設定することで有効化/無効化できます。
HSIRDYビットは、HSI RC発振器が安定しているかどうかを示します。
デフォルトでは、HSIONとHSIRDYは1に設定されています(無効化しないことを推奨します)。
RCC_INTRレジスタのHSIRDYIEビットが設定されている場合、対応する割り込みが生成されます。
HSEは高速外部クロック信号であり、外部水晶/セラミック共振器による生成または外部高速クロック入力が含まれます。
外部水晶/セラミック共振器(HSE水晶):3~25MHzの外部発振器は、システムに高精度のクロックソースを提供します。
詳細については、このマニュアルの電気的特性を参照してください。
HSE水晶発振器は、RCC_CTLRレジスタのHSEONビットを設定することで有効/無効を切り替えることができます。
HSERDYビットは、HSE水晶発振器の発振状態を示します。
HSERDYビットがハードウェアによって1に設定されるまで、クロックは出力されません。
RCC_INTRレジスタのHSERDYIEビットが設定されている場合、対応する割り込みを生成できます。
注意:負荷コンデンサは発振器ピンのできるだけ近くに配置する必要があり、負荷容量の値は選択した発振器に応じて調整する必要があります。
外部高速クロックソース(HSEバイパス):このモードでは、外部クロックソースがOSC_INピンに直接供給され、OSC_OUTピンは停止します。
最大周波数は25MHzです。
アプリケーションプログラムは、HSEONビットが0のときにHSEBYPビットをセットしてHSEバイパスを有効にし、その後HSEONビットをセットする必要があります。
HSI RC発振器は、外部デバイスに依存せずにシステムクロックを供給できます。
起動時間は非常に短いですが、クロック周波数の精度は低くなります。
HSIは、RCC_CTLRレジスタのHSIONビットを設定することで有効化/無効化できます。
HSIRDYビットは、HSI RC発振器が安定しているかどうかを示します。
デフォルトでは、HSIONとHSIRDYは1に設定されています(無効化しないことを推奨します)。
RCC_INTRレジスタのHSIRDYIEビットが設定されている場合、対応する割り込みが生成されます。
工場キャリブレーション:製造プロセスの違いにより、各チップのRC発振周波数が異なる場合があるため、工場出荷前に各チップに対してHSIキャリブレーションを実施します。
システムリセット後、工場キャリブレーション値がRCC_CTLRレジスタのHSICAL[7:0]ビットにロードされます。
ユーザー調整:アプリケーションプログラムは、電圧や周囲温度の違いに基づいて、CC_CTLRレジスタのHSITRIM[4:0]ビットを介してHSI周波数を調整できます。
注:HSE水晶発振器が故障した場合、HSIクロックはバックアップクロックソース(クロックセキュリティシステム)として使用されます。システムリセット後、工場キャリブレーション値がRCC_CTLRレジスタのHSICAL[7:0]ビットにロードされます。
ユーザー調整:アプリケーションプログラムは、電圧や周囲温度の違いに基づいて、CC_CTLRレジスタのHSITRIM[4:0]ビットを介してHSI周波数を調整できます。
HSEは高速外部クロック信号であり、外部水晶/セラミック共振器による生成または外部高速クロック入力が含まれます。
外部水晶/セラミック共振器(HSE水晶):3~25MHzの外部発振器は、システムに高精度のクロックソースを提供します。詳細については、このマニュアルの電気的特性を参照してください。
HSE水晶発振器は、RCC_CTLRレジスタのHSEONビットを設定することで有効/無効を切り替えることができます。
HSERDYビットは、HSE水晶発振器の発振状態を示します。
HSERDYビットがハードウェアによって1に設定されるまで、クロックは出力されません。
RCC_INTRレジスタのHSERDYIEビットが設定されている場合、対応する割り込みを生成できます。
注意:負荷コンデンサは発振器ピンのできるだけ近くに配置する必要があり、負荷容量の値は選択した発振器に応じて調整する必要があります。
外部高速クロックソース(HSEバイパス):このモードでは、外部クロックソースがOSC_INピンに直接供給され、OSC_OUTピンは停止します。最大周波数は25MHzです。
アプリケーションプログラムは、HSEONビットが0のときにHSEBYPビットをセットしてHSEバイパスを有効にし、その後HSEONビットをセットする必要があります。
3.3.3 Low-speed clock (LSI/LSE)
LSIは、システム内の約40kHzのRC発振器によって生成される低速クロック信号です。
ストップモードおよびスタンバイモードでも動作を継続し、RTCクロック、独立ウォッチドッグ、およびウェイクアップユニットのクロックリファレンスを提供します。
詳細については、このマニュアルの電気的特性を参照してください。
LSIは、RCC_RSTSCKRレジスタのLSIONビットをセットすることで有効/無効を切り替えることができ、その後、LSIRDYビットを照会することでLSIのRC発振が安定しているかどうかを確認します。
LSIRDYビットがハードウェアによって1にセットされるまで、クロックは解放されません。RCC_INTRレジスタのLSIRDYIEビットがセットされている場合、対応する割り込みを生成できます。
LSEは、外部水晶/セラミック共振子の生成、または外部低速クロック入力を含む外部低速クロック信号です。
RTCクロックやその他のタイミング機能に、低消費電力で高精度なクロックソースを提供します。
外部水晶/セラミック共振子(LSE水晶):外部32.768kHz低速発振器。
LSEは、RCC_BDCTLRレジスタのLSEONビットを設定することで有効/無効を切り替えることができます。
LSERDYビットは、LSE水晶発振が安定しているかどうかを示します。
LSERDYビットがハードウェアによって1に設定されるまで、クロックは解放されません。
RCC_INTRレジスタのLSERDYIEビットが設定されている場合、対応する割り込みを生成できます。
外部低速クロックソース(LSEバイパス):このモードでは、外部クロックソースがOSC32_INピンに直接供給され、OSC32_OUTピンは停止します。
アプリケーションプログラムは、LSEONビットが0のときにLSEBYPビットをセットしてLSEバイパスを有効にし、その後LSEONビットをセットする必要があります。
ストップモードおよびスタンバイモードでも動作を継続し、RTCクロック、独立ウォッチドッグ、およびウェイクアップユニットのクロックリファレンスを提供します。
詳細については、このマニュアルの電気的特性を参照してください。
LSIは、RCC_RSTSCKRレジスタのLSIONビットをセットすることで有効/無効を切り替えることができ、その後、LSIRDYビットを照会することでLSIのRC発振が安定しているかどうかを確認します。
LSIRDYビットがハードウェアによって1にセットされるまで、クロックは解放されません。RCC_INTRレジスタのLSIRDYIEビットがセットされている場合、対応する割り込みを生成できます。
LSEは、外部水晶/セラミック共振子の生成、または外部低速クロック入力を含む外部低速クロック信号です。
RTCクロックやその他のタイミング機能に、低消費電力で高精度なクロックソースを提供します。
外部水晶/セラミック共振子(LSE水晶):外部32.768kHz低速発振器。LSEは、RCC_BDCTLRレジスタのLSEONビットを設定することで有効/無効を切り替えることができます。
LSERDYビットは、LSE水晶発振が安定しているかどうかを示します。
LSERDYビットがハードウェアによって1に設定されるまで、クロックは解放されません。
RCC_INTRレジスタのLSERDYIEビットが設定されている場合、対応する割り込みを生成できます。
外部低速クロックソース(LSEバイパス):このモードでは、外部クロックソースがOSC32_INピンに直接供給され、OSC32_OUTピンは停止します。アプリケーションプログラムは、LSEONビットが0のときにLSEBYPビットをセットしてLSEバイパスを有効にし、その後LSEONビットをセットする必要があります。
3.3.4 PLL clock
RCC_CFGR0 レジスタと EXTEND_CTR レジスタを設定することで、内部 PLL クロックに 3 つのクロックソースと逓倍係数を選択できます。
これらの設定は、各 PLL を有効にする前に完了する必要があります。
PLL を有効にすると、これらのパラメータは変更できなくなります。
PLL は、RCC_CTLR レジスタの PLLON ビットを設定することで有効/無効にできます。
PLLRDY ビットは、PLL クロックが安定しているかどうかを示します。
PLLRDY ビットがハードウェアによって 1 に設定されるまで、クロックはリリースされません。PLL2 は、RCC_CTLR レジスタの PLLON2 ビットを設定することで有効/無効にできます。
PLLRDY2 ビットは、PLL2 クロックが安定しているかどうかを示します。PLLRDY2 ビットがハードウェアによって 1 に設定されるまで、クロックはリリースされません。
PLL3 は、RCC_CTLR レジスタの PLLON3 ビットを設定することで有効/無効にできます。PLLRDY3 ビットは、PLL3 クロックが安定しているかどうかを示します。
PLLRDY3ビットがハードウェアによって1に設定されるまで、クロックは解放されません。
RCC_INTRレジスタのPLLRDYIEビット、PLL2RDYIEビット、およびPLL3RDYIEビットが設定されている場合、対応する割り込みを生成できます。
PLLクロックソース:
・ HSIクロック
・ HSIクロック(2分周)
・ HSEクロックまたはPLL2クロック(設定可能な分周器経由)
PLL2とPLL3は、HSEクロック(設定可能な分周器(PREDIV2)経由)によって駆動されます
これらの設定は、各 PLL を有効にする前に完了する必要があります。
PLL を有効にすると、これらのパラメータは変更できなくなります。
PLL は、RCC_CTLR レジスタの PLLON ビットを設定することで有効/無効にできます。
PLLRDY ビットは、PLL クロックが安定しているかどうかを示します。
PLLRDY ビットがハードウェアによって 1 に設定されるまで、クロックはリリースされません。PLL2 は、RCC_CTLR レジスタの PLLON2 ビットを設定することで有効/無効にできます。
PLLRDY2 ビットは、PLL2 クロックが安定しているかどうかを示します。PLLRDY2 ビットがハードウェアによって 1 に設定されるまで、クロックはリリースされません。
PLL3 は、RCC_CTLR レジスタの PLLON3 ビットを設定することで有効/無効にできます。PLLRDY3 ビットは、PLL3 クロックが安定しているかどうかを示します。
PLLRDY3ビットがハードウェアによって1に設定されるまで、クロックは解放されません。
RCC_INTRレジスタのPLLRDYIEビット、PLL2RDYIEビット、およびPLL3RDYIEビットが設定されている場合、対応する割り込みを生成できます。
PLLクロックソース:
・ HSIクロック
・ HSIクロック(2分周)
・ HSEクロックまたはPLL2クロック(設定可能な分周器経由)
PLL2とPLL3は、HSEクロック(設定可能な分周器(PREDIV2)経由)によって駆動されます
3.3.5 バス/ペリフェラルクロック
3.3.5.1 システムクロック (SYSCLK)
RCC_CFGR0レジスタのSW[1:0]ビットを設定することで、システムクロックソースを設定します。
SWS[1:0]ビットは、現在のシステムクロックソースの状態を示します。
・システムクロックとしてのHSI
・システムクロックとしてのHSE
・システムクロックとしてのPLLクロック
コントローラがリセットされると、HSIクロックがシステムクロックソースとしてデフォルトで選択されます。
クロックソース間の切り替えは、ターゲットクロックソースの準備が整ってから行う必要があります。
SWS[1:0]ビットは、現在のシステムクロックソースの状態を示します。
・システムクロックとしてのHSI
・システムクロックとしてのHSE
・システムクロックとしてのPLLクロック
コントローラがリセットされると、HSIクロックがシステムクロックソースとしてデフォルトで選択されます。
クロックソース間の切り替えは、ターゲットクロックソースの準備が整ってから行う必要があります。
3.3.5.2 AHB/APB1/APB2バス周辺クロック(HCLK/PCLK1/PCLK2)
RCC_CFGR0レジスタのHPRE[3:0]、PPRE1[2:0]、PPRE2[2:0]ビットを設定することで、AHBバス、APB1バス、APB2バスのクロックをそれぞれ設定できます。
これらのバスクロックは、その下層に実装されたペリフェラルインターフェースのアクセスクロックリファレンスを決定します。
アプリケーションプログラムは、これらの値を調整することで、一部のペリフェラルの消費電力を削減できます。
さまざまな周辺モジュールは、RCC_AHBRSTR、RCC_APB1PRSTR、および RCC_APB2PRSTR レジスタのビットによってリセットされ、初期状態に戻すことができます。
RCC_AHBPCENR、RCC_APB1PCENR、およびRCC_APB2PCENRレジスタのビットを設定することで、異なるペリフェラルモジュールの通信クロックインターフェースを個別に有効化または無効化できます。
ペリフェラルを使用するには、まず対応するクロックビットを有効化して、そのレジスタにアクセスする必要があります。
これらのバスクロックは、その下層に実装されたペリフェラルインターフェースのアクセスクロックリファレンスを決定します。
アプリケーションプログラムは、これらの値を調整することで、一部のペリフェラルの消費電力を削減できます。
さまざまな周辺モジュールは、RCC_AHBRSTR、RCC_APB1PRSTR、および RCC_APB2PRSTR レジスタのビットによってリセットされ、初期状態に戻すことができます。
RCC_AHBPCENR、RCC_APB1PCENR、およびRCC_APB2PCENRレジスタのビットを設定することで、異なるペリフェラルモジュールの通信クロックインターフェースを個別に有効化または無効化できます。
ペリフェラルを使用するには、まず対応するクロックビットを有効化して、そのレジスタにアクセスする必要があります。
3.3.5.3 RTCクロック(RTCCLK)
RCC_BDCTLRレジスタのRTCSEL[1:0]ビットを設定することで、RTCCLKのクロックソースをHSE/128、LSE、またはLSIクロックのいずれかにすることができます。
このビットを変更する前に、電源制御レジスタ(PWR_CR)のDBPビットが1に設定されていることを確認してください。
このビットは、バックアップドメインがリセットされた場合にのみリセットできます。
・LSEをRTCクロックとして使用する場合:LSEはバックアップドメインにあり、VBAT電源から電力を供給されているため、VBATが電力を供給し続けている限り、VDD電源がオフになってもRTCは動作を継続します。
・LSIをRTCクロックとして使用する場合:VDD電源がオフになった場合、RTCの自動ウェイクアップは保証されません。
・HSE/128をRTCクロックとして使用する場合:VDD電源がオフになった場合、または内部電圧レギュレータの電源がオフになった場合(1.8Vドメインから電源が除去された場合)、RTCの状態は保証されません。
このビットを変更する前に、電源制御レジスタ(PWR_CR)のDBPビットが1に設定されていることを確認してください。
このビットは、バックアップドメインがリセットされた場合にのみリセットできます。
・LSEをRTCクロックとして使用する場合:LSEはバックアップドメインにあり、VBAT電源から電力を供給されているため、VBATが電力を供給し続けている限り、VDD電源がオフになってもRTCは動作を継続します。
・LSIをRTCクロックとして使用する場合:VDD電源がオフになった場合、RTCの自動ウェイクアップは保証されません。
・HSE/128をRTCクロックとして使用する場合:VDD電源がオフになった場合、または内部電圧レギュレータの電源がオフになった場合(1.8Vドメインから電源が除去された場合)、RTCの状態は保証されません。
3.3.5.4 独立したウォッチドッグクロック
独立ウォッチドッグがハードウェアオプションまたはソフトウェアアクセスによって起動された場合、LSI発振器は強制的にオンとなり、オフにすることはできません。
LSI発振器の一時停止後、クロックがIWDGに供給されます。
LSI発振器の一時停止後、クロックがIWDGに供給されます。
3.3.5.5 マイクロコントローラクロック出力(MCO)
マイクロコントローラクロック出力(MCO)機能により、クロックをMCOピンに出力できます。
対応するGPIOポートレジスタで、オルタネートプッシュプル出力モードを設定します。
RCC_CFGR0レジスタのMCO[3:0]ビットを設定することで、以下の8つのクロック信号をMCOクロック出力として選択できます。
システムクロック (SYSCLK) ・HSI ・HSE ・PLLクロックの2分周 ・PLL2クロック ・PLL3クロック ・PLL3クロックの2分周 ・XT1 外部 3~25MHz 発振器 (Ethernet用)
対応するGPIOポートレジスタで、オルタネートプッシュプル出力モードを設定します。
RCC_CFGR0レジスタのMCO[3:0]ビットを設定することで、以下の8つのクロック信号をMCOクロック出力として選択できます。
システムクロック (SYSCLK) ・HSI ・HSE ・PLLクロックの2分周 ・PLL2クロック ・PLL3クロック ・PLL3クロックの2分周 ・XT1 外部 3~25MHz 発振器 (Ethernet用)
3.3.5.6 USBクロック
USBD 48MHz クロックソースは、設定可能な分周器を介した PLL クロックであり、PLL は 48MHz、96MHz、144MHz の 3 種類のクロック構成をサポートします。
RCC_CFGR0 レジスタの USBPRE[1:0] ビットを設定することで、48MHz クロックが USBD に出力されます。
USBOTG 48MHz クロックソースは、設定可能な分周器を介した PLL クロックまたは USBHSPLL クロックであり、RCC_CFGR2 レジスタの USB_CLK_SRC ビットを設定することで選択できます。
設定可能な分周器を介した PLL クロックをクロックソースとして選択する場合の設定手順については、USBD を参照してください。
クロックソースとして USBHSPLL クロックを選択した場合、RCC_CFGR2 レジスタの USBHS_CKREFSEL[1:0] ビットを設定することで、 USBHS PLL リファレンスクロック周波数を選択できます(リファレンスクロック周波数は USBHS PLL 入力クロックと同じである必要があります)。
USBHDのクロックソースはUSBHSPLLクロックです。USBHS PLLリファレンスクロック周波数は、RCC_CFGR2レジスタのUSBHS_CKREFSEL[1:0]ビットを設定することで選択できます (リファレンスクロック周波数はUSBHS PLL入力クロックと同じである必要があります)。RCC_CFGR2レジスタのUSBHS_PLLALIVEビットを設定することで、USB PHY内部PLLを有効にできます。
RCC_CFGR0 レジスタの USBPRE[1:0] ビットを設定することで、48MHz クロックが USBD に出力されます。
USBOTG 48MHz クロックソースは、設定可能な分周器を介した PLL クロックまたは USBHSPLL クロックであり、RCC_CFGR2 レジスタの USB_CLK_SRC ビットを設定することで選択できます。
設定可能な分周器を介した PLL クロックをクロックソースとして選択する場合の設定手順については、USBD を参照してください。
クロックソースとして USBHSPLL クロックを選択した場合、RCC_CFGR2 レジスタの USBHS_CKREFSEL[1:0] ビットを設定することで、 USBHS PLL リファレンスクロック周波数を選択できます(リファレンスクロック周波数は USBHS PLL 入力クロックと同じである必要があります)。
USBHDのクロックソースはUSBHSPLLクロックです。USBHS PLLリファレンスクロック周波数は、RCC_CFGR2レジスタのUSBHS_CKREFSEL[1:0]ビットを設定することで選択できます (リファレンスクロック周波数はUSBHS PLL入力クロックと同じである必要があります)。RCC_CFGR2レジスタのUSBHS_PLLALIVEビットを設定することで、USB PHY内部PLLを有効にできます。
3.3.5.7 ETHクロック
CH32V203K8T6は関係無い。
詳細については、セクション27.4.5.1を参照してください。
詳細については、セクション27.4.5.1を参照してください。
3.3.5.8 I2SとRNGクロック
I2SおよびRNGのクロックソースは、PLL3VCOまたはシステムクロック(SYSCLK)を選択できます。
RCC_CFGR2レジスタのI2S2SRC/I2S3SRC/RNG_SRCビットを設定することで、I2S2/I2S3/RNGのクロックソースを選択できます。
RCC_CFGR2レジスタのI2S2SRC/I2S3SRC/RNG_SRCビットを設定することで、I2S2/I2S3/RNGのクロックソースを選択できます。
3.3.6 クロックセキュリティシステム
クロックセキュリティシステムは、コントローラの動作保護機構です。
HSEクロックに障害が検出されると、HSIクロックに切り替え、割り込み通知を生成してソフトウェアに障害を通知し、MCUが救済措置を実行できるようにします。
RCC_CTLRレジスタのCSSONビットを1に設定することで、クロックセキュリティシステムを起動できます。
この場合、クロック検出器はHSE発振器の起動遅延(HSERDY=1)後に有効になり、HSE発振器が停止した後に無効になります。
システム動作中にHSEクロックに障害が検出されると、HSE発振器は無効になり、クロック障害イベントがアドバンストコントロールタイマ(TIM1およびTIM8)のブレーク入力に送信されます。
クロックセキュリティ割り込みが生成され、CSSFビットが1に設定され、アプリケーションプログラムはマスク不可割り込み(NMI)に入ります。
CSSFビットはCSSCビットをセットすることでクリアでき、NMI割り込み保留ビットはキャンセルできます。
現在のHSEがシステムクロックとして選択されている場合、または現在のHSEがPLL入力クロックとして選択され、 PLLがシステムクロックとして選択されている場合、クロックセキュリティシステムは、障害が発生すると自動的にシステムクロックをHSI発振器に切り替え、HSE発振器とPLLを無効にします。
HSEクロックに障害が検出されると、HSIクロックに切り替え、割り込み通知を生成してソフトウェアに障害を通知し、MCUが救済措置を実行できるようにします。
RCC_CTLRレジスタのCSSONビットを1に設定することで、クロックセキュリティシステムを起動できます。
この場合、クロック検出器はHSE発振器の起動遅延(HSERDY=1)後に有効になり、HSE発振器が停止した後に無効になります。
システム動作中にHSEクロックに障害が検出されると、HSE発振器は無効になり、クロック障害イベントがアドバンストコントロールタイマ(TIM1およびTIM8)のブレーク入力に送信されます。
クロックセキュリティ割り込みが生成され、CSSFビットが1に設定され、アプリケーションプログラムはマスク不可割り込み(NMI)に入ります。
CSSFビットはCSSCビットをセットすることでクリアでき、NMI割り込み保留ビットはキャンセルできます。
現在のHSEがシステムクロックとして選択されている場合、または現在のHSEがPLL入力クロックとして選択され、 PLLがシステムクロックとして選択されている場合、クロックセキュリティシステムは、障害が発生すると自動的にシステムクロックをHSI発振器に切り替え、HSE発振器とPLLを無効にします。
3.4 制御を拡張する
システムは拡張制御ユニット(EXTEND_CTRレジスタ)を提供します。
このユニットにAHBクロックを使用する場合、リセットはシステムリセット時にのみ実行されます。
主に以下の拡張制御ビット機能が含まれます。
(1) 内蔵電圧の調整
(2) PLLクロックの選択
(3)ロックアップ機能モニタ
(4) USBDモジュールの内蔵抵抗と通信速度制御
(5) ETHモジュール 10M Ethernetおよび1000M Ethernet RGMIIインターフェース有効化制御ビット
(6)低電力モード時のHSE発振制御ビット
このユニットにAHBクロックを使用する場合、リセットはシステムリセット時にのみ実行されます。
主に以下の拡張制御ビット機能が含まれます。
(1) 内蔵電圧の調整
LDOTRIMおよびULLDOTRIMにはデフォルト値が選択されており、パフォーマンスと消費電力の調整時に値を変更できます。
(2) PLLクロックの選択
HSIPREは、元のクロック構成レジスタと連携して、PLLの入力クロックとしてHSIクロックを分周するかどうかを選択します。
(3)ロックアップ機能モニタ
LKUPENが有効になっている場合、システムのロックアップモニタが有効になります。
ロックアップが発生すると、システムはソフトウェアリセットを実行し、LKUPRESETを1に設定します。このビットは読み出し後、1を書き込むことでクリアできます。
ロックアップが発生すると、システムはソフトウェアリセットを実行し、LKUPRESETを1に設定します。このビットは読み出し後、1を書き込むことでクリアできます。
(4) USBDモジュールの内蔵抵抗と通信速度制御
USBフルスピードデバイスコントローラ(USBD)は、USBDPUを介して内蔵プルアップ抵抗(1.5KΩ)を使用するかどうかを選択します。
有効でない場合は、USBピンにプルアップ抵抗を接続する必要があります(低速モードではUD-ピン、フルスピードモードではUD+ピンに接続)。
現在のUSBデバイスの速度モードはUSBDLSによって設定されます。
有効でない場合は、USBピンにプルアップ抵抗を接続する必要があります(低速モードではUD-ピン、フルスピードモードではUD+ピンに接続)。
現在のUSBデバイスの速度モードはUSBDLSによって設定されます。
(5) ETHモジュール 10M Ethernetおよび1000M Ethernet RGMIIインターフェース有効化制御ビット
CH32V203K8T6は関係無い。
ETH_10Mを介して10M Ethernetを有効化します。
ETH_RGMIIを介して1000M Ethernet RGMIIインターフェースを有効化します。
ETH_10Mを介して10M Ethernetを有効化します。
ETH_RGMIIを介して1000M Ethernet RGMIIインターフェースを有効化します。
(6)低電力モード時のHSE発振制御ビット
このビットは、低電力モード時にHSEを発振させるかどうかを決定します。
注:製品番号によって、拡張レジスタビットの定義が異なります。
詳細は、拡張制御レジスタ(EXTEND_CTR)の説明を参照してください。
注:製品番号によって、拡張レジスタビットの定義が異なります。
詳細は、拡張制御レジスタ(EXTEND_CTR)の説明を参照してください。
3.5 レジスタの説明
表3-1 RCC関連レジスタ
表3‐2 EXTEND関連レジスタ
| Name | Access address | Description | Reset value |
|---|---|---|---|
| R32_RCC_CTLR | 0x40021000 | クロック制御レジスタ | 0x0000xx83 |
| R32_RCC_CFGR0 | 0x40021004 | クロック構成レジスタ0 | 0x00000000 |
| R32_RCC_INTR | 0x40021008 | クロック割り込みレジスタ | 0x00000000 |
| R32_RCC_APB2PRSTR | 0x4002100C | APB2 周辺リセットレジスタ | 0x00000000 |
| R32_RCC_APB1PRSTR | 0x40021010 | 周辺リセットレジスタ | 0x00000000 |
| R32_RCC_AHBPCENR | 0x40021014 | AHB周辺クロック有効化レジスタ | 0x00000014 |
| R32_RCC_APB2PCENR | 0x40021018 | APB2周辺クロック有効化レジスタ | 0x00000000 |
| R32_RCC_APB1PCENR | 0x4002101C | APB1周辺クロック有効化レジスタ | 0x00000000 |
| R32_RCC_BDCTLR | 0x40021020 | バックアップドメイン制御レジスタ | 0x00000000 |
| R32_RCC_RSTSCKR | 0x40021024 | 制御/ステータスレジスタ | 0x0C000000 |
| R32_RCC_AHBRSTR | 0x40021028 | AHBペリフェラルリセットレジスタ | 0x00000000 |
| R32_RCC_CFGR2 | 0x4002102C | AHBペリフェラルリセットレジスタ | 0x00000000 |
表3‐2 EXTEND関連レジスタ
| Name | Access address | Description | Reset value |
|---|---|---|---|
| R32_EXTEND_CTR | 0x40023800 | 構成拡張制御レジスタ | 0x00000A00 |
3.5.1 クロック制御レジスタ(RCC_CTLR)
CTLR =Clock conTroL Register | Access base address 0x40021000 Offset address: 0x00
■レジスター内容
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されま
注:このビットは、ストップモードまたはスタンバイ低消費電力モードに移行するとハードウェアによってクリアされます。
CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されま
注:このビットは、ストップモードまたはスタンバイ低消費電力モードに移行するとハードウェアによってクリアされます。
CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
注:このビットは、ストップモードまたはスタンバイ低電力モードに入るとハードウェアによってクリアされます。
※1 HSEが準備完了状態(HSERDYが1にセットされている状態)の場合、HSEクロック検出器はハードウェアによって有効化されます。
HSEクロック障害が検出されると、 CSSFフラグとNMI割り込みが有効になります。
HSEが準備完了状態でない場合、HSEクロック検出器はハードウェアによって無効化されます。
注:このビットはHSEONが0の場合にのみ書き込み可能です。
注:HSEONビットがクリアされた後、このビットをクリアするにはHSE発振器クロックの6サイクルかかります。
注:ストップモードまたはスタンバイ低電力モードに入ると、このビットはハードウェアによってクリアされます。
デフォルト値は16で、HSIは8MHz±1%の範囲でトリミング可能です。
連続する2つのHSICALステップ間のトリミングステップは約40kHzです。
注:HSIONビットがクリアされた後、このビットがクリアされるまでにHSI発振器クロックの6サイクルかかります。
注:システムがスタンバイモードおよびストップモードから復帰した場合、
またはシステムクロックとして選択された外部発振器(HSE)が故障した場合、
このビットはハードウェアによってセットされ、内部8MHz RC発振器を起動します。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | PLL3RDY | PLL3ON | PLL2RDY | PLL2ON | PLLRDY | PLLON | Reserved | CSSON | HSEBYP | HSERDY | HSEON | HSICAL | HSITRIM | Reserved | HSIRDY | HSION | |||||||||||||||
| RO | RO | RW | RO | RW | RO | RW | RO | RW | RW | RO | RW | RO | RW | RO | RO | RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | x | x | x | x | x | x | x | x | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
PLL3RDY [RO]
PLL3クロックレディロックフラグビット(ハードウェアによってセット)| 1 | PLL3がロックされています |
| 0 | PLL3がロック解除されています |
PLL3ON [RW]
PLL3クロック有効化制御ビット| 1 | PLL3有効化 |
| 0 | PLL3無効化 |
CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
PLL2RDY [RO]
PLL2クロックレディロックフラグビット(ハードウェアによってセット)| 1 | PLL2がロックされています |
| 0 | PLL2がロック解除されています |
PLL2ON [RW]
PLL2クロック有効化制御ビット| 1 | PLL2有効化 |
| 0 | PLL2無効化 |
CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
PLLRDY [RO]
PLLクロックレディロックフラグビット(ハードウェアによってセット)| 1 | PLLがロックされています |
| 0 | PLLがロック解除されています |
PLLON [RW]
PLLクロック有効化制御ビット| 1 | PLL有効化 |
| 0 | PLL無効化 |
CSSON [RW]
クロックセキュリティシステム有効化制御ビット| 1 | ※1 クロックセキュリティシステムを有効にする |
| 0 | クロックセキュリティシステムを無効化する |
HSEクロック障害が検出されると、 CSSFフラグとNMI割り込みが有効になります。
HSEが準備完了状態でない場合、HSEクロック検出器はハードウェアによって無効化されます。
HSEBYP [RW]
外部高速水晶振動子バイパス制御ビット| 1 | 外部高速水晶/セラミック共振器をバイパスする。(外部クロックソースを使用)RW |
| 0 | 外部高速水晶/セラミック共振器をバイパスしない |
HSERDY [RO]
外部高速水晶発振器準備完了フラグビット(ハードウェアによりセット)| 1 | 外部高速水晶発振器準備完了 |
| 0 | 外部高速水晶発振器の準備が完了していない |
HSEON [RW]
外部高速水晶発振器有効化制御ビット| 1 | HSE発振器を有効化 |
| 0 | HSE発振器を無効化 |
HSICAL [RO]
内部高速クロックのキャリブレーションは、起動時に自動的に初期化されます。HSITRIM [RW]
内部高速クロックのトリミング: ユーザーはHSICAL[7:0]ビットに加算されるトリミング値を入力し、電圧や温度の変化に応じて内部HSI RC発振器の周波数を調整できます。デフォルト値は16で、HSIは8MHz±1%の範囲でトリミング可能です。
連続する2つのHSICALステップ間のトリミングステップは約40kHzです。
HSIRDY [RO]
内部高速クロック(8MHz)準備完了フラグビット(ハードウェアによってセット)| 1 | 内部高速クロック(8MHz)準備完了 |
| 0 | 内部高速クロック(8MHz)準備完了ではありません |
HSION [RW]
内部高速クロック(8MHz)有効化制御ビット| 1 | HSI発振器を有効化 |
| 0 | HSI発振器を無効化 |
3.5.2 クロック構成レジスタ0 (RCC_CFGR0)
CFGR0 =Clock conFiGuration register0 | Access base address 0x40021000 Offset address: 0x04
■レジスター内容
注:CH32V20x_D8W、CH32V20x_D8、およびCH32F20x_D8Wに適用されます。
注:このクロック出力は、起動時またはMCOクロックソースの切り替え時に、一部のサイクルが切り捨てられる場合があります。
CH32V20x_D8/CH32V20x_D8W/CH32F20x_D8W/
CH32V30x_D8/CH32F20x_D8/CH32V20x_D8/
CH32V20x_D8W/CH32F20x_D8Wの場合
CH32F20x_D8C/CH32V30x_D8Cの場合
注:ADCクロックは最大14MHzを超えてはなりません。
注:AHBクロックソースのプリスケール係数が1より大きい場合、プリフェッチバッファをオンにする必要があります。
注:
システムがスタンバイモードおよびストップモードから復帰した場合、またはクロックセキュリティシステムが有効化(CSSON=1)された後にシステムクロックとして使用されていた外部発振器HSEに障害が発生した場合、ハードウェアによってHSIがシステムクロックとして強制的に選択されます。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADC_CLK_ADJ | Reserved | ETHPRE | MCO | USBPRE | PLLMUL | PLLXTPRE | PLLSRC | ADCPRE | PPRE2 | PPRE1 | HPRE | SWS | SW | ||||||||||||||||||
| RW | RO | RW | RW | RW | RW | RW | RW | RW | RW | RW | RW | RO | RW | ||||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ADC_CLK_ADJ [RW]
ADCクロックのデューティサイクル調整| 1 | ADCクロックのローレベルが長くなります |
| 0 | ADCクロックのデューティサイクルは50%です |
ETHPRE [RW]
Ethernetクロックソースの分周制御| 1 | 分周しない |
| 0 | 2分周する |
MCO [RW]
マイクロコントローラクロック出力(MCO)制御| 00xx | クロックなし |
| 0100 | システムクロック(SYSCLK) |
| 0101 | 内部8MHz RC発振器クロック(HSI) |
| 0110 | 外部発振器クロック(HSE) |
| 0111 | PLLクロック(2分周) |
| 1000 | PLL2クロック |
| 1001 | PLL3クロック(2分周) |
| 1010 | XT1外部発振器クロック |
| 1011 | PLL3クロック |
USBPRE [RW]
USBFS/USBOTGクロックプリスケーラ設定| 00 | 分周なし(PLLCLK=48MHzの場合) |
| 01 | 2分周(PLLCLK=96MHzの場合) |
| 10 | 3分周(PLLCLK=144MHzの場合) |
| 11 | 未使用 |
PLLMUL [RW]
PLL逓倍係数(これらのビットはPLLが無効の場合にのみ書き込み可能です)CH32V20x_D8/CH32V20x_D8W/CH32F20x_D8W/
CH32V30x_D8/CH32F20x_D8/CH32V20x_D8/
CH32V20x_D8W/CH32F20x_D8Wの場合
| 0000 | PLL入力クロック x2 |
| 0001 | PLL入力クロック x3 |
| 0010 | PLL入力クロック x4 |
| 0011 | PLL入力クロック x5 |
| 0100 | PLL入力クロック x6 |
| 0101 | PLL入力クロック x7 |
| 0110 | PLL入力クロック x8 |
| 0111 | PLL入力クロック x9 |
| 1000 | PLL入力クロック x10 |
| 1001 | PLL入力クロック x11 |
| 1010 | PLL入力クロック x12 |
| 1011 | PLL入力クロック x13 |
| 1100 | PLL入力クロック x14 |
| 1101 | PLL入力クロック x15 |
| 1110 | PLL入力クロック x16 |
| 1111 | PLL入力クロック x18 |
| 0000 | PLL入力クロック x18 |
| 0001 | PLL入力クロック x3 |
| 0010 | PLL入力クロック x4 |
| 0011 | PLL入力クロック x5 |
| 0100 | PLL入力クロック x6 |
| 0101 | PLL入力クロック x7 |
| 0110 | PLL入力クロック x8 |
| 0111 | PLL入力クロック x9 |
| 1000 | PLL入力クロック x10 |
| 1001 | PLL入力クロック x11 |
| 1010 | PLL入力クロック x12 |
| 1011 | PLL入力クロック x13 |
| 1100 | PLL入力クロック x14 |
| 1101 | PLL入力クロック x6.5? |
| 1110 | PLL入力クロック x15 |
| 1111 | PLL入力クロック x16 |
PLLXTPRE [RW]
PLLエントリのHSE分周比(PLLが無効の場合にのみ書き込み可能)| 1 | HSEクロックを2分周します |
| 0 | HSEクロックを分周しません |
PLLSRC [RW]
PLLエントリクロックソース(PLLが無効の場合にのみ書き込み可能)| 1 | HSEクロックは分周されていない、または2分周されていません |
| 0 | HSIクロックは分周されていない、または2分周されていません |
ADCPRE [RW]
ADCクロックソースの分周制御| 00 | PCLK2を2分周 |
| 01 | PCLK2を4分周 |
| 10 | PCLK2を6分周 |
| 11 | PCLK2を8分周 |
PPRE2 [RW]
APB2 クロックソースの分周制御| 0xx | HCLK を分周しない |
| 100 | HCLK を 2 分周する |
| 101 | HCLK を 4 分周する |
| 110 | HCLK を 8 分周する |
| 111 | HCLK を 16 分周する |
PPRE1 [RW]
APB1 クロックソースの分周制御| 0xx | HCLK を分周しない |
| 100 | HCLK を 2 分周する |
| 101 | HCLK を 4 分周する |
| 110 | HCLK を 8 分周する |
| 111 | HCLK を 16 分周する |
HPRE [RW]
AHBクロックソースのプリスケーラ制御| 0xxx | SYSCLKを分周しない |
| 1000 | SYSCLKを2分周する |
| 1001 | SYSCLKを4分周する |
| 1010 | SYSCLKを8分周する |
| 1011 | SYSCLKを16分周する |
| 1100 | SYSCLKを64分周する |
| 1101 | SYSCLKを128分周する |
| 1110 | SYSCLKを256分周する |
| 1111 | SYSCLKを512分周する |
SWS [RO]
システムクロック(SYSCLK)ステータス(ハードウェアによって設定)| 00 | システムクロックソースはHSIです |
| 01 | システムクロックソースはHSEです |
| 10 | システムクロックソースはPLLです |
| 11 | 該当なし |
SW [RW]
システムクロックソーススイッチ| 00 | HSIをシステムクロックとして使用します |
| 01 | HSEをシステムクロックとして使用します。 |
| 10 | PLL出力をシステムクロックとして使用します。 |
| 11 | 該当なし |
システムがスタンバイモードおよびストップモードから復帰した場合、またはクロックセキュリティシステムが有効化(CSSON=1)された後にシステムクロックとして使用されていた外部発振器HSEに障害が発生した場合、ハードウェアによってHSIがシステムクロックとして強制的に選択されます。
3.5.3 クロック割り込みレジスタ(RCC_INTR)
INTR =clock INTerrupt Register | Access base address 0x40021000 Offset address: 0x08
■レジスター内容
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
注:CH32F20x_D8CおよびCH32V30x_D8Cに適用されます。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | CSSC | PLL3RDYC | PLL2RDYC | PLLRDYC | HSERDYC | HSIRDYC | LSERYDC | LSIRYDC | Reserved | PLL3RDYIE | PLL2RDYIE | PLLRDYIE | HSERDYIE | HSIRDYIE | LSERYDIE | LSIRYDIE | CSSF | PLL3RDYF | PLL2RDYF | PLLRDYF | HSERDYF | HSIRDYF | LSERYDF | LSIRYDF | |||||||
| RO | WO | WO | WO | WO | WO | WO | WO | WO | RO | RW | RW | RW | RW | RW | RW | RW | RO | RO | RO | RO | RO | RO | RO | RO | |||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CSSC [WO]
クロックセキュリティシステム割り込みクリアフラグビット (CSSF)| 1 | CSSF割り込みフラグをクリアします |
| 0 | 影響なし |
PLL3RDYC [WO]
PLL3レディ割り込みクリアフラグビット| 1 | PLL3RDYF割り込みフラグをクリアします |
| 0 | 影響しません |
PLL2RDYC [WO]
PLL2レディ割り込みクリアフラグビット| 1 | PLL2RDYF割り込みフラグをクリアします |
| 0 | 影響しません |
PLLRDYC [WO]
PLLレディ割り込みクリアフラグビット| 1 | PLLRDYF割り込みフラグをクリアします |
| 0 | 影響しません |
HSERDYC [WO]
HSE発振器準備完了割り込みクリアフラグビット| 1 | HARDYF割り込みフラグをクリアします |
| 0 | 影響なし |
HSIRDYC [WO]
HSI発振器準備完了割り込みクリアフラグビット| 1 | HSIRDYF割り込みフラグをクリアします |
| 0 | 影響なし |
LSERDYC [WO]
LSE発振器準備完了割り込みクリアフラグビット| 1 | LSERDYF割り込みフラグをクリアします |
| 0 | 影響なし |
LSIRDYC [WO]
LSI発振器準備完了割り込みクリアフラグビット| 1 | LSIRDYF割り込みフラグをクリアします |
| 0 | 影響なし |
PLL3RDYIE [RW]
PLL3レディ割り込み有効化ビット| 1 | PLL3レディ割り込みを有効にする |
| 0 | PLL3レディ割り込みを無効にする |
PLL2RDYIE [RW]
PLL2レディ割り込み有効化ビット| 1 | PLL2レディ割り込みを有効にする |
| 0 | PLL2レディ割り込みを無効にする |
PLLRDYIE [RW]
PLLレディ割り込み有効化ビット| 1 | PLLレディ割り込みを有効にする |
| 0 | PLLレディ割り込みを無効にする |
HSERDYIE [RW]
HSEレディ割り込み有効化ビット| 1 | HSEレディ割り込みを有効にする |
| 0 | HSEレディ割り込みを無効にする |
HSIRDYIE [RW]
HSIレディ割り込み有効化ビット| 1 | HSIレディ割り込みを有効にする |
| 0 | HSIレディ割り込みを無効にする |
LSERDYIE [RW]
LSEレディ割り込み有効化ビット| 1 | LSEレディ割り込みを有効にする |
| 0 | LSEレディ割り込みを無効にする |
LSIRDYIE [RW]
LSIレディ割り込み有効化ビット| 1 | LSIレディ割り込みを有効にする |
| 0 | LSIレディ割り込みを無効にする |
CSSF [RO]
クロックセキュリティシステム割り込みフラグビット| 1 | HSEクロックに障害が発生し、クロックセキュリティシステム割り込み(CSSI)が生成されます |
| 0 | クロックセキュリティシステム割り込みは発生しません。ハードウェアによってセットされます。ソフトウェアでCSSCビットに1を書き込むとクリアされます。 |
PLL3RDYF [RO]
PLL3クロック準備完了割り込みフラグ| 1 | PLL3クロックによるクロック準備完了割り込み発生 |
| 0 | PLL3クロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでPLL3RDYCに1を書き込んでください。 |
PLL2RDYF [RO]
PLL2クロック準備完了割り込みフラグ| 1 | PLL2クロックによるクロック準備完了割り込み発生 |
| 0 | PLL2クロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでPLL2RDYCに1を書き込んでください。 |
PLLRDYF [RO]
PLLクロック準備完了割り込みフラグ| 1 | PLLクロックによるクロック準備完了割り込み発生 |
| 0 | PLLクロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでPLLRDYCに1を書き込んでください。 |
HSERDYF [RO]
HSEクロック準備完了割り込みフラグ| 1 | HSEクロックによるクロック準備完了割り込み発生 |
| 0 | HSEクロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでHSERDYCに1を書き込んでください。 |
HSIRDYF [RO]
HSIクロック準備完了割り込みフラグ| 1 | HSIクロックによるクロック準備完了割り込み発生 |
| 0 | HSIクロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでHSIRDYCに1を書き込んでください。 |
LSERDYF [RO]
LSEクロック準備完了割り込みフラグ| 1 | LSEクロックによるクロック準備完了割り込み発生 |
| 0 | LSEクロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでLSERDYCに1を書き込んでください。 |
LSIRDYF [RO]
LSIクロック準備完了割り込みフラグ| 1 | LSIクロックによるクロック準備完了割り込み発生 |
| 0 | LSIクロックによるクロック準備完了割り込みなし。ハードウェアによりセット。クリアするにはソフトウェアでLSIRDYCに1を書き込んでください。 |
3.5.4 APB2 周辺リセットレジスタ (RCC_APB2PRSTR)
APB2PRSTR =APB2 Peripheral ReSseT Register | Access base address 0x40021000 Offset address: 0x0C
■レジスター内容
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | TIM10RST | TIM9RST | Reserved | Reserved | USART1RST | TIM8RST | SPI1RST | TIM1RST | ADC2RST | ADC1RST | Reserved | IOPERST | IOPDRST | IOPCRST | IOPBRST | IOPARST | Reserved | AFIORST | |||||||||||||
| RO | RW | RW | RO | RO | RW | RW | RW | RW | RW | RW | RO | RW | RW | RW | RW | RW | RO | RW | |||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TIM10RST [RW]
TIM10 リセット| 1 | TIM10 をリセット |
| 0 | 影響なし |
TIM9RST [RW]
TIM9 リセット| 1 | TIM9 をリセット |
| 0 | 影響なし |
USART1RST [RW]
USART1 リセット| 1 | USART1 をリセット |
| 0 | 影響なし |
TIM8RST [RW]
TIM8 リセット| 1 | TIM8 をリセット |
| 0 | 影響なし |
SPI1RST [RW]
SPI1 リセット| 1 | SPI1 をリセット |
| 0 | 影響なし |
TIM1RST [RW]
TIM1 リセット| 1 | TIM1 をリセット |
| 0 | 影響なし |
ADC2RST [RW]
ADC2 リセット| 1 | ADC2 をリセット |
| 0 | 影響なし |
ADC1RST [RW]
ADC1 リセット| 1 | ADC1 をリセット |
| 0 | 影響なし |
IOPERST [RW]
IO port PE リセット| 1 | PE をリセット |
| 0 | 影響なし |
IOPDRST [RW]
IO port PD リセット| 1 | PD をリセット |
| 0 | 影響なし |
IOPCRST [RW]
IO port PC リセット| 1 | PC をリセット |
| 0 | 影響なし |
IOPBRST [RW]
IO port PB リセット| 1 | PB をリセット |
| 0 | 影響なし |
IOPARST [RW]
IO port PA リセット| 1 | PA をリセット |
| 0 | 影響なし |
AFIORST [RW]
代替機能IOリセット リセット| 1 | 代替機能をリセットします |
| 0 | 影響なし |
3.5.5 APB1 周辺リセットレジスタ (RCC_APB1PRSTR)
APB1PRSTR =APB1 Peripheral ReSet Register | Access base address 0x40021000 Offset address: 0x10
■レジスター内容
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | DACRST | PWRRST | BKPRST | CAN2RST | CAN1RST | Reserved | USBDRST | I2C2RST | 12C1RST | USART5RST | USART4RST | USART3RST | USART2RST | Reserved | SPI3RST | SPI2RST | Reserved | WWDGRST | Reserved | UART8RST | UART7RST | UART6RST | TIM7RST | TIM6RST | TIM5RST | TIM4RST | TIM3RST | TIM2RST | |||
| RO | RW | RW | RW | RW | RW | RO | RW | RW | RW | RW | RW | RW | RW | RO | RW | RW | RO | RW | RO | RW | RW | RW | RW | RW | RW | RW | RW | RW | |||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DACRST [RW]
DACモジュールのリセット| 1 | DACをリセットします |
| 0 | 効果なし |
PWRRST [RW]
電源インターフェースモジュールのリセット| 1 | 電源インターフェースをリセット |
| 0 | 効果なし |
BKPRST [RW]
バックアップインターフェースのリセット| 1 | バックアップインターフェースをリセットします |
| 0 | 効果なし |
CAN2RST [RW]
CAN2モジュールのリセット| 1 | CAN2をリセットします |
| 0 | 効果なし |
CAN1RST [RW]
CAN1モジュールのリセット| 1 | CAN1をリセットします |
| 0 | 効果なし |
USBDRST [RW]
USBDモジュールのリセット| 1 | USBDをリセットします |
| 0 | 効果なし |
I2C2RST [RW]
I2C2インターフェースのリセット| 1 | I2C2をリセットします |
| 0 | 効果なし |
I2C1RST [RW]
I2C1インターフェースのリセット| 1 | I2C1をリセットします |
| 0 | 効果なし |
USART5RST [RW]
USART5インターフェースのリセット| 1 | USART5をリセットします |
| 0 | 効果なし |
USART4RST [RW]
USART4インターフェースのリセット| 1 | USART4をリセットします |
| 0 | 効果なし |
USART3RST [RW]
USART3インターフェースのリセット| 1 | USART3をリセットします |
| 0 | 効果なし |
USART2RST [RW]
USART2インターフェースのリセット| 1 | USART2をリセットします |
| 0 | 効果なし |
SPI3RST [RW]
SPI3インターフェースのリセット| 1 | SPI3をリセットします |
| 0 | 効果なし |
SPI2RST [RW]
SPI2インターフェースのリセット| 1 | SPI2をリセットします |
| 0 | 効果なし |
WWDGRST [RW]
ウィンドウウォッチドッグのリセット| 1 | ウィンドウウォッチドッグをリセットします |
| 0 | 効果なし |
USART8RST [RW]
USART8インターフェースのリセット| 1 | USART8をリセットします |
| 0 | 効果なし |
USART7RST [RW]
USART7インターフェースのリセット| 1 | USART7をリセットします |
| 0 | 効果なし |
USART6RST [RW]
USART6インターフェースのリセット| 1 | USART6をリセットします |
| 0 | 効果なし |
TIM7RST [RW]
Timer7モジュールのリセット| 1 | Timer7をリセットします |
| 0 | 効果なし |
TIM6RST [RW]
Timer6モジュールのリセット| 1 | Timer6をリセットします |
| 0 | 効果なし |
TIM5RST [RW]
Timer5モジュールのリセット| 1 | Timer5をリセットします |
| 0 | 効果なし |
TIM4RST [RW]
Timer4モジュールのリセット| 1 | Timer4をリセットします |
| 0 | 効果なし |
TIM3RST [RW]
Timer3モジュールのリセット| 1 | Timer3をリセットします |
| 0 | 効果なし |
TIM2RST [RW]
Timer2モジュールのリセット| 1 | Timer2をリセットします |
| 0 | 効果なし |
3.5.6 AHBペリフェラルクロックイネーブルレジスタ(RCC_AHBPCENR)
AHBPCENR =AHB Peripheral Clock ENable Register | Access base address 0x40021000 Offset address: 0x14
■レジスター内容
注意:ペリフェラルクロックが有効になっていない場合、ペリフェラルレジスタの値はソフトウェアで読み取ることができず、返される値は常に 0 になります。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | ETHMACRXEN | ETHMACTXEN | ETHMACEN | DVPEN | OTGEN | USBHSEN | SDIOEN | RNGEN | FSMCEN | Reserved | CRCEN | Reserved | SRAMEN | DMA2EN | DMA1EN | ||||||||||||||||
| RO | RW | RW | RW | RW | RW | RW | RW | RW | RW | RO | RW | RO | RW | RW | RW | ||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
ETHMACRXEN [RW]
Ethernet MAC 受信クロックの有効化| 1 | Ethernet MAC 受信クロックが有効 |
| 0 | Ethernet MAC 受信クロックが無効 |
ETHMACTXEN [RW]
Ethernet MAC 送信クロックの有効化| 1 | Ethernet MAC 送信クロックが有効 |
| 0 | Ethernet MAC 送信クロックが無効 |
ETHMACEN [RW]
Ethernet MAC クロックの有効化| 1 | Ethernet MAC クロックが有効 |
| 0 | Ethernet MAC クロックが無効 |
DVPEN [RW]
CVPモジュールクロックの有効化| 1 | DVPクロックが有効 |
| 0 | DVPクロックが無効 |
OTGEN [RW]
USBOTGモジュールクロックの有効化| 1 | USBOTGクロックが有効 |
| 0 | USBOTGクロックが無効 |
USBHSEN [RW]
USBHSモジュールクロックの有効化| 1 | USBHSクロックが有効 |
| 0 | USBHSクロックが無効 |
SDIOEN [RW]
SDIOモジュールクロックの有効化| 1 | SDIOクロックが有効 |
| 0 | SDIOクロックが無効 |
RNGEN [RW]
RNGモジュールクロックの有効化| 1 | RNGクロックが有効 |
| 0 | RNGクロックが無効 |
FSMCEN [RW]
FSMCENモジュールクロックの有効化| 1 | FSMCENクロックが有効 |
| 0 | FSMCENクロックが無効 |
CRCEN [RW]
CRCモジュールクロックの有効化| 1 | CRCクロックが有効 |
| 0 | CRCクロックが無効 |
SRAMEN [RW]
SRAMインターフェースクロックの有効化| 1 | スリープモードでは、SRAMインターフェースクロックが有効です |
| 0 | スリープモードでは、SRAMインターフェースクロックが無効です |
DMA2EN [RW]
DMA2モジュールクロックの有効化| 1 | DMA2クロックが有効 |
| 0 | DMA2クロックが無効 |
DMA1EN [RW]
DMA1モジュールクロックの有効化| 1 | DMA1クロックが有効 |
| 0 | DMA1クロックが無効 |
3.5.7 APB2 周辺クロック有効化レジスタ (RCC_APB2PCENR)
APB2PCENR =APB2 Peripheral Clock ENable Register | Access base address 0x40021000 Offset address: 0x18
■レジスター内容
注意:ペリフェラルクロックが有効になっていない場合、ペリフェラルレジスタの値はソフトウェアで読み取ることができず、返される値は常に 0 になります。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | TIM10EN | TIM9EN | Reserved | Reserved | USART1EN | TIM8EN | SPI1EN | TIM1EN | ADC2EN | ADC1EN | Reserved | IOPEEN | IOPDEN | IOPCEN | IOPBEN | IOPAEN | Reserved | AFIOEN | |||||||||||||
| RO | RW | RW | RO | RO | RW | RW | RW | RW | RW | RW | RO | RW | RW | RW | RW | RW | RO | RW | |||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TIM10EN [RW]
TIM10 インターフェースクロック有効化ビット| 1 | TIM10クロック有効化 |
| 0 | クロック無効化 |
TIM9EN [RW]
TIM9 インターフェースクロック有効化ビット| 1 | TIM9クロック有効化 |
| 0 | クロック無効化 |
USART1EN [RW]
USART1 インターフェースクロック有効化ビット| 1 | USART1クロック有効化 |
| 0 | USART1クロック無効化 |
TIM8EN [RW]
TIM8 インターフェースクロック有効化ビット| 1 | TIM8クロック有効化 |
| 0 | TIM8クロック無効化 |
SPI1EN [RW]
SPI1 インターフェースクロック有効化ビット| 1 | SPI1クロック有効化 |
| 0 | SPI1クロック無効化 |
TIM1EN [RW]
TIM1 インターフェースクロック有効化ビット| 1 | TIM1クロック有効化 |
| 0 | TIM1クロック無効化 |
ADC2EN [RW]
ADC2 モジュールクロック有効化ビット| 1 | ADC2クロック有効化 |
| 0 | ADC2クロック無効化 |
ADC1EN [RW]
ADC1 モジュールクロック有効化ビット| 1 | ADC1クロック有効化 |
| 0 | ADC1クロック無効化 |
IOPEEN [RW]
IO port PE クロック有効化ビット| 1 | PEクロック有効化 |
| 0 | PEクロック無効化 |
IOPDEN [RW]
IO port PD クロック有効化ビット| 1 | PDクロック有効化 |
| 0 | PDクロック無効化 |
IOPCEN [RW]
IO port PC クロック有効化ビット| 1 | PCクロック有効化 |
| 0 | PCクロック無効化 |
IOPBEN [RW]
IO port PB クロック有効化ビット| 1 | PBクロック有効化 |
| 0 | PBクロック無効化 |
IOPAEN [RW]
IO port PA クロック有効化ビット| 1 | PAクロック有効化 |
| 0 | PAクロック無効化 |
AFIOEN [RW]
代替機能 IO クロック有効化ビット| 1 | 代替機能 IO クロックが有効化 |
| 0 | 代替機能 IO クロックが無効化 |
3.5.8 APB1 周辺クロック有効化レジスタ (RCC_APB1PCENR)
APB1PCENR =APB1 Peripheral Clock ENable Register | Access base address 0x40021000 Offset address: 0x1C
■レジスター内容
注意:ペリフェラルクロックが有効になっていない場合、ペリフェラルレジスタの値はソフトウェアで読み取ることができず、返される値は常に 0 になります。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | DACEN | PWREN | BKPEN | CAN2EN | CAN1EN | Reserved | USBDEN | I2C2EN | 12C1EN | USART5EN | USART4EN | USART3EN | USART2EN | Reserved | SPI3EN | SPI2EN | Reserved | WWDGEN | Reserved | UART8EN | UART7EN | UART6EN | TIM7EN | TIM6EN | TIM5EN | TIM4EN | TIM3EN | TIM2EN | |||
| RO | RW | RW | RW | RW | RW | RO | RW | RW | RW | RW | RW | RW | RW | RO | RW | RW | RO | RW | RO | RW | RW | RW | RW | RW | RW | RW | RW | RW | |||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DACEN [RW]
DACモジュールクロック有効化ビット| 1 | DACクロック有効化 |
| 0 | DACクロック無効化 |
PWREN [RW]
電源インターフェースクロック有効化ビット| 1 | 電源インターフェースクロック有効化 |
| 0 | 電源インターフェースクロック無効化 |
BKPEN [RW]
バックアップインターフェースのリセット| 1 | バックアップインターフェースクロック有効化 |
| 0 | バックアップインターフェースクロック無効化 |
CAN2EN [RW]
CAN2モジュールクロック有効化ビット| 1 | CAN2クロック有効化 |
| 0 | CAN2クロック無効化 |
CAN1EN [RW]
CAN1モジュールクロック有効化ビット| 1 | CAN1クロック有効化 |
| 0 | CAN1クロック無効化 |
USBDEN [RW]
USBDモジュールクロック有効化ビット| 1 | USBDクロック有効化 |
| 0 | USBDクロック無効化 |
I2C2EN [RW]
I2C2インターフェースクロック有効化ビット| 1 | I2C2クロック有効化 |
| 0 | クI2C2ロック無効化 |
I2C1EN [RW]
I2C1インターフェースクロック有効化ビット| 1 | I2C1クロック有効化 |
| 0 | I2C1クロック無効化 |
USART5EN [RW]
USART5インターフェースクロック有効化ビット| 1 | USART5クロック有効化 |
| 0 | USART5クロック無効化 |
USART4EN [RW]
USART4インターフェースクロック有効化ビット| 1 | USART4クロック有効化 |
| 0 | USART4クロック無効化 |
USART3EN [RW]
USART3インターフェースクロック有効化ビット| 1 | USART3クロック有効化 |
| 0 | USART3クロック無効化 |
USART2EN [RW]
USART2インターフェースクロック有効化ビット| 1 | USART2クロック有効化 |
| 0 | USART2クロック無効化 |
SPI3EN [RW]
SPI3インターフェースクロック有効化ビット| 1 | SPI3クロック有効化 |
| 0 | SPI3クロック無効化 |
SPI2EN [RW]
SPI2インターフェースクロック有効化ビット| 1 | SPI2クロック有効化 |
| 0 | SPI2クロック無効化 |
WWDGEN [RW]
ウィンドウウォッチドッグクロック有効化ビット| 1 | ウィンドウウォッチドッグクロック有効化 |
| 0 | ウィンドウウォッチドッグクロック無効化 |
USART8EN [RW]
USART8インターフェースクロック有効化ビット| 1 | USART8クロック有効化 |
| 0 | USART8クロック無効化 |
USART7EN [RW]
USART7インターフェースクロック有効化ビット| 1 | USART7クロック有効化 |
| 0 | USART7クロック無効化 |
USART6EN [RW]
USART6インターフェースクロック有効化ビット| 1 | USART6クロック有効化 |
| 0 | USART6クロック無効化 |
TIM7EN [RW]
Timer7モジュールクロック有効化ビット| 1 | Timer7クロック有効化 |
| 0 | Timer7クロック無効化 |
TIM6EN [RW]
Timer6モジュールクロック有効化ビット| 1 | Timer6クロック有効化 |
| 0 | Timer6クロック無効化 |
TIM5EN [RW]
Timer5モジュールクロック有効化ビット| 1 | Timer5クロック有効化 |
| 0 | Timer5クロック無効化 |
TIM4EN [RW]
Timer4モジュールクロック有効化ビット| 1 | Timer4クロック有効化 |
| 0 | Timer4クロック無効化 |
TIM3EN [RW]
Timer3モジュールクロック有効化ビット| 1 | Timer3クロック有効化 |
| 0 | Timer3クロック無効化 |
TIM2EN [RW]
Timer2モジュールクロック有効化ビット| 1 | Timer2クロック有効化 |
| 0 | Timer2クロック無効化 |
3.5.9 バックアップドメイン制御レジスタ (RCC_BDCTLR)
BDCTLR =Backup Domain ConTroL Register | Access base address 0x40021000 Offset address: 0x20
■レジスター内容
注:RTCクロックは、RTCSEL!=0の場合にのみ有効化できます。
それ以外の場合は、ハードウェアによって強制的に0に設定されます。
注:RTCクロックソースを選択(RTCEN=1)すると、次にバックアップドメインがリセットされるまで変更できません。
BDRSTビットをセットすることでデフォルトに戻すことができます。
注:このビットは、LSEON が 0 の場合にのみ書き込み可能です。
注:LSEONビットがクリアされた後、このビットをクリアするにはLSEクロックの6サイクルかかります。
注:バックアップドメイン制御レジスタ(RCC_BDCTLR)のLSEON、LSEBYP、RTCSEL、およびRTCENビットはバックアップドメインにあります。
したがって、これらのビットはリセット後に書き込み保護状態となり、電源制御レジスタ(PWR_CR)のDBPビットが1に設定された後にのみ変更できます。
これらのビットはバックアップドメインのリセットによってのみクリアされます。
内部リセットまたは外部リセットはこれらのビットに影響を与えません。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | BDRST | RTCEN | Reserved | RTCSEL | Reserved | LSEBYP | LSERDY | LSEON | |||||||||||||||||||||||
| RO | RW | RW | RO | RW | RO | RW | RO | RW | |||||||||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
BDRST [RW]
バックアップドメインソフトウェアリセット制御| 1 | バックアップドメイン全体をリセットします |
| 0 | リセットを無効にします |
RTCEN [RW]
RTCクロック有効化制御| 1 | RTCクロック有効化 |
| 0 | RTCクロック無効化 |
それ以外の場合は、ハードウェアによって強制的に0に設定されます。
RTCSEL [RW]
RTCクロックソースの選択| 00 | クロックなし |
| 01 | LSE発振器クロック |
| 10 | LSI発振器クロック |
| 11 | HSE発振器クロックの128分周 |
BDRSTビットをセットすることでデフォルトに戻すことができます。
LSEBYP [RW]
外部低速発振器(LSE)バイパス制御ビット| 1 | 外部低速水晶/セラミック共振器をバイパス(外部クロックソースを使用) |
| 0 | 外部低速水晶/セラミック共振器をバイパスしない |
LSERDY [RO]
外部低速発振器準備完了フラグビット(ハードウェアによってセット)| 1 | 外部低速発振器準備完了 |
| 0 | 外部低速発振器準備完了ではない |
LSEON [RW]
外部低速水晶発振器有効化制御ビット| 1 | LSE発振器有効化 |
| 0 | LSE発振器無効化 |
したがって、これらのビットはリセット後に書き込み保護状態となり、電源制御レジスタ(PWR_CR)のDBPビットが1に設定された後にのみ変更できます。
これらのビットはバックアップドメインのリセットによってのみクリアされます。
内部リセットまたは外部リセットはこれらのビットに影響を与えません。
3.5.10 制御/ステータスレジスタ(RCC_RSTSCKR)
RSTSCKR =Control/Status Register | Access base address 0x40021000 Offset address: 0x04
■レジスター内容
低電力管理リセット発生時、ハードウェアによってセットされます。
ソフトウェアでRMVFビットに書き込むことでクリアされます。
ウィンドウウォッチドッグリセットが発生すると、ハードウェアによってセットされます。
ソフトウェアでRMVFビットに書き込むとクリアされます。
独立ウォッチドッグリセット発生時、ハードウェアによってセットされます。
ソフトウェアでRMVFビットに書き込むことでクリアされます。
ソフトウェアリセット発生時、ハードウェアによってセットされます。
ソフトウェアによるRMVFビットへの書き込みによってクリアされます。
パワーオン/パワーダウンリセット発生中はハードウェアによってセットされます。
ソフトウェアでRMVFビットに書き込むことでクリアされます。
NRSTピンリセット中はハードウェアによってセットされます。
ソフトウェアによるRMVFビットへの書き込みによってクリアされます。
注:LSIONビットがクリアされた後、このビットをクリアするにはLSIクロックの3サイクルかかります。
注意: リセット フラグはパワーオン リセットによってのみクリアできますが、その他はシステム リセットによってクリアできます。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LPWRRSTF | WWDGRSTF | IWDGRSTF | SFTRTF | PORRSTF | PINRSTF | Reserved | RMVF | Reserved | Reserved | LSIRDY | LSION | ||||||||||||||||||||
| RO | RO | RO | RO | RO | RO | RO | WO | RO | RO | RO | RW | ||||||||||||||||||||
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
LPWRRSTF [RO]
低電力リセットフラグ| 1 | 低電力リセット発生 |
| 0 | 低電力リセット未発生 |
ソフトウェアでRMVFビットに書き込むことでクリアされます。
WWDGRSTF [RO]
ウィンドウウォッチドッグリセットフラグ| 1 | ウィンドウウォッチドッグリセットが発生しました |
| 0 | ウィンドウウォッチドッグリセットは発生していません |
ソフトウェアでRMVFビットに書き込むとクリアされます。
IWDGRSTF [RO]
独立ウォッチドッグリセットフラグ| 1 | 独立ウォッチドッグリセット発生 |
| 0 | 独立ウォッチドッグリセット未発生 |
ソフトウェアでRMVFビットに書き込むことでクリアされます。
SFTRSTF [RO]
ソフトウェアリセットフラグ| 1 | ソフトウェアリセット発生 |
| 0 | ソフトウェアリセット未発生 |
ソフトウェアによるRMVFビットへの書き込みによってクリアされます。
PORRSTF [RO]
パワーオン/パワーダウンリセットフラグ| 1 | パワーオン/パワーダウンリセット発生 |
| 0 | パワーオン/パワーダウンリセット未発生 |
ソフトウェアでRMVFビットに書き込むことでクリアされます。
PINRSTF [RO]
外部手動リセット(NRSTピン)フラグ| 1 | NRSTピンリセット発生 |
| 0 | NRSTピンリセット未発生 |
ソフトウェアによるRMVFビットへの書き込みによってクリアされます。
RMVF [WO]
リセットフラグクリア制御| 1 | リセットフラグをクリアします |
| 0 | 影響はありません |
LSIRDY [RO]
内部低速クロック(LSI)準備完了フラグビット(ハードウェアによってセット)| 1 | 内部低速クロック(40kHz)準備完了 |
| 0 | 内部低速クロック(40kHz)準備完了ではない |
LSION [RW]
内部低速クロック(LSI)有効化制御ビット| 1 | LSI(40kHz)発振器有効化 |
| 0 | LSI(40kHz)発振器無効化 |
3.5.11 AHBペリフェラルリセットレジスタ(RCC_AHBRSTR)
AHBRSTR =AHB peripheral ReSeT Register | Access base address 0x40021000 Offset address: 0x28
■レジスター内容
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | ETHMACRST | DVPRST | USBHDRST | Reserved | |||||||||||||||||||||||||||
| RO | RW | RO | RW | RO | |||||||||||||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ETHMACRST [RW]
Ethernet MACリセット制御| 1 | Ethernet MACをリセットする |
| 0 | 影響なし |
DVPRST [RO]
DVPリセット制御| 1 | DVPをリセットします |
| 0 | 影響なし |
USBHDRST [RW]
USBHDモジュールのリセット制御| 1 | USBHDをリセット |
| 0 | 影響なし |
3.5.12 クロック構成レジスタ(RCC_CFGR2)
CFGR2 =clock ConFiGuration Register | Access base address 0x40021000 Offset address: 0x2C
■レジスター内容
注:ビット0はRCC_CFGR0レジスタのビット17と同じです。
RCC_CFGR0レジスタのビット17が変更されると、このレジスタのビット0も変更されます。
注: CH32F20x_D8C および CH32V30x_D8C に適用されます。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| USB_CLK_SRC | USBHS_PLLALIVE | USBHS_CKREFSEL | USBHS_PLL_SRC | USBHS_PREDIV | Reserved | ETH1G_125M_EN | ETH1G_SRC | RNG_SRC | I2S3SRC | I2S2SRC | PREDIV1SRC | PLL3MUL | PLL2MUL | PREDIV2 | PREDIV1 | ||||||||||||||||
| RW | RW | RW | RW | RW | RO | RW | RW | RW | RW | RW | RW | RW | RW | RW | RW | ||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
USB_CLK_SRC [RW]
USB 48MHz クロックソースの選択| 1 | USB PHY |
| 0 | PLLCLK |
USBHS_PLLALIVE [RW]
USBHS PHY内部PLL制御ビット| 1 | USB PHY内部PLL有効 |
| 0 | USB PHY内部PLL無効 |
USBHS_CKREFSEL [RW]
USBHS PLLリファレンスクロックの選択 (USBHS_PLL_SRC/USBHS_PREDIV)| 00 | 3MHz |
| 01 | 4MHz |
| 10 | 8MHz |
| 11 | 5MHz |
USBHS_PLL_SRC [RW]
USBHS PLLリファレンスソースの選択| 1 | HSI |
| 0 | HSE |
USBHS_PREDIV [RW]
USBHS PLLプリスケーラ| 000 | 分周なし |
| 001 | 2分周 |
| 010 | 3分周 |
| 011 | 4分周 |
| 100 | 5分周 |
| 101 | 6分周 |
| 110 | 7分周 |
| 111 | 8分周 |
ETH1G_125M_EN [RW]
ギガビットイーサネット 125M クロック有効化ビット| 1 | 有効 |
| 0 | 無効 |
ETH1G_SRC [RW]
ギガビットイーサネット 125M クロック選択| 00 | PLL2 VCO |
| 01 | PLL3 VCO |
| 1x | 外部PB1ピン入力 |
RNG_SRC [RW]
RNGクロックソースの選択| 1 | PLL3 VCO |
| 0 | システムクロック |
I2S3SRC [RW]
I2S3クロックソース| 1 | PLL3VCO |
| 0 | システムクロック(SYSCLK) |
I2S2SRC [RW]
I2S2クロックソース| 1 | PLL3VCO |
| 0 | システムクロック(SYSCLK) |
PREDIV1SRC [RW]
PREDIV1 クロックソース| 1 | PLL2 |
| 0 | HSE |
PLL3MUL [RW]
PLL3の乗算係数(これらのビットはPLL3が無効の場合にのみ書き込むことができます)| 0000 | PLL3入力クロック x2.5 |
| 0001 | PLL3入力クロック x2.5 |
| 0010 | PLL3入力クロック x4 |
| 0011 | PLL3入力クロック x5 |
| 0100 | PLL3入力クロック x6 |
| 0101 | PLL3入力クロック x7 |
| 0110 | PLL3入力クロック x8 |
| 0111 | PLL3入力クロック x9 |
| 1000 | PLL3入力クロック x10 |
| 1001 | PLL3入力クロック x11 |
| 1010 | PLL3入力クロック x12 |
| 1011 | PLL3入力クロック x13 |
| 1100 | PLL3入力クロック x14 |
| 1101 | PLL3入力クロック x15 |
| 1110 | PLL3入力クロック x16 |
| 1111 | PLL3入力クロック x20 |
PLL2MUL [RW]
PLL2の乗算係数(これらのビットはPLL2が無効の場合にのみ書き込むことができます)| 0000 | PLL2入力クロック x2.5 |
| 0001 | PLL2入力クロック x2.5 |
| 0010 | PLL2入力クロック x4 |
| 0011 | PLL2入力クロック x5 |
| 0100 | PLL2入力クロック x6 |
| 0101 | PLL2入力クロック x7 |
| 0110 | PLL2入力クロック x8 |
| 0111 | PLL2入力クロック x9 |
| 1000 | PLL2入力クロック x10 |
| 1001 | PLL2入力クロック x11 |
| 1010 | PLL2入力クロック x12 |
| 1011 | PLL2入力クロック x13 |
| 1100 | PLL2入力クロック x14 |
| 1101 | PLL2入力クロック x15 |
| 1110 | PLL2入力クロック x16 |
| 1111 | PLL2入力クロック x20 |
PREDIV2 [RW]
PREDIV2 プリスケーラ係数(これらのビットは、PLL2 と PLL3 が両方とも無効の場合にのみ書き込み可能です)| 0000 | PREDIV2 を分周しません |
| 0001 | PREDIV2 入力クロックを 2分周します |
| 0010 | PREDIV2 入力クロックを 3分周します |
| 0011 | PREDIV2 入力クロックを 4分周します |
| 0100 | PREDIV2 入力クロックを 5分周します |
| 0101 | PREDIV2 入力クロックを 6分周します |
| 0110 | PREDIV2 入力クロックを 7分周します |
| 0111 | PREDIV2 入力クロックを 8分周します |
| 1000 | PREDIV2 入力クロックを 9分周します |
| 1001 | PREDIV2 入力クロックを 10分周します |
| 1010 | PREDIV2 入力クロックを 11分周します |
| 1011 | PREDIV2 入力クロックを 12分周します |
| 1100 | PREDIV2 入力クロックを 13分周します |
| 1101 | PREDIV2 入力クロックを 14分周します |
| 1110 | PREDIV2 入力クロックを 15分周します |
| 1111 | PREDIV2 入力クロックを 16分周します |
PREDIV1 [RW]
PREDIV1 分周係数(これらのビットは PLL が無効の場合にのみ書き込むことができます)| 0000 | PREDIV1 を分周しません |
| 0001 | PREDIV1 入力クロックを 2分周します |
| 0010 | PREDIV1 入力クロックを 3分周します |
| 0011 | PREDIV1 入力クロックを 4分周します |
| 0100 | PREDIV1 入力クロックを 5分周します |
| 0101 | PREDIV1 入力クロックを 6分周します |
| 0110 | PREDIV1 入力クロックを 7分周します |
| 0111 | PREDIV1 入力クロックを 8分周します |
| 1000 | PREDIV1 入力クロックを 9分周します |
| 1001 | PREDIV1 入力クロックを 10分周します |
| 1010 | PREDIV1 入力クロックを 11分周します |
| 1011 | PREDIV1 入力クロックを 12分周します |
| 1100 | PREDIV1 入力クロックを 13分周します |
| 1101 | PREDIV1 入力クロックを 14分周します |
| 1110 | PREDIV1 入力クロックを 15分周します |
| 1111 | PREDIV1 入力クロックを 16分周します |
RCC_CFGR0レジスタのビット17が変更されると、このレジスタのビット0も変更されます。
注: CH32F20x_D8C および CH32V30x_D8C に適用されます。
3.5.13 拡張制御レジスタ(EXTEND_CTR)
EXTEND_CTR =EXTEND ConTrol Register | Access base address 0x40023800 Offset address: 0x00
■レジスター内容
注:CH32V20x_D8、CH32V20x_D8W、CH32F20x_D8Wに適用されます。
注: CH32F20x_D8C および CH32V30x_D8C に適用されます。
注:CH32F20x_D8C、CH32V30x_D8C、CH32V20x_D8 CH32V20x_D8W, CH32F20x_D8W, CH32F20x_D8 に適用されます。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | HSE_KEEP_LP | LDOTRIM | ULLDOTRIM | LKUPRESET | LKUPEN | Reserved | HSIPRE | ETH_RGMⅡ | ETH_10M | USBDPU | USBDLS | ||||||||||||||||||||
| RO | RW | RW | RW | RW1 | RW | RW | RW | RW | RW | RW | RW | ||||||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
HSE_KEEP_LP [RW]
低消費電力モードにおけるHSE発振制御ビット| 1 | HSEは低消費電力モード時も発振を継続します |
| 0 | HSEは低消費電力モード時も発振を停止します |
LDOTRIM [RW]
LDO電圧トリミングULLDOTRIM [RW]
ULLDO電圧トリミングLKUPRESET [RW]
LOCKUPリセットフラグ| 1 | LOCKUPによるシステムリセット。1を書き込むことでクリアされます |
| 0 | Normal |
LKUPEN [RW]
LOCKUP検出機能| 1 | 有効:システムロックアップが発生すると、LOCKUP_RESETビットをリセットしてセットします |
| 0 | 無効 |
HSIPRE [RW]
HISクロック分周器:(このビットはPLLが無効の場合にのみ書き込み可能)| 1 | HSIクロックがPLL入力クロックとして選択される |
| 0 | HISクロックの2分周がPLL入力クロックとして選択される |
ETH_RGMII [RW]
1000M Ethernet RGMII インターフェースの有効化| 1 | 1000M Ethernet RGMII インターフェースを有効化 |
| 0 | 無効化 |
ETH_10M [RW]
10M Ethernet 有効| 1 | 10M Ethernet 有効 |
| 0 | 無効 |
USBDPU [RW]
USBD内部プルアップ抵抗の有効化| 1 | 有効(外付けプルアップ抵抗不要) |
| 0 | 無効(外付けプルアップ抵抗必要) |
USBDLS [RW]
USBD動作モードの選択| 1 | 低速モード |
| 0 | 全速モード |
