STM32G4 – USBデバイス
USB2.0フルスピード・デバイス・インタフェース

1.0版

こんにちは。STM32G4のUSB2.0フルスピードインタフェースのプ
レゼンテーションへようこそ。ここでは、PCとのインタフェースに広く使用されている、USBインタフェースの機能について説明します。

1

概要

2

• USB2.0フルスピード・インタフェースを提供
バスパワー・ペリフェラル• 合計16のエンドポイント（8つの双方向エンドポイントを提供可能）

VBUSから電力を受け取る
電圧レギュレータ• バッテリ充電検出v1.2のサポート

STM32G4

FS_DP
FS_DM

EMC
保護

DP
DM

USBマイクロB
レセプタクル

VBUS

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

水晶発振子レス動作

•

低電力動作

•

バッテリ充電検出ハードウェアは、充電を認識するため、より効率的な充電が可能

この図は、STM32G4マイクロコントローラとUSBコネクタの接続を示しています。
STM32G4はUSB2.0フルスピード通信インタフェースを備えている
ため、マイクロコントローラは一般的なPCと通信できます。最も単純な実装は、USBペリフェラルデバイスです。
16エンドポイントの能力を備え、たとえば、8つの双方向エンドポイントとして設定できます。
また、バッテリ充電検出仕様v1.2をサポートします。
アプリケーション側の利点としては、水晶発振子レス動作、低電力動作、充電検出機能による高速充電などがあります。

2

主な機能

3

• USB2.0フルスピード（12メガビット/秒）• USBフルスピード・デバイスを実装• クロック・リカバリシステムにより、水晶発振子レス操作をサポート• 最大16のエンドポイント（8つの双方向など）をサポート• アイソクロナス・エンドポイントをサポート• ダブルバッファモードを使用したバルクエンドポイントパフォーマンスの最適化• リンク電源管理（LPM）をサポート• バッテリ充電検出ハードウェアを含む• 最新仕様のBC1.2をサポート（実装にはソフトウェアが必要）• この仕様をハードウェアのサポートにより、BC1.2互換の充電から、より多くの電流（最大1.5A）を安全に流すことができるため、バッテリ充電時間が短縮

このUSBフルスピードインタフェースの主な機能のいくつかを見てみましょう。これはUSB2.0互換のインタフェースであり、毎秒12メガビットのビットレートで動作します。
USB FSデバイスを実装できます。
水晶発振子レス動作がサポートされます。
合計16のエンドポイント（8の双方向）をサポートできます。
アイソクロナスエンドポイントをサポートできます。
バルクエンドポイントでダブルバッファモードを使用して、より高いパフォーマンスを実現できます。
内蔵のリンク電源管理のサポートにより、USB2.0仕様に、強化された電源モードが追加されます。
バッテリ充電検出により、BC1.2互換の充電から、より多くの電流を流すことができ、最大1.5アンペアの充電が可能です。

3

DP

ブロック図（USB）

DM

4

アナログ
トランシーバUSB
USBクロック
48MHz

サスペンド
タイマ

RX-TX

クロック
リカバリ

コント
ロール

エンドポイント
選択

割込み
レジスタとロジック

エンドポイン
トレジスタ
エンドポイン
トレジスタ
エンドポイン
トレジスタ

パケット
バッファ
インタフェース

アービタ

コントロール
レジスタとロジック

パケットバッファ
メモリ

レジスタ
マッパー

エンドポイン
トレジスタ
エンドポイン
トレジスタ
エンドポイン
トレジスタ

割込み
マッパー

APBラッパー
APBインタフェース
PCLK

APBバス

IRQからNVICへ

USBフルスピードデバイスコントローラのブロック図には、内部のさまざまな構成要素とともに、上部のアナログトランシーバが物理層を管理します。
物理層（PHY）は、特定のレベル検出を含むアナログ信号レベルやバッテリ充電検出機能を処理します。
USB割込みはCortex®プロセッサに送られて、さまざまなUSBイベントを通知します。
AHBペリフェラルバス（APB）は、コントローラの読出し/書込みアクセスを可能にします。
その他の主な要素は、低電力動作を可能にするパケットバッファ
メモリとサスペンドタイマです。

4

関連ペリフェラル

5• CRS（クロック・リカバリ・システム）• リモートホストのフレーム開始（SOF）タイミングがデバイス・コントローラから抽出され、CRSはそれを使用して内部クロック・ジェネレータ（HSI RC48MHz）を駆動するため、外部水晶発振子を必要とせずにUSBタイミング要件を満たすことが可能• NVIC（割込み）• 単一の割込みラインがNVICに接続されて、イベントを生成• EXTI（イベント）• 単一のイベント・ラインがEXTIに接続され、USBアクティビティが再開されたとき（サスペンドモードを終了したとき）、システムをSTOPモードから復帰可能

いくつかの関連ペリフェラルはUSBデバイスコントローラと連携して、システム動作モードおよびソフトウェアの要件に連携させUSB動作をリンクします。
クロックリカバリシステムにより、外部水晶発振子がなくても、内蔵のHSIオシレータをメインクロックソースとして使用して動作可能です。
割込みイベントは単一のラインを介してネスト化されたベクタ割込みコントローラに送信されます。
USBサスペンドモードから再開したときなど、システムイベントによってシステムはSTOPモードから復帰できます。

