STM32WB - CRS
クロックリカバリシステム（CRS）

1.0 版

STM32WB クロックリカバリシステムのプレゼンテーションにようこそ。USB クロック周波数の精度制御に用いられるこのモジュールの主な機能の説明を行います。

1

概要• CRS の目的
• 外部レゾネータコンポーネントを必要とせずに、USB 通信に十分な精度のクロック信号を得ることをゴールとしています。
• USB トラフィックは、基準タイミングとして、より正確には、1ms ごとに生成されるフレーム開始（SOF）として用いられます。

2• CRS の機能
• HSI 48MHz クロックの動作中トリミング• HSI のみで USB デバイス要件を満足する高精度性• 柔軟性の高い警告とエラーの制御• 補正処理のために割込みまたはイベントを生成可能

アプリケーション側の利点• クリスタルを使用しない USB デバイスアプリ
ケーションが可能• BOM、アプリケーションファームウェア、PCB
レイアウトが単純化

クロックリカバリシステムの目的は、外部レゾネータコンポーネントを必要とせずに、単純に USB トラフィック を基準タイミングとして使用することで、USB モジュールが使用するのに十分な精度のクロック信号を得ることです。
このペリフェラルの主な機能は、その高精度を活用して、USB プロトコル要件を満たし、あらゆる潜在的問題を追跡するために十分な情報をユーザが早期段階で得られるように、内部オシレータを動作中に調整可能な能力です。

2

主な機能

3

• 次のプログラム可能なプリスケーラと極性を持つ、選択可能な同期ソース：• 外部ピン、LSE オシレータ出力、または USB SOF パケット受信• ソフトウェアによって同期パルスを生成する可能性• CPU 不要の自動オシレータトリミング機能• より迅速なスタートアップのための手動制御オプション• 自動誤差値のキャプチャとリロードが可能な、16bit の周波数誤差カウンタ• 自動周波数誤差値の評価とステータスレポートの、プログラム可能な制限値• マスク可能な割込み／イベント：• 期待される同期（ESYNC）、同期 OK（SYNCOK）、同期警告（SYNCWARN）、同期またはトリミングエラー（ERR）

主な機能：
次のプログラム可能なプリスケーラと極性を持つ、選択可能な同期ソース：外部ピン、LSE オシレータ出力、または USB
SOF パケット受信
ソフトウェアによって同期パルスを生成する可能性
CPU 不要の自動オシレータトリミング機能
より迅速なスタートアップのための手動制御オプション
自動誤差値のキャプチャとリロードが可能な、16bitの周波数
誤差カウンタ
自動周波数誤差値の評価とステータスレポートの、プログラ
ム可能な制限値マスク可能な割込み／イベント：期待される同期（ESYNC）、同期 OK（SYNCOK）、同期警告（SYNCWARN）、同期またはトリミングエラー（ERR）

3

CRS ブロック図4• HSI 48MHz クロックの基準信号はさまざまなソースから選択可能• この基準信号（SYNC）は、16bit カウンタのリロードと、前回カウントダウン値のキャプチャに用いられます。この値に応じて、可能な限り精度の高い周波数を得るために HSI
48MHz クロックが微調整されます。

• 3 種類の可能な入力：• GPIO への外部信号• 32kHz クリスタルオシレータ

GPIO
SYNCSRC

OSC32_IN
OSC32_OUTLSE

