STM32MP1-HDMI-CEC
HDMI-CEC コントローラ
1.0 版

こんにちは、STM32 HDMI-CEC コントローラモジュールのプレゼンテーションへようこそ。このプレゼンテーションでは、ユーザ環境にあるさまざまなオーディオビジュアル製品について、それらすべての間で高品位な制御機能を実現するコントローラの主な機能を説明します。

1

概要

2

• デバイス管理インタフェースの提供• HDMI-CEC v1.4 仕様に準拠• 2 つのクロックソースオプションを用いた
32kHz CEC カーネル

アプリケーション側の利点• 複数の論理アドレスをサポート（OAR）• 必要なのは 1ピンのみ• 設定可能な Rx 許容誤差マージン• 受信エラー検出• バス固有のシーケンシング、プロトコル、アービトレーション、タイミングを制御• 送信エラー検出• さまざまなオーディオビジュアル製品とデバイスパラメータを交換

STM32 マイクロコントローラ内に統合された HDMI-CEC コント
ローラはハードウェア管理インタフェースを提供するもので、これにより STM32 はユーザ環境でさまざまな製品とデバイスパラメータを交換できるようになります。
この目的に沿って、設定可能なクロックソース、ペリフェラルアドレス、および多数の受信／送信イベントフラグが使用されます。
アプリケーションは、デバイスパラメータの交換に使用されるピン数の少ない標準インタフェースから恩恵を受けられます。

2ブロック図HDMI-CEC コントローラ
CEC 割込みリクエスト

CEC APB
インタフェース

CEC アダプタ

APB バス

制御／ステータスレジスタ

CSI

32-kHzCEC
カーネル

cec_pclk
RCC
cec_ker_ck

CEC GPIO

Rx

HSE
HSI

3

CEC PADTx

CLK

cec_wkup

HDMI-CEC は、「High-Definition Multimedia Interface」「Consumer Electronics Control」の略です。コントローラは
HDMI-CEC v1.4 仕様に準拠しています。さまざまなオーディオビジュアル製品とのインタフェースに必要な機能を提供します。

「CEC アダプタ」と「CEC アドバンストペリフェラルバス（APB）インタフェース」で構成されています。
「CEC アダプタ」はフレームのデコードやチェックなどの機能を提供し、「CEC APB インタフェース」は制御およびステータスレジス
タ、データインレジスタとデータアウトレジスタ、および同期割込みリクエストを管理します。
HDMI-CEC コントローラには、「APB インタフェース」用の APBクロック（CEC_PCLK）と「CEC アダプタ」用の 32kHz カーネルクロック（CEC_KER_CK）の 2 つのクロックを使用します。
カーネルクロックは、HSE、CSI、または HSI クロックソースから取得できます。

3メッセージの構造

4

サポートするフレームフォーマット

• メッセージ：• 単一フレームで送信されます。このフレームは、スタートビットとそれに続くヘッダブロックによって構成され、これにオプションとして OP コードと可変長のオペランドブロックを含めることもできます。
0 から 14 オペランド
ハイインピーダンス

スタートビット

ヘッダ

OPCODE

オペランド

オペランド

...

オペランド

ハイインピーダンス• ヘッダ、OP コード、オペランドブロック：• 8bit ペイロード – 最初に最上位ビットが送信され、その後にメッセージ終了（EOM）ビットと確認応答（ACK）ビットが送信されます。
HEADER BLOCKINITIATOR[3:0]

DESTINATION[3:0]

EOM

OPCODE/OPERAND BLOCKACKDATA[7:0]

サポートされているフレームフォーマットは、スタートビットとそれに続くヘッダブロックによって構成され、これにオプションとしてOP コードと可変長のオペランドブロックを含めることもできます。
ヘッダ、OP コード、オペランドブロックは 8bit ペイロードで構成され（最上位ビットが最初に送信される）、その後にメッセージ終了（EOM）ビットと確認応答（ACK）ビットが送信されます。

4信号フリータイム（SFT）設定

5

SFT タイマの自動開始
SFTOPT = 0 の場合、TXSOM （メッセージコマンドの TX スタート）で SFT をカウント
BUSY (RX/TX)

SFT

IDLE

TX

IDLE

TXSOM

SFT

TX

TXSOM

TXEND/RXENDTXENDSFTOPT = 1 の場合、TXEND/RXEND/TXERR/RXERR で SFT をカウント
BUSY (RX/TX)

