STM32G0 - UCPDUSB Type-C™ / USB Power Deliveryインタフェース
レビジョン 1.0

STM32G0 UCPD （USB Type-C / Power Delivery）インタ
フェースのプレゼンテーションへようこそ。ここでは、このモジュールの主な機能について説明します。

1

概要
UCPD

UsbPdClk
ClkReqPClk• 2つのUSB Type-C™ / USB Power Delivery
インタフェース（UCPD1およびUCPD2）が以下を管理：

TxDMA
リクエスト
RxDMA
リクエスト

2

レジスタプ
ログラミング
インタフェース

割込み
リクエスト

UCPD
デジタルコントローラ• デバウンスによるUSB Type-C™レベル検出

UCPD I/Oパッド
内蔵プルアップおよびプルダウン･レジス
タ、Type-Cレベル･コ
ンパレータ、FRSレベ
ル検出、PD PHYを搭載• ファスト･ロール･スワップ（FRS）検出• 割込みが生成されるUSB Power Deliveryペイロードのバイト･レベルのインタフェース（DMA 互換）

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

ウェイクアップリクエスト

•AP
B
32

•
•

プルアップ（Rp、すべての値）およびプルダウン（Rd）抵抗を内蔵したオンチップのUSB Type-C™
PHY
バッテリ切れサポート
USB Power Deliveryのメッセージの送受信

UCPD ユニットは、PD 物理層（PHY）を組み込んでおり、設定チャネルピン（CC1 および CC2）に直接接続できます。
UCPD は Downstream Facing Port（DFP）または Upstream Facing Port（UFP）として設定できることに加え、DFP と UFP の状態をスワップできる Fast
Role Swap プロトコルにも対応しています。
CC1 または CC2 を通じたメッセージ交換に基づいてプロトコル層を実装するた
めに、UCPD ではプログラミングインタフェースを提供し、ソフトウェアがメッセージのペイロードバイト数を送受信できるようにします。外部 DMA チャネルに対するリクエストは、プロトコルメッセージをメモリにまたはメモリから自動転送するのにも使用できます。
上記のブロック図は UCPD モジュールの 2 つの重要部分を示しています。
• PCLK によってクロック供給されるレジスタインタフェース（左側）。モジュールの現在の状態を設定して判断するためにソフトウェアによって使用されます。メッセージは、Tx および Rx レジスタによってバイト単位で転送されます。
• バイトをエンコード／デコードする PD 物理層は、CRC を追加および確認したり、定義された転送セット（順序セット）の転送も管理します。
アプリケーション側の利点は、次のとおりです。
• Rp および Rd 抵抗を内蔵したオンチップ PD PHY を搭載• デッドバッテリモードに対応することで、バッテリ切れの状況下でピアデバイスでの接続検出を実現• PD メッセージを送受信。ソフトウェアはペイロードの処理のみを実行します。
2

UCPDの機能

3• USB Type-C™ / USB Power Deliveryインタフェースは、USB Power
Delivery仕様の物理層をサポート• Universal Serial Bus Power Delivery仕様：レビジョン 3.0、V1.2に対応• Universal Serial Bus Type-C™のケーブルおよびコネクタ仕様：リリース1.3に対応• 主な機能は、Type-C™ケーブル専用のCC信号手法（VBUSではない）によるPower Delivery（PD）仕様の物理層への実装

UCPD コントローラは、以下に準拠しています。
• USB Type-C Rev. 1.2、および• USB Power Delivery Rev. 3.0 の仕様。
PHY については、CC 信号手法のみをサポートしているため、Type-C ケーブルが必要です。

3UCPDのリセットおよびクロック
RCC
UsbPdClk

UCPD
HSI16

÷116

ClkReq

ハーフビットクロック分
周回路 ÷1-63

nPReset
PClk

TxDMA
リクエスト
RxDMA
リクエスト

レジスタ
制御レジスタt INTER_FRAME_GAP タイミ
ングジェネレータ

Tx 順序セットレジスタ

Tx バイトレジスタ

Rx 順序セット
レジスタ

ウェイクアップ
リクエスト～600 kHzt TRANSITION_WINDOW タ
イミングジェネレータ

Rx バイト
レジスタ

割込みリ
クエスト

BMC レシーバ（9 MHz～18 MHz）

ステータスレジスタ（割込み /イベント）

APB
32

BMC トランスミッタ（9 MHz～18 MHz）

4

