簡易的なDisplayPort用のAUXコントローラを作ってみた!

はじめに

高速信号における物理層の測定を行う場合、オシロスコープや信号発生器のほかに、DUTを制御するための各種コントローラが必要となることがあります。

例えばHDMIではSCDC/EDIDコントローラが必要です(図1)。USB Type-C Alt Modeの場合は、DUTをAlt Modeに入れ、所望のピンアサインにするためにPDコントローラが必要となります。同様に、DisplayPort (DP)でもAUXコントローラが必要となります。

EDID/SCDC(FRL)コントローラ

図1 アリオン製 AJSC-1 SCDC/EDIDコントローラ

 

DisplayPort (DP)におけるAUX CHとは

DPでは、AUX+、AUX-からなるAuxiliary Channel (AUX CH) という差動信号(マンチェスターII符号化、データレート1Mbps)によりSource・Sink間でネゴシエーションを行います。
具体的には、Sinkが持つDPCD (DisplayPort Configuration Data)、EDID、HDCPポートなどへのアクセスをAUX CHを介して行います。

物理層(PHY Layer)測定においてAUXコントローラが必要

DPではビデオデータの送受信の前に、リンクを成立させるためのリンクトレーニングを行います。Sink機器内部にあるDPCDには、リンクトレーニング用のフィールドやジッタ耐性試験でも使用されるエラーカウンターなどが用意されています。そのため、PHY測定においては、オシロスコープやBERTの他に、DUTを制御したりエラー数を読み出すためのAUX CHコントローラが必要で市販されています。

例えばUnigrafの信号発生器DPT-200(図2)は、Sink試験用のAUXコントローラとしても動作し、小型のためとても便利です。DPCDの仕様に完全に従っているDUTの場合は、このような市販品のAUXコントローラでもちろん動作します。しかしDUTの中には、テストモードに入るのに特殊なDPCD設定が必要だったり、開発中のためにAUXコントローラとの相性が良くない場合があります。多くのDUTを扱うテストラボの場合は、このようなケースに対応するために、自由度が高くかつ小型なサブ機があると便利です。(オシロスコープやBERTと同じテーブルに置くAUXコントローラとしては幅15センチ以下には抑えたいものです。)

AUXコントローラ

図2 DP用のAUXコントローラUnigraf DPT-200

 

AUX コントローラを試作してみる

そこで小規模なAUXコントローラを試作してみます。
大規模な高速信号処理向けFPGAは用いず、Cypress社製マイコンPSoCを使用します。PSoCだとAUX CHの仕様は制限されますが、論理回路・ソフトウェアを手軽にかつ一元的に組むことができ、外付けの部品も少なく済むため気軽に試作が可能です。
試作に使用するボードとして、CQ出版社のPSoC 5LP MCU基板、および PSoC5 System Boardを用います。今回、DP Source側のAUX CH、HPDのみを模擬してみますが、DP Sink側のAUX CHやSource/Sink間のAUX通信のモニタも同じ要領で作成可能です。
図3はPSoCのトップデザインの一部です。
AUX CHは単純なマンチェスター符号化ではなく、プリチャージやSyncパターン、STOPコンディションなどの独自のパターンを含むため、AUXレシーバ・トランスミッタ、およびFIFO用のコンポーネントは自作しました。
送信したいデータをFIFOに送り込み、AUX信号に変換して送信、逆にAUX信号を受信したら(SYNCパターンが来たらAUX信号と判断することとします)
デコード後FIFOに格納し、割り込みフラグを立てます。
ログを吐き出すためにUSB UARTといったコンポーネントも使用します。
上記デザインを利用するCPU側のコードも作成します(図4)。
データの送受信処理に加えて、受信側が返すACK, NACK, DEFERの処理や、EDIDなどのI2Cデバイスへのアクセスなのか、それともDPCDへのアクセスなのか、タイムアウトした時などで条件分岐を行います。

図3 PSoCのトップデザイン

 

 

 

 

図4 作成したコードの一部

PSoCのデザインを終えたら、外部回路の準備をします。
TI製のLVDSトランシーバIC SN65MLVD200Aを使用して、PSoCからのシングルエンド信号を差動信号変換します。
DP仕様書のAUX CHの回路通りにプルアップ・プルダウン抵抗やコンデンサを接続します。また、HPDのピンも用意します。
外部回路の準備もできたら、実際のDP Sink機器と接続してみます。
今回使用したPSoCボードはDPコネクタを搭載していないため、Allionのフィクスチャ(DPI-P2RP)を使って、Sink機器のAUX+ AUX- HPDを取り出して試作したAUXコントローラに接続します(図5)。

図5 フィクスチャを使用して実際のDP SinkのAUX CHへ接続

出力信号波形をUSBオシロスコープで簡単に見てみました。プリチャージやシンクパターン、STOPコンディションが正常に出力されていることが確認できます(図6)。

図6 AUXコントローラからの出力信号波形

最後に、いよいよ実際のSinkのEDIDの読み出しやDPCDへのアクセスを試してみます。
図7はAUXコントローラが吐き出したUARTログです。

Unigraf製AUX モニタDPA-400による客観的なAUX通信ログ(図8)と一致しており、ソフトウェアとしても正しく処理できていることが分かります。

図7 AUXコントローラからのUARTログ

 

図8 外部からモニタしたAUX通信ログ。図7のログと一致していることがわかる。

まとめ

PHY測定を目的とした簡易的なDP AUX CHコントローラを、安価なマイコンを使用して作成することができました。
AUX CH周辺回路やソフトウェアをいじることもできますので、開発中でAUX CHに問題があるDUTにも対応がしやすく有効です。
AUX CHで採用されているマンチェスター符号はUSB-PDで採用されているBMC符号と似ているため、簡易的なUSB PDコントローラにも応用できるでしょう。

本記事に関するお問い合わせ

Check Also

オシロスコープのCSV波形Fileはなぜ大きい? CSV波形FileとBinary波形Fileの構造を詳しく解説します

読者の中に評価でオシロスコープ

Subscribe to get MCPC Technical Paper.
Subscribe
close-image
Subscribe to get the UHD Technical Paper.
Subscribe
close-image
Subscribe to get HDMI Technical Paper.
Subscribe
close-image
Subscribe to get Wi-Fi Technical Paper.
Subscribe
close-image
Subscribe to get USB Technical Paper.
Subscribe
close-image