SFT

IDLE

TX

SFT

TXSOM

TXSOMRXEND

BUSY (RX/TX)

SFT

TXEND

TX

SFT

TXSOM
RXEND

TX

IDLE

TX

TXSOM
TXEND

送信コマンドが送られると、HDMI-CEC は、プログラムされた信号フリータイム（SFT）値に依存する非アクティブの公称データ
ビット周期数が経過した後にスタートビットを送信します。
SFT=0x0 設定では、HDMI-CEC コントローラが SFT 値を自動的に計算し、HDMI-CEC 規格への準拠を保証します。また、さまざまな固定値に設定することもできます。
SFTOPT ビットが "0" にセットされている場合、送信開始コマンドがソフトウェアによりセットされる（TXSOM ビットが "1" にセットされる）と、HDMI-CEC コントローラは SFT 値のカウントを開始します。
SFTOPT ビットが "1" にセットされている場合、バスアイドル条件またはラインエラー条件が検出されると、HDMI-CEC コント
ローラは SFT 値のカウントを開始します。TXSOM ビットが "1"に設定されている場合、SFT タイマが完了すると遅延なく直ちに送信が開始されます。

5

RX 許容誤差マージン

6• RxTol ビット• 標準許容誤差（CEC 仕様に準拠）• スタートビット：±200ms 立ち上がりと立ち下がり• データビット：±200ms 立ち上がり、±350ms 立ち下がり• 拡張された許容誤差• スタートビット：±400ms 立ち下がりと立ち下がり• データビット：±300ms 立ち上がり、±500ms 立ち下がり

スタートビット
3.7ms

4.5ms

データビット
0.6ms

1.5ms

2.4ms

1.05ms

HDMI-CEC コントローラは、2 つの RX 許容誤差マージンモードをサポートします。
1 番目の CEC 仕様に準拠した標準許容誤差モードは、スタートビットの立ち上がりと立ち下がり時間で ±200µs、データビットの立ち上がりエッジで ±200µs、データビットの立ち下がりエッジで±350µs です。
2 番目のモードは拡張された許容誤差モードです。このモードでは、立ち上がりと立ち下がり遷移のスタートビットのタイミングが± 400µs、データビットの立ち上がりエッジで ±300µs、データビットの立ち下がりエッジで ±500µs に拡張されます。

6

エラー処理7• エラーは、立ち下がりエッジ間の周期が最小のデータビット周期よりも短い場合(つまり、有効なビットとしては短すぎる場合)に定義されます。その他のタイミングエラーは CEC 仕様の対象外です – ユーザがアクションを定義します。
• エラー通知（エラービット）は、CEC ラインにおいて公称データビット周期（公称値で 3.6ms）の1.4 倍から 1.6 倍の長さで続くローインピーダンスの周期です。
ハイインピーダンス

3.6ms±0.24ms

ローインピーダンス• メッセージは喪失したものとみなされ、以下の条件により再送信することができます。
• メッセージは、直接アドレス指定されたメッセージでは確認応答されません。
• メッセージは、ブロードキャストメッセージでは否定応答されます。
• CEC ライン上で予期しないローインピーダンスが検出されました（ラインエラー）。

受信データビット（スタートビットを除く）は、次の場合に無効と見なされます。
• 立ち上がりエッジと立ち下がりエッジの間の周期が、HDMI-CEC仕様で定義されている許容誤差マージンを超えている。この場合、ビットタイミングエラー（BTE）が発行されます。
• 立ち下がりエッジの間の周期が、HDMI-CEC 仕様で定義されている許容誤差マージンを超えている。この場合、ビット周期エラー（BPE）が発行されます。

BTE エラーまたは BPE エラーが検出された場合、CEC ペリフェラル
は、エラービットを生成して他のフォロワおよび主にイニシエータに通知します。エラービットは、CEC ラインにおいて公称データビット周期（公称 3.6ms）の 1.4 倍から 1.6 倍の長さで続くローインピーダンスの周期です。
メッセージは喪失したものとみなされ、以下の条件により再送信することができます。
• メッセージは、直接アドレス指定されたメッセージでは確認応答されません。
• メッセージは、ブロードキャストメッセージでは否定応答されます。
• CEC ライン上で予期しないローインピーダンスが検出されました（ラインエラー）。

7ビットタイミングエラー検出

8

データビット
0.6ms

1.5ms