• 単一のリセット信号nPReset（APB バスリセット）を使用• UCPDのレジスタ･セクションは直接PClkでクロック供給• 主な機能部分はUsbpdClkでクロック供給• このクロックはプリスケール可能• レシーバは、6MHz～18MHzのいずれかのクロック入力で動作するように設計• 6MHz～9MHzの範囲では、性能が低下の可能性

リセットおよびクロックコントローラ（RCC）ユニットは、NPReset信号をアサートして UCPD ユニットをリセットする役割を持っています。
また、次のリファレンスクロックを UCPD ユニットに供給します。
• APB クロックである Pclk。メモリマップレジスタへのアクセスに使用されます。
• 主な機能クロックである UsbPdClk。
UsbPdClk は、バイフェーズマークコーディングで必要なハーフビットクロックを取得するためにプリスケールできます。
tTransitionWindow と tInterFrameGap と呼ばれるタイミング
では、どのような場合でもタイミングを満たすことができるよう、クロック周波数の不確定性を考慮する必要があります。
UCPD モジュールは、クロックゲーティング低消費電力状態を終了するために、ClkReq を RCC にアサートします。

4ピン配置
UCPD

UsbPdClk
ClkReqPClk

ピンTxDMA
リクエスト
RxDMA
リクエスト

FRS パルス生成

UCPDx_FRSTXUCPDx_DBCC1
UCPDx_DBCC2

USB Type-C™設定の制御ライン、バッテリ切れのピン バッテリ切れサポートが必要な場合は、USB
Type-C™コネクタのCCi ラインにUCPDx_DBCC1を接続
 それ以外 の場合 は、 これらの 入力をグラ ンドに接続

UCPDx_DBCC1

UCPDx_CC1
UCPDx_CC2

USB Type-C™設定の制御ライン
 USB Type-C™コネクタのCCiラインへの接続用

BMC
エンコード

Tx バイトレジ
スタ

CRC

4b5b
エンコード

Rx バイトレジ
スタ

4b5b
デコード

順序セットの検出／フィルタ

Rx 順序セット
レジスタ

ステータスレジスタ（割込み／イベント）

アナログ
PHY
Rp、Rd

BMC
デコード

BMC
周波数
推定

割込み
リクエスト
ウェイクアップ
リクエスト

UCPDx_FRSTX

Tx 順序セットレジスタ

FRS パルス検出

UCPDx_CC1

UCPDx_DBCC2
アナログ
PHY
Rp、Rd

UCPDx_CC2

Type C 制御
Type C デバウンス

A
P
B
32

説明
USB ファスト･ロール･スワップの信号を制御。 DRP にのみ適用可能
 外部NMOS の信号（アクティブ･ハイ）を制御して、アクティブな CCiラインをGND （ファスト･ロール･スワップ信号）までプルダウン
 通常のアプリケーションでは、このような2個のトランジスタ構成（CC1とCC2に各1個）。
 1つのFRSTX信号がAF MUXで使用可能で、アクティブな CC （ CC1 または CC2 ）のロール･スワップを要求するために使用される。

レジスタ
制御レジスタ5

このスライドでは、UCPD ユニットのピン配置について説明します。
ピン UCPDx_CC1 および UCPDx_CC2 は USB Type-C レセプタクルにルーティングされる唯一の信号です。 ケーブルは反転可能なため、一意の CC 信号が含まれており、レセプタクルの CC1 または CC2 のいずれかに接続されます。
UCPDx_FRSTX ピンは、Dual Role Port プロトコルがサポートされている場合に関連します。これは、CC1 または CC2 ラインをそれぞれプルダウンする外部 NMOS トランジスタの制御に使用されます。また、ロールスワップを要求する方法でもあります。
ピン UCPDx_DBCC1 と UCPDx_DBCC2 は、STM32G0
USB Type-C ポートが UCPDx_DBCC1 を UCPDx_CC1 に、
UCPDx_DBCC2 を UCPDx_CC2 に接続することにより、ピアポートにバッテリ切れ状態を示す場合に使用されます。

5

プルアップおよびプルダウン抵抗
Type-C仕様：UCPDUsbPdClk
ClkReqPClk

Downstream Facing Port（DFP）

レジスタ
制御レジスタ6

FRS パルス発生

UCPDx_FRSTX

Type-Cケーブル Upstream Facing Port（UFP）

VConn
接続検出

TxDMA
リクエスト
RxDMA
リクエスト

Rd

Tx 順序セットレジスタ

UCPDx_DBCC1

Tx バイト
レジスタ

CRC

4b5b
エンコード

Rx バイト
レジスタ

4b5b
デコード

順序セットの検出／
フィルタ

Rx 順序セット
レジスタ