5

割込み
割込みイベント

6

説明

パケットメモリ領域のオーバー/アンダーラン

マイクロコントローラがUSBメモリ・リクエストに時間内に応答できなかったことを通知

エラー

ソフトウェア開発に役立つ汎用エラー信号。通知されたエラー（いくつかのタイプ）は一般に再送信によってプロトコルで処理。この割込みは、これらの条件が実際に発生していることを示す

ウェイクアップ

サスペンド・モードで、マイクロコントローラの復帰を有効にするために使用されるサスペンドモード・リクエスト

ホスト・トラフィックが3ms間、ないことを検出。
これは、USBプロトコルがデバイスに「サスペンド」動作を取るように要求する条件

USBリセット・リクエスト

ホストから通知されたUSBリセットを検出

フレーム開始ホストからの新しいフレームをシステムに通知予期されたフレーム開始

新しいフレームが予期されたが受信されないときに、システムに通知

LPM L1状態リクエスト

LPM L1状態の受信と確認応答を通知

USBデバイスコントローラは、さまざまな状況で一般にソフトウェ
アによる処理を必要とする割込みを生成します。
最初の2つの割込みは、さまざまなエラーおよび警告条件をカバーします。
残りの割込みは、通常のUSBプロトコルイベントに対応します。

6低電力モード
MCUモード

説明

7

USBの可用性RUN

MCUフルアクティブ

USBがサスペンド・モードに入るまで必要

SLEEP

ペリフェラル割込みによって、デバイスはSLEEPモードを終了
ペリフェラルレジスタの内容は保たれる

USBがサスペンド・モードのときに使用可能

STOP0,1

ペリフェラル割込みによって、デバイスはSTOPモードを終了
ペリフェラルレジスタの内容は保たれる

USBがサスペンド・モードのときに使用可能であり、最適な電力削減を提供

STOP2

ペリフェラル割込みによって、デバイスはSTOP
モードを終了ペリフェラルレジスタの内容は保たれる

USBは動作しない

STANDBY

パワーダウン状態。ペリフェラルは、STANDBY
モード終了後に再初期化する必要がある

USBは動作しない

USBペリフェラルは、RUNモードでフルアクティブです。サスペンド
イベント後、SLEEPモードとSTOP0および1モードが使用可能です。
STOP2およびSTANDBYモードは使用できません。

7

デバッグ情報8• ステータスおよびフレーム番号レジスタ内の専用ビットがデバッグに役立つ

デバッグ・ビット

説明

エラー（ERR）

エラー・ビット（ERR）は、割込みのスライドにも記載されているが、（プロトコルエラーではない）イベント数の可視化を可能にする• 無応答• ビット・スタッフィング・エラー• CRCエラー• フレーミングフォーマット違反

RXDP；RXDM

D+およびD-ピンの受信ライン状態

割込みイベントに対応する単一のステータスビットを使用して、いくつかのデバッグヘルプを使用できます。
USBデバイスコントローラ内の専用ERRステータスビットは、USBアプリケーションにおいて、さまざまなイベントに関するデバッグ機能を提供します。このデバッグビットをトリガできるイベントが、この表に記載されています。
D+およびD-ラインの状態を直接読み取る手段もあります。

8

アプリケーション：低電力デバイス• この図は、ペリフェラル・デバイス・アプ
リケーションの低電力設計例を示す

バスパワー・ペリフェラル
VBUSから電力を受け取る
電圧
レギュレータSTM32G4

FS_DM

EMC
保護DPDM

USBマイクロB
レセプタクル

VBUS

FS_DP9• この例では、デバイスはバスから電力を供給され、USB VBUSピンからのみ電力を引き出す• 水晶発振子は不要
タイミングは、リモートホストのフレームからCRSブロックを使用して求められる

これは、低電力ペリフェラルデバイスのアプリケーション例です。
電力はUSB VBUS信号から直接引き出されます。
水晶発振子は不要です。

9

参照

10

• 詳細については、以下のページを参照してください。
• www.usb.org: usb20_docs（以下を含むZIPファイルがある）：• USB 2.0 specification• USB2.0 ECN：Link Power Management Addendum• www.usb.org: devclass_docs• Battery charger v1.2 specification• 以下のアプリケーションノートに追加情報があります。
• アプリケーションノートAN4879: USB hardware and PCB guidelines using STM32 MCUs
• アプリケーションノートAN4775: Basics and low-cost solution proposals to move from alegacy USB 2.0 connector to USB Type-C™ connector with STM32 devices

USB仕様の詳細な関連資料については、USB.orgを参照してください。
USB2.0関連資料ホームページには、USB2.0およびOTG2.0仕様とリンク電源管理（LPM）の設計変更通知（ECN）を含むZIPファイルが用意されています。
USBデバイスクラスの関連資料のページには、バッテリ充電仕様があります。
これらのアプリケーションノートに追加情報があります。

10