2.4ms

1.05ms

立ち上がり
0.0
エッジ

0.3

RxTol = 0

BRE

RxTol = 1

立ち下がり
0.0
エッジ

RxTol = 0
RxTol = 1

0.3

0.4

BRE

0.4

0.8

0.8

0.9

1.2

1.3

1.7

”1”

BRE

”0”

”1”

BRE

”0”

0.9

1.2
SBPE

SBPE

1.3

1.7

1.8

1.8
BRE

BRE

1.9

2.05

2.75
OK

2.9
LBPE

OK

LBPE

• BRE：Bit Rising Error（ビット立ち上がりエラー）• SBPE：Short Bit Period Error（ショートビット周期エラー）• LBPE：Long Bit Period（ロングビット周期）

このスライドでは、メッセージ受信時のさまざまなビットタイミングエラーについて説明します。

•ビット立ち上がりエラー（BRE）は、RxTol で設定された Rx ウィン
ドウの外のデータビット内で立ち上がりエッジが検出されたときにハードウェアによって設定されます。BRE の検出時にビットBRESTP が "1" の場合、CEC メッセージの受信はオプションで中止され、ビット BREGEN が "1" の場合、CEC ラインでエラービットがオプションで生成されます。

•ショートビット周期エラー（SBPE）は、RxTol マージンによる予想よりも前にデータビットを終了する立ち下がりエッジが検出されると、ハードウェアによって設定されます。SBPE が検出されるとCEC ラインでエラービットが常に生成され、受信が中止されます。
CEC ラインが再びアイドルになると、CEC は次のスタートビットの待機を開始します。

•ロングビット周期エラー（LPBE）は、最大 RxTol マージンの後に立ち上がりエッジまたは立ち下がりエッジが検出されたときにハードウェアによって設定されます。LBPE 検出メッセージにより、LPBPEGEN が "1" に設定されている場合、受信は常に中止され、CEC ラインでエラービットがオプションで生成されます。

8

HDMI-CEC 割込み(1/2)
割込みイベント説明

RXBR

Rx バイト受信

RXEND

受信終了

RXOVR

Rx オーバーラン

BRE

Rx ビット立ち上がりエラー

SBPE

Rx ショートビット周期エラー

LBPE

Rx ロングビット周期エラー

RXACKERx 確認応答喪失エラー

ここでは、HDMI-CEC の受信割込みイベントの概要を示します。
受信ブロック転送が完了したか、または受信エラーが発生した場
合、受信中に割込みが生成されます。

9

HDMI-CEC 割込み(2/2)
割込みイベント

説明

ARBLST

アービトレーション喪失

TXBR

Tx バイトリクエスト

TXEND

送信終了

TXUDR

Tx バッファアンダーラン

TXERR

Tx エラーTXACKETx 確認応答喪失エラー

ここでは、HDMI-CEC の送信割込みイベントの概要を示します。
送信ブロック転送が完了するか、または送信エラーが発生した場
合、送信中に割込みが生成されます。

10

低電力モード
システムモード

説明

RUN

アクティブ

SLEEP （MPU またはMCU がサブシステム状態）

アクティブ

STOP + LP-STOPペリフェラルはアクティブではありませんが、HDMI-CEC コントローラからの v により、デバイスはデータ受信時に STOP モードからウェイクアップします。

LPLV-STOP

非アクティブ。ペリフェラルレジスタの内容は保持されます。

STANDBY

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

HDMI-CEC ペリフェラルは、RUN モードおよび SLEEP モードでアクティブとなります。
STOP モードではアクティブではありませんが、このペリフェラルには CPU クロックとは独立したクロックドメインがあるため、HDMI-CEC コントローラからの割込みにより、データ受信時にデバイスは STOP モードからウェイクアップします。
STANDBY モードでは、ペリフェラルはパワーダウン状態であり、STANDBY を終了した後に再初期化する必要があります。

11

関連ペリフェラル

12• 以下は、HDMI-CEC コントローラに関連するペリフェラルのリストです。詳細については、必要時にこれらのトレーニングを参照してください。
• リセットおよびクロック制御（RCC）• 割込み（NVIC）• 汎用入力／出力（GPIO）

これは、HDMI-CEC モジュールに関連するペリフェラルのリストです。ユーザは、HDMI-CEC インタフェースを正しく構成して使用するために、これらのペリフェラル間のすべての関係を良く理解する必要があります。

12