BMC
デコード

BMC
周波数
推定

割込み
リクエスト
ウェイクアップ
リクエスト

アナログ
PHY
Rp、Rd

UCPDx_CC1

接続検出とMUX 制御

UCPDx_DBCC2
アナログ
PHY
Rp、Rd

CC1

3.3 V Rp

BMC
エンコード

USB Type-C
電流検出

VConn

UCPDx_CC2

Rd
CC2

ステータスレジスタ（割込み／イベント）

3.3 V Rp

FRS パルス検出Type C 制御
Type C デバウンス

APB
32•

使用するCCピンが1つのみである場合、CCENABLE制御
フィールドを使用してもう1つのピンの制御を無効にすることで、消費電力を最適化することが可能。

STM32G0 は、USB PD 仕様で必要な CC1 および CC2 ピンに接続される内部 Rp および Rd 抵抗を以下の目的で実装します。
- 接続を検出する。
- ケーブルが反転しているかどうかを判断する。
- 通電容量は Rp の値に応じて異なるため、デフォルトで使用可能な電力を決定する。
最後に、PD メッセージを送信するために、固有の CC ピン（ケーブルの反転に応じて CC1 または CC2）が使用されます。
未使用の CC ピンは VCONN ピンになる場合があります。これは、アクティブケーブルに存在する集積回路に電力を供給します。
電力を節約するために、UCPD_CR レジスタで CCENABLE
フィールドをプログラミングすることにより、未使用の CC ピンを無効にすることもできます。

6

PDおよびPU抵抗Downstream Facing Portとして設定されたUCPD
前提事項：ケーブルが反転しない

Vconn

7

Upstream Facing Portとして設定されたUCPD
前提事項：ケーブルが反転しない

Vconn
Rp

Rp
CC1

3.3 V

CC1

3.3 V

Rd

Rd

Vconn

Vconn
Rp

3.3 V

Rp
CC2

Rd

3.3 V

CC2
Rd

UCPD は、ソフトウェアによって Downstream Facing Port（DFP）または Upstream Facing Port（UFP）のいずれかとして設定されます。
DFP モードでは、ケーブルの反転がない前提で、CC1 は Rpに接続されます。Rp の値は、DFP が Vbus で提供できるデフォルトの電力値を示しています。
DFP モードでは、ケーブルの反転がない前提で、CC2 はVconn に接続されます。VCONN は、E-Marked ケーブルの内蔵回路と VCONN を電源とするアクセサリの実装に必要なプラグ内のデバイスに電源を供給するために使用される 5 V
1.0 W の電源です。
UFP モードでは、ケーブルの反転がない前提で、CC1 と CC2は 5.1 kΩ抵抗である Rd に接続されます。
UCPD は DFP と UFP の両方の動作をサポートするため、図に示されている内部スイッチは現在の設定を選択します。

7

PDおよびPU抵抗、デッドバッテリ
デッドバッテリ･モード有効

デッドバッテリ･モード無効
UCPDx_DBCC1

UCPDx_CC1

UCPDx_CC1

UCPDx_DBCC2
UCPDx_CC2• マイクロコントローラの電源がオフの場合でも、「バッテリ切れ」Rdがまだ表示

STM32G0

UCPDx_DBCC2
UCPDx_CC2

Type-C™ レセプタクル

UCPDx_DBCC1
Type-C™ レセプタクル

STM32G08• マイクロコントローラの電源がオフの場合でも、CC1およびCC2に開路が表示• 通電し、マイクロコントローラがブートした後、SYS_CONFIG[USBPDstrobe] を書き込んでこの動作を有効にする前に、必要な動作（シンクなど）をUCPD_CR レジスタのANAMODEおよびANASUBMODEフィールドにプログラムが必要

UCPD を Upstream Facing Port として使用する場合は、デッドバッテリ機能により、UCPD はピアノードに電力供給が必要なことを示すことができます。このアナログ設定は、マイクロコントローラの電源がオフになっている場合でも、機能します。このデフォルトの動作は、DBCC ピンをそれぞれの CC ピンに接続することで設定されます。
通電し、STM32G0 がブートした後、必要な動作（シンクのソース）を UCPD_CR レジスタの ANAMODE フィールドとANASUBMODE フィールドにプログラムし、その後、USB PD
ストローブビットを SYS_CONFIG と呼ばれる SYSCFG レジ
スタで 1 に設定する必要があります。
DBCC ピンをグランドに接続すると、デッドバッテリモードが無効になります。この場合、ピア DFP はバッテリ切れ状態と未接続状態を区別できません。