SYNC 分周器(/2、/4、/8、/16、/32、/64、/128）

SYNC• USB フレーム開始信号
USB_DPUSB

RELOAD
レジスタ

16bit カウンタ

USB_DM

RC 48MHzCRS TRIM

クロックリカバリシステムには次の 3 種類のソースが選択可能です。
• GPIO への外部信号• 32kHz クリスタル• USB フレーム開始信号をクロックソースとして用いて、HSI
48MHz オシレータを較正する基準信号を生成可能
この基準信号（SYNC）は、16bitカウンタのリロードと、実際のカウントダウン値のキャプチャに用いられます。この値に応じて、可能な限り精度の高い周波数を得るために HSI
48MHz クロック周波数（HSI48）が微調整されます。

4

USB フレーム開始信号に対する CRS の動作• CRS カウンタ値は、SYNC イベントのたびにRELOAD 値にリロードされます。ゼロに達するまでカウントダウンした後に、OUTRANGE 制限によって最終的に停止する（SYNC イベントが受信されない場合）までカウントアップし、SYNCMISSイベントを生成します。

5CRS カウンタ値
RELOADSYNCOK（TRIM は-1 だけ微修正）• SYNC イベントを受信したときに、カウンタが
OUTRANGE 制限を超えていればエラーを、警
告制限を超えていれば警告を、周波数誤差制限（FELIM）未満であれば SYNCOK を CRS は生成します。

OUTRANGE（128 x FELIM）• FELIM は周波数誤差制限を示します。CRS カウ
ンタ値がこの閾値を超えている場合、HSI 48MHz
クロック周波数を微調整するために、ユーザトリムビットフィールド（TRIM）が更新されます。

WARNING LIMIT（3 x FELIM）
FELIM
TRIM ステップ更新

0+2

SYNCERRSYNCWARNSYNCイベント+10-1-2

SYNCOK SYNCWARNSYNCイベント

USB SOF 基準 1kHz
HSI 48 MHz

CRS カウンタ値は、SYNC イベントのたびに RELOAD 値にリロードされます。ゼロに達するまでカウントダウンします。
次に、OUTRANGE 制限によって最終的に停止する（その前に SYNC イベントが受信されない場合）までカウントアップし、SYNCMISS イベントを生成します。
カウンタが OUTRANGE 未満であるときに SYNC イベントを受信すると、FELIM[7:0] 値によっては、最終的に HSI48 が微調整されます。
CRS カウンタ値が FELIM 制限未満である場合、トリミング動作は行われません。
FELIM の 3 倍から FELIM までの間である場合、TRIM bitフィールドは、カウンタの方向に従って 1 だけインクリメントまたはデクリメントされます。
CRS カウンタ値が FELIM の 128 倍から FELIM の 3 倍 までの間である場合、TRIM bitフィールドは、2TRIM ステップだけインクリメントまたはデクリメントされます。

5

割込みと低電力モード• チャネルごとの割込みイベント
割込みイベント

説明期待される同期カウンタがゼロに達してカウントアップを開始したときにセット同期 OK期待されるタイムウィンドウ内に SYNC イベントが受信されたときにセット同期警告

OK ウィンドウのマージンの中で SYNC イベントが受信されたが、エラー範囲ではない
ときにセット同期またはトリミングエラー（TRIMOVF、SYNCMISS、SYNCERR）
SYNC イベントの受信が早過ぎたか、全く受信されなかったか、更新後に TRIM bit
フィールドがオーバーフローした場合にセット• CRS は RUN モードと STOP モードで動作。他のモードでは HSI48 が停止。

クロックリカバリシステムによって、以下の割込みをアクティブ化できます。
カウンタがゼロに達してカウントアップを開始したときに、期待される同期がセットされます。
期待されるタイムウィンドウ内に SYNC イベントが受信されたときに、同期 OK がセットされます。
OK ウィンドウのマージンの中で SYNC イベントが受信されたが、エラー範囲ではないときに、同期警告がセットされます。
SYNC イベントの受信が早過ぎたか、全く受信されなかった
か、更新後に TRIM bitフィールドがオーバーフローした場合に、同期またはトリミングエラー（TRIMOVF、 SYNCMISS、SYNCERR）がセットされます。

6

関連ペリフェラル

7• 詳細については、このペリフェラルにリンクされているこれらのトレーニングを参照してください。
• ユニバーサルシリアルバスフルスピードデバイスインタフェース（USB）• リセットおよびクロック制御（RCC）

追加情報については、USB モジュールと RCC モジュールに関するペリフェラルトレーニングスライドを参照してください。

7