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

1.0版

STM32G4クロックリカバリーシステムのプレゼンテーションへようこそ。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）は、16ビットカウンタのリロードと、前回カウントダウン値のキャプ
チャに用いられます。この値に応じて、可能な限り精度の高い周波数を得るためにHSI
48MHzクロックが微調整される• 3種類の可能な入力:• GPIOへの外部信号• 32KHzクリスタル･オシレータ• USBフレーム開始信号

GPIO

SYNCSRC

OSC32_IN
OSC32_OUTLSE

SYNC分周器(/2,/4,/8,/16,/32,/64,/128)

RELOAD
レジスタ
USB_DPSYNC

16 ビットカウンタ

USB

USB_DM

RC48 MHzCRS TRIM

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

4

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

5

CRSカウンタ値

リロード

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

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

警告制限(3 x FELIM)
FELIM
TRIMステップ更新

0+2

SYNCERRSYNCWARNSYNCイベント+10-1

SYNCOK-2SYNCWARNSYNCイベント

USB SOF ref1KHz
HSI 48MHz

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

5

割込みと低電力モード

6• チャネルごとの割込みイベント
割込みイベント

説明期待される同期

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

OKウィンドウのマージンの中でSYNCイベントが受信されたが、エラー範囲ではないときにセット

同期またはトリミング･エラー(TRIMOVF、SYNCMISS、SYNCERR)SYNCイベントの受信が早過ぎたか、全く受信されなかったか、更新後にTRIMビットフィールドがオーバーフローした場合にセット• CRSはRUNモードとSTOPモードで動作、他のモードではHSI48が停止

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

6

関連ペリフェラル

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

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

7