8ファスト･ロール･スワップ（FRS）信号および検出
ファスト･ロール･スワップ、アクティブなCCはCC1

UCPDx_FRSTX（オルタネート機能）
GPIO モード：ドライブ 0

STM32G0

UCPDx_CC1
UCPDx_CC2
GPIO モード：ドライブ 0

Type-C™ コネクタ

UCPDx_CC2

ファスト･ロール･スワップ、アクティブなCCはCC2
Type-C™ コネクタ

UCPDx_CC1

9UCPDx_FRSTX（オルタネート機能）

STM32G0• FRS信号：• 外部N-MOSトランジスタは、適切なCCラインで低抵抗をGNDにプルダウンするために必要である。
また、FRSTXコントロールはどちらかのN-MOS にマップが必要• 適切な期間、制御信号（FRSTX）はハイレベルでパルスを生成• FRS検出はUCPD_CRレジスタのFRSRXENによって制御

ファストロールスワッププロトコルは DFP と UFP のロールをスワップします。デフォルトの電源ノードがシンクノードになり、デフォルトのシンクノードがソースノードになります。
FRS をソースノードにリクエストするために、シンクデバイスは適切な CC ラインをグランドに一時的に接続します。
これは両方の CC ライン上の外部 N-MOS トランジスタによって行われます。ただし、FRSTX パルスを受信するのは 1 つのみです。
非アクティブな CC ラインの N-MOS は、GPIO モードを使用してロジック 0 レベルで駆動する必要があります。
UCPD_CR レジスタの FRSRXEN ビットはシンクノードのFRS 検出を制御します。このビットがセットされると、FRS 検出が有効になります。

9

UCPDデジタル･コントローラ
UCPD

UsbPdClk
ClkReqPClk• デジタル･コントローラは特に以下の処理を実行

レジスタ
制御レジスタ10

FRS パルス発生

UCPDx_FRSTX• 割込みが生成されるデバウンスによるUSB Type-C™レ
ベル検出• 割込みが生成されるFRS検出

TxDMA
リクエスト
RxDMA
リクエスト

Tx 順序セットレジスタ

UCPDx_DBCC1BMC
エンコード

Tx バイトレジスタ

CRC

4b5bエンコード

Rx バイト
レジスタ

4b5b
デコー
ド

順序セットの検出／
フィルタ

アナログ
PHY
Rp、RdBMC
デコード

アナログ

Rx 順序セット
レジスタ

BMC
周波数推定

割込み
リクエスト
ウェイクアップ
リクエスト

ステータスレジスタ（割込み／イベント）

FRS パルス検出• CRC生成／チェック• 4b5bでのエンコード／デコード

UCPDx_DBCC2• バイフェーズ･マークのエンコード／デコード

UCPDx_CC1• 順序セット（受信時のプログラム可能な順序セットのマスクを含む）• プリアンブル中のレシーバにおける周波数回復Type C 制御
Type C デバウンス

A
P
B
32

PHY
Rp、Rd

UCPDx_CC1• 割込みが生成されるUSB Power Deliveryペイロードのバイトレベルのインタフェース（DMA 互換）• USB Power Deliveryタイミング分周回路（クロック･プリスケーラを含む）

デジタルコントローラの役割は以下のとおりです。
• デバウンスによる USB Type-C レベル検出• ファストロールスワップ（FRS）検出• CRC の生成およびチェック• 4b5b でのエンコード／デコード• バイフェーズマーク（BMC）エンコード／デコード• 順序セットの送受信
レシーバのクロックデータリカバリユニットは受信したビットストリームから送信クロックを回復します。
デジタルコントローラは、割込みが生成される USB Power Delivery ペイロー
ドのバイトレベルのインタフェースを提供します。UCPD ユニットは DMA 転送をリクエストできるため、DMA チャネルはメッセージペイロードの転送を支援できます。
UCPD モジュールは次の 2 つのクロックドメインを実装します。PCLK によってクロック供給される APB レジスタインタフェースと UsbPdClk によってクロック供給される PHY です。
UsbPdClk はプログラム可能なプリスケーラによって分周され、最大周波数が300 Kbps（Kbit/秒）の CC クロックを供給します。バイフェーズマークコーディ
ングのため、送信されるビットごとに 2 つの遷移が発生する場合があります。
したがって、実際の最大クロック周波数は 600 kHz になります。

10電圧監視とデバウンス
UCPDUsbPdClk
ClkReq
PClk

レジスタ
制御レジスタ

TxDMA
リクエスト
RxDMA
リクエスト

FRS パルス発生

UCPDx_FRSTX

Tx 順序セットレジスタ

UCPDx_DBCC1
BMC
エンコード

Tx バイト
レジスタ

CRC

4b5b
エンコード

Rx バイト
レジスタ

4b5b
デコー
ド

順序セットの検出／フィルタ

アナログ

PHY
Rp、Rd

BMC
デコード

BMC
周波数
推定

割込み
リクエスト
ウェイク
アップ
リクエスト

ステータスレジスタ（割込み／イベント）

PHY
Rp、Rd

• Type-C™ステートマシンを最新の状態に保つため、CC1およびCC2ピンで重要な電圧イベントの監視を継続的に行うか、ポーリングが可能

UCPDx_CC1

UCPDx_DBCC2
アナログ

Rx 順序セットレジスタ

11

UCPDx_CC1• ソフトウェアに対する重要なイベントのみを示すには、デバウンスを行う。これは、電源供給Tx / Rxアクティビティとの調整も実行

FRS パルス検出
Type C 制御Type C デバウンス

APB
32

PHY は CC1 および CC2 の状態を継続的に、またはポーリングによって監視し、UCPD_SR レジスタでフラグを設定してイベントを検出し、ソフトウェアにイベントの信号を送信します。
消費電力を最適化するために、STOP からのウェイクアップではなく、ポーリングの使用をお勧めします。というのは、Type-C検出器は、ポーリング間でオフになるからです。一方、STOPからのウェイクアップでは、Type-C 検出器は常にオンにする必要があります。
CC ピンの静的レベルは、PHY の閾値検出器によって決まり、レジスタの電圧範囲値が指定されます。これにより、ソフトウェ
アへの Type-C ステートマシンの実装が促進され、ケーブルの向きも決定できます。
Type C デバウンスのサブユニットはソフトウェアに報告するイベントをフィルタリングします。 また、イベントシグナリングと電源供給 Tx/Rx アクティビティ間の連携も確保します。

11

PDプロトコル

12

UCPD

UsbPdClk
ClkReq
PClk

レジスタ

ソフトウェアスタック制御レジスタ

USB PD
システムポリシー
マネージャ

FRS パルス発生

UCPDx_FRSTX

Tx 順序セットレジスタ

USB PD
デバイスポリシー
マネージャ

UCPDx_DBCC1
BMC
エンコード

USB PD
ポリシーエンジン

Tx バイト
レジスタ

CRC

4b5b
エンコード

Rx バイト
レジスタ

4b5b
デコード

順序セットの検出／フィルタ

Rx 順序セットレジスタ

USB PD
プロトコル層

アナログ
PHY
Rp、Rd

BMC
デコード

BMC
周波数
推定

UCPDx_CC1

UCPDx_DBCC2
アナログ
PHY
Rp、Rd

UCPDx_CC1

FRS パルス検出

割込み
リクエスト

Type C 制御
Type C デバウンス
APB
32

PD ソフトウェアスタックは、STM32G0 で Cortex-M0+ コアによって実行されます。
これはメッセージやイベントに基づいています。イベントは割込
みを通じて Cortex-M0+ コアに報告されます。
メッセージに関しては、ペイロードのみがソフトウェアの制御下にあります。デジタルコントローラは、プリアンブル、パケットの開始、CRC およびパケットの終了でメッセージのカプセル化を実行します。
ソフトウェアスタックには、プロトコル層、ポリシーエンジン、デバイスポリシーマネージャ、およびシステムポリシーマネージャが含まれます。システムポリシーマネージャは、プラットフォームレベルのパワーマネジメントを実装するために、複数の PDポートを制御できます。

12PDプロトコル
プロトコル層

13

目的DPM

デバイス･ポリシーマネージャ

DPMはシステム全体の管理と監視を担当
 ポリシー･エンジン、電源、ケーブル検出、およびシステム･ポリシー･マネージャと連携
 現在の電力状態に応じて、必要な電力計画とアクション（契約）を決定

PE

ポリシー･エンジン

適用するローカル･ポリシーを決定する、ポートごとに1つのインスタンス
 メッセージ･シーケンスが次の各種操作に指定。
 ポートの電源リソースのリクエスト 電源またはシンクの遷移
 このレイヤは電力ネゴシエーションとスワッピングを実装
 メッセージ･フローのエラーとリセットも処理

PL

プロトコル層

送信時に、このレイヤはメッセージを構築し、デジタル･コントローラへ伝達
受信時に、このレイヤはデジタル･コントローラからメッセージを取得し、それを解析して分解
 C R C 生 成 ／ チ ェ ッ ク は 、こ の レ イ ヤ に よ っ て 実 行 さ れ 、 正 し く 受 信 さ れ た メ ッ セ ー ジ に 対 し て
GoodCRCが自動的に返信
 通信エラーもこのレイヤによって処理PD 仕様では、次の 3 つのソフトウェア層が定義されています。
1. デバイスポリシーマネージャ（DPM）はデバイスレベルのシステム管理と監視を担当します。現在の電力状態に応じて、電力計画と契約を決定します。
2. ポリシーエンジン（PE）は単一の UCPD ポートを制御します。メッセージシーケンスは、電源リソースをリクエストし、ソースまたはシンクの遷移を実行するために定義されています。このレイヤは電力ネゴシエーションとスワッピングを実装し、メッセージフローエラーとリセットを処理します。
3. プロトコル層（PL）は PD メッセージの構築と分解を担当しています。このレイヤは、メッセージが正しく受信されるとGoodCRC を自動的に返し、タイムアウトや再試行などの送信エラーも処理します。

13

順序セット14• 順序セットは4つのKコードで構成• レシーバは4つすべてのKコードを検索し、そのうちの1つが4つのうち3つまたは4つすべてを正しい場所に検出すると、それを有効な順序セットとして解釈
PD仕様に定義されている順序セット
Cable Reset

ケーブル･リセットを発生

Hard Reset

ハード･リセットを発生

SOP

電子的にマークされたケーブルに含まれる1つまたは複数のピアPDデバイスを対象としたパケットの開始

SOP'
SOP'_Debug
SOP''
SOP''_Debug

PD プロトコルは、5 ビットコードに変換されたデータの数字を伝送することに加え、順序セットと呼ばれるシグナリングパターンも伝送します。
これらは 4 つの 5 ビットの K コードで構成され、冗長メカニズ
ムを介した送信エラーに対して耐性があります。
パケットの開始（SOP）などの順序セットは、必ずパケットに存在します。デジタルコントローラは順序セットを自動的にトランスミッタに挿入し、有効性を確認した後、レシーバから削除します。
PD 仕様で定義されている順序セットは以下の目的で使用されます。
• ケーブルリセットまたはハードリセット状態の信号を送信する• パケットの先頭を区切る

14

PDパケット
64b16b16b

ペイロード 0 バイト～260 バイト

32b4b

プリアンブル

SOP

ヘッダ

バイト 0

CRC

EOP...

バイト n

15

PHYトランスミッタによるプレフィックスの設定
PHYレシーバによる確認

Tx & Rxバイト･レジスタを介してソフトウェアによって処理
フィールド

4b / 5b コーディング？

プリアンブル

いいえ

SOP

はい

ヘッダ

はい

ペイロード

はい

CRC

はい

EOP

はい

PHY はプリアンブル、パケットの開始（SOP）、CRC、およびパケットの終了（EOP）を自動的に挿入します。レシーバ PHY はこれらのフィールドを処理してから、削除します。ヘッダフィール
ドと場合によってはペイロードフィールドがソフトウェアによって完全に処理されます。PHY はそのコンテンツを解釈しません。
プリアンブルはエンコードされません。これは、クロックデータ回復のために、レシーバ PHY によって使用されます。後続のすべてのフィールドはトランスミッタでエンコードされ、レシーバでデコードされます。

15PDパケット、リセット
64b4b4b4b4b

プリアンブル

RST-1

RST-1

RST-1

RST-2

16• Hard Resetパケットはクリーンな方法で実行中の転送に直接割り込む• Cable Resetは、フォーマットがHard Resetに似ているが、Hard Resetとは違い、特別な優先処理は不要• シーケンス•••••

tInterFrameGap を待機（25µs）
CCがアイドル状態でない場合は、アイドル状態になるまで待機
プリアンブルにつづいて Hard Reset 通知の4個のKコードを送信
チャネルを無効にし（送受信を停止）、物理層をリセットし、プロトコル層に物理層がリセットされたことを通知
プロトコル層にリクエストされたときは、チャネルを再度有効

Type-C コネクタは専用のリセット信号をサポートしていません。
したがって、リセット条件は、CC ライン経由で送信される特定の PD パケットを使用して通知されます。2 種類のリセットが定義されています。実行中の転送をアボートするハードリセットと、優先して処理する必要がないケーブルリセットです。
リセットパケットの発行に必要なシーケンスについては、このスライドで説明します。

16

PDパケット、組込みの自己診断機能（BIST）

17• プロトコル層が要求するBISTアクションに応じて、以下のいずれかを実行可能• Tx BISTパターンテスト。UCPD_CR レジスタでTXMODEおよびTXSENDを書き込むことで達成• Rx BISTパターンテスト。UCPD_CR レジスタでRXBISTフィールドの正しい値にRXMODEを書き込むことで達成• UCPDでは、次の2種類のパターンをサポート可能：• BISTテスト･データ（192bitパターン）。TxおよびRxに適用
レシーバがパケットを確認応答したものの、その後破棄（プロトコル層には未伝達）
プリアンブル

SOP

ヘッダ

BIST テスト･データ

CRC

EOP

• BISTキャリア･モード（単一パターン、無限長のメッセージ）。Txにのみ適用され、このモードでTxの逆のRxは、この状態にいる間、CCラインを単純に無視
プリアンブル

SOP

1010101…. （リセットされるまで反復）

PD 仕様では、CC ラインが機能しているかどうかをテストするために使用される、組込み自己診断機能（BIST）パケットを記述します。
BIST は、UCPD_CR レジスタのフィールドに基づき、ソフトウェアの決定して送信されます。
ソフトウェアは BIST パケットの送信を強制することも、テストモードでレシーバを設定することもできます。受信された BIST
パケットはソフトウェアに送信されませんが、その CRC は確認されます。
BIST パケットの 2 つの形式が PD 仕様で定義されています。
• ペイロードを含むパケットである BIST テストデータ。デジタ
ルコントローラをテストするために使用されます。
• シングルパターンの無限長メッセージである BIST キャリアモード。たとえば、オシロスコープで CC をキャプチャして物理リンクをテストするために使用されます。

17

Type-C™ステートマシンの処理

18• ソースとシンク（およびこれらを切替え可能なデュアル･ロール･ポート）を通
常どおり適用する場合は、ソフトウェアは対応する USB Type-C™ステートマ
シンを実装• UCPDモジュールはCCラインのみを制御
ソース･モード
DC/DC

シンク･モード

DC/DC
VBUS
ロード･スイッチ

VBUS

レギュレータ

VBUS

VCONN
ロード･スイッチ

VCONN

レギュレータ

VCONN

ENEN

GPIO
UCPD
STM32G0

ADC
CC1/CC2UCPD

CC1/CC2

STM32G0

Type-C ステートマシンはソフトウェアに実装されています。
Type-C ステートマシンは CC ピンレベルだけでなく、ポートのロールにも依存しています。
• シンクモードでは、VBUS の存在検出に依存しています。
• ソースモードでは、VCONN の発生と VBUS の状態（オン、オフ、電圧レベルおよび放電）に依存しています
UCPD モジュールは CC ラインのみを制御します。VBUS お
よび VCONN 電源の制御には、その他のモジュールが関連しています。
ソースモードでは、動的に電源供給を制御するために GPIOが必要です。
シンクモードでは、ADC チャネルを使用して VBUS およびVCONN 電源を監視します。

18

低消費電力動作

19• インタフェースは、STOPモードとの互換性のある低消費電力動作を提供し、マイクロコントローラがこの低消費電力モードにある場合に、USB Power
Deliveryメッセージの受信とFRS信号を検出するための機能を保持• マイクロコントローラをウェイクアップするようにUCPDを設定可能
PD イベント検出

UCPD1

UCPD1 ウェイクアップ

PD イベント検出

UCPD2

UCPD2 ウェイクアップ

ウェイクアップ･イベント

BMCレシーバのイベント

EXTI

sys_wakeup

PWR

BMCレシーバのイベント
FRS検出器のイベント
Type-C™検出器のイベント

UCPD は STOP 0 および STOP 1 モードでアクティブな状態を維持するようにプログラムできます。マイクロコントローラがSTOP モードの場合に PD イベントが検出されると、EXTI ユニットに信号が送られ、その後 PWR ユニットに信号が送られてウェイクアップ状態になります。ウェイクアップリクエストを発生させるために、次のイベントを設定できます。
• メッセージ受信などの、BMC レシーバ側のイベント• ファストロールスワップリクエスト• 接続／取外しなどの Type-C 検出器のイベント

19低消費電力モードモード20

説明

RUN

UCPDがアクティブ

SLEEP

UCPDがアクティブ

STOP 0/1

イベントの検出（Type-C™、BMC Rx、FRS検出）動作は継続するのでマイクロコントローラをウェイクアップ

STANDBYUCPDは動作しておらず、マイクロコントローラをウェイクアップ不可
 プルダウンは、設定されている場合はアクティブを維持

電源オフ

バッテリ切れプルダウンはアクティブを維持

UCPD は、下記の関連イベントの 1 つを認識すると、（UCPD_CFG2 レジスタでWUPEN ビットをセットして有効になっている場合に）STOP モードからマイクロコントローラをウェイクアップできます。
• いずれかの CC ピンの電圧範囲の変化に関連する Type-C イベント。
TYPEC_VSTATE_CCx で確認できます。
• 順序セットが RXORDSETEN[8:0] のフィルタリング結果に一致する Power
Delivery メッセージの受信。RXORDSET を読み出すことで確認できます。
UCPD レベルでは、STOP モード中に、カーネルクロックアクティビティを必要とする 3 種類のイベント（Type-C™、BMC Rx、および FRS 検出）が発生する可能性があります。
以下のイベントが検出された場合、RCC と正常に連動できるようにクロックリク
エスト信号が有効化されます（WUPEN の条件による）。
• アナログ PHY 電圧閾値検出器のアクティビティ。この後 Type-C 仕様で定義された電圧範囲間の安定した変化であると確認される可能性があります。
• 後で Rx メッセージイベント（RXORDSET）を生成可能な Power Delivery
BMC レシーバのアクティビティ（選択した CC ピンから入力される）• 後で FRS 信号検出イベント（FRSEVT）を生成可能な Power Delivery
FRS 検出器のアクティビティ• Type-C 電圧閾値検出器（いずれかの CC ピンから入力される）• Power Delivery レシーバ信号（選択した CC ピンから入力される）• FRS 検出信号（選択した CC ピンから入力される）

20

割込み割込みイベント

21

説明ファスト･ロール･スワップ検出イベント

新規 FRS（ファスト･ロール･スワップ）受信イベントがポートで発生した場合にセット

Type-Cの電圧レベル･イベント（CC2）TYPEC_VSTATE_CC2値が変わり、そのピンの新しい安定した電圧を示す場合にセット

Type-Cの電圧レベル･イベント（CC1）TYPEC_VSTATE_CC1値が変わり、そのピンの新しい安定した電圧を示す場合にセット

Rxメッセージ受信

新しいメッセージを受信した場合にセット

Rxデータ･オーバーフロー割込み

Rxバイトのバッファがオーバーランした（受信バイトのスペースを空ける間もなく読み込まれた）場合にセット

Rx Hard Reset検出割込み

Hard Resetメッセージを受信した場合にセット

Rx順序セット（4つのKコード）検出割込み

新しい順序セットを受信した場合にセット

受信データ･レジスタ･ノットエンプティ割込み

UCPD_RXDRレジスタが空でない場合にセット

Txデータ･アンダーラン状態割込み

Txデータレジスタ（TXDR）がアンダーランした（データが送信メッセージでの使用に間に合うように書き込まれなかった）エラー
状態の場合にセット

HRST送信割込み

HRSTメッセージが送信された場合にセット

HRST破棄割込み

HRSTメッセージが破棄された場合にセット

送信メッセージ･アボート割込み

送信時に後続のHRST送信リクエストが優先されることによってTxメッセージがアボートされた場合にセット送信メッセージ送信割込み

パケット送信の完了時にセット送信メッセージ破棄割込み

受信中のため（またはラインにノイズがある場合）、メッセージの送信が不可能な場合にセット送信割込みステータス

UCPD_TXDRレジスタが空で、書込みが必要な場合にセット

UCPD からの割込みが受信された場合、ソフトウェアはUCPD_SR レジスタを読み出すことで割込みソースを確認する必要があります。
どのビットが「1」に設定されているかによって、割込みサービスルーチンはこの条件を処理し、UCPD_ICR レジスタの該当するビットに書き込んでこのビットをクリアする必要があります。
このスライドでは、割込みリクエストを引き起こす可能性がある
UCPD モジュールで検出されるすべてのイベントをまとめています。

21

関連ペリフェラル

22• 詳細については、次のペリフェラルに関連するトレーニングを参照：• STM32G0 DMAコントローラ（DMA）• リセットおよびクロック制御（RCC）• 拡張割込み／イベント･コントローラ（EXTI）• システム設定コントローラ（SYSCFG）• 電源コントローラ（PWR）

詳細については、次のペリフェラルに関連するトレーニン
グを参照してください。
• STM32G0 DMA コントローラ（DMA）• リセットおよびクロック制御（RCC）• 拡張割込み／イベントコントローラ（EXTI）• システム設定コントローラ（SYSCFG）• 電源コントローラ（PWR）

22