Top >> Personal Computer >> 切替器改造

DVI切替器の改造



2005-9-1公開開始
2005-12-29補足を追加

デスク周りのPCが増え、どれもDVI-Dで液晶出力ができるようになったので、エレコムのDVI-D切替器「KVM-DVP4」を導入した。

これまで市販されていたDVI-D切替器は、まだ出始めだったせいか2:1切替のものがほとんどで、4:1切替は少数派だった。しかもその貴重な4:1は、KB/MOUSE端子がUSBであることがほとんど。PS/2が欲しい我が家では、導入に二の足を踏んでいたのだ。

そんなとき、やっと待ち望んでいた4:1+PS/2切替器が登場。意外に安価だったので、すぐさま購入してみたのだけど、いきなりトラブルに見舞われた。

判明した問題点は二つある。

  1. PC起動時に切替器でそのPCを選択していないと、画面の解像度がXGAで起動してしまう
  2. ValueStar Gに内蔵されたRadeon X600では、一度他のPCに切り換えると、再度セレクトしても画面が出ない

1.の問題は、PCの起動時にディスプレイのEDID(Extended Display IDentification data)が読み取れないことが理由だろう。ある意味当然の結果ではあるが、うちではUXGAの液晶パネルを使っているので、毎回切り換えるのは非常に不便だ。

2.の問題はさらに致命的。どうも、ValueStarは、一旦ディスプレイが取り外されるとデジタル側のディスプレイは捨て、アナログ端子を「プライマリディスプレイ」に切り換えてしまうようだ。なので、もう一度セレクトし直しても、デジタル画面は表示されない。しかしこれでは切替器の意味が無いではないか。

実はその後さらに別の問題が発覚した。DELL機にさしているRadeon X600では、起動時に切替器でセレクトしておかないと、そもそもデジタル出力が出ない。これもやはりアナログ端子側がプライマリになっていることが原因だろうか。

いずれにしろ、この状況はあまりに不便だ。そこで切替器を改造することで、この状態を解消したい。

切替器改造にあたり、まずは改造の方針を確認しよう。今回解消したい問題は単純。以下の2つが満足できればよい。

  1. チャンネルをセレクトしていない状態でもディスプレイが繋がっているように見える
  2. 別のチャンネルに切換えても、ディスプレイは繋がりっぱなしに見える

つまり、だ。PCから見て、切替器が繋がっているように見えなければいいのである。これを実現するには、切替器の状態にかかわらず、常に各PCに対してEDIDを送信できる状態にあればよい。切替器の端子のうち、各PCに繋がる4つの端子部分に「EDID送信機能」をつければよいというわけだ。

EDID送信機能といっても、実はそれほど大がかりなものではない。実際には小指の先ほどの小さな部品、シリアルEEPROMを搭載するだけである。わずか100円×4ほどの小さな部品と多少の手間で切替器の使い勝手が改善されるのだから、これは試してみねばなるまい。なんとなくおもしろそうだし。

とりあえず方針は決まったので、切替器を分解して中を見てみよう。安いだけあって構造は非常に簡単なのだけど、分解にはけっこう手間がかかる。なにせねじが多いのだ。

まず本体は、上面と下面に2本ずつ、計4本ある黒塗装済みの皿ねじをはずす。

内部の基板は、DVI基板とPS/2+オーディオ基板の2枚構成だ。2枚重なった状態でケースに固定されているのでこの固定ねじ(5本)をはずす。さらにDVIコネクタ左右の、プラグ固定用の受けねじ(10本)をはずすという作業。ねじの数が多く、種類も3通りあるのでけっこう面倒。

今回加工するのは、いうまでもなく、「DVI基板側」だ。

より詳しく言えば、各PCに接続されるDVIコネクタ(写真右)に加工を加え、EDID用のROMを搭載する。この改造により、そのチャンネルが選択されていない状態でも、PCは「そこにディスプレイがつながっている」と勘違いしてくれるようになるはずだ。

いよいよ切替器の加工を開始する。EDID用のEEPROMは小さな部品なので、基板を介さず、信号を引っぱり出しやすいDVIコネクタ上に直接取り付けることにした。

そこで、まず最初に、コネクタの裏側に出てきている一部のピンを切断する。これを切断することで、コネクタと基板との間の接続を遮断するわけだ。切断するのは、DVIコネクタのアナログピン(ピンではなく、板状の端子が出ている部分)側の、最上段3ピン分、および2段目の1ピン分。

これらのピンは、それぞれ以下の役割を果たす。

上段アナログピン8: Analog V-sync7: DDC Data6: DDC Clock
中段16: Hot Plug Detect15: Signal Ground14: +5V Power
下段24: TMDS Clock-23: TMDS Clock+22: TMDS Clock Shield

すなわち、切断するのはAnalog V-Syncと、DDC Data、DDC Clock、それにHot Plug Detectの4本の信号だ。このうち、ディスプレイの認識に実際に関係するのは、Analog V-Syncを覗く3本の信号。残るAnalog V-Syncは、実はEDIDには関わりないピンなのだが、その真下に位置するHot Plug Detectのピンを操作するため、一時的に仕方なく切り離す。切り離さず作業ができればそれに越したことはないのだけど、ちょっと無理目なのであとで元に戻すことにしよう。

DVIコネクタにEEPROMを取り付ける前に、下準備となる配線をする。

まずはじめに、16番ピン(Hot Plug Detect)に4.7kΩの抵抗を取り付ける。この抵抗のもう一方の先は、14番ピン、すなわち+5Vに接続する。このようにすることで、Hot Plug Detectは常にプルアップされた状態となる

Hot Plug Detectというのは、PCがDVI端子にディスプレイが接続されているかどうかを判定するのに用いる信号だ。このレベルがHになると、PCはビデオカードの先にディスプレイが取り付けられたと認識する。

切替器では、そのチャンネルがセレクトされた時にHot Plug DetectをHレベルとするようだ。おそらくセレクトされていない時にはオープンだろう。そこで、この信号を常にHレベルとなるようプルアップすることで、PCに対して「常にディスプレイがつながっている」と思わせるのである。

抵抗を半田付けする際、基板側に残った16番ピンの「片割れ」と接触しないように注意する必要がある。あとあと、元の状態に戻す気が無いのであれば、DVI基板側に残ったピンの残骸は切除してしまうのがよいだろう。ピンを残す場合は、必要に応じて絶縁チューブをかぶせて、誤って接触しないようにする。

抵抗のもう一方の端は14番ピン(+5V)に接続するが、その前に15番ピン(Signal-Ground)にすずめっき線を半田付けして、引き出しておく。この信号もEEPROMを動作させるために必要となるからだ。これらの信号についても、チューブをかぶせて他の信号と接触しないように加工する。

余談だけれども、ここで使った絶縁チューブは「ポリイミドチューブ」という、耐熱樹脂を用いたものだ。リンク先にあるように、常温220度、短時間なら400度の温度でも変形しないので、半田付けの温度くらいではびくともしない。しかも、写真を見てわかるように、すずめっき線や抵抗の足の径と同じ内径を持っているので、まるで最初からついていた被覆のようにぴったりとフィットする。今回のように細かな部分の半田付けでは威力を発揮するパーツだ。

ここまで作業が終わったら、作業の都合上切り離した8番ピン(Analog V-sync)を元通りつなぎなおす。これはアナログ信号の切替器として使用しないのであれば接続する必要も無いのだが、念のため。

これらの作業が完成したのが右の写真。奥のほうで細かい半田付けをしなければならないので面倒だけれども、これを4ch分繰り返す。

前述のように、PCから見てディスプレイがつながっているかどうかは、Hot Plug DetectがHレベルかOpenかで判定される。しかしこれだけでは、どういった解像度のディスプレイが繋がっているのかはわからない。この情報を提供するのがEDIDで、信号の規格はVESAのDDC2B規格により決まっている。

EDIDのデータは、クロックとデータという2本の信号でシリアル伝送される。DVI端子でいえば、6番ピン(DDC Clock)と7番ピン(DDC Data)が使われ、ここを流れる128バイトのデータにより、ディスプレイの機種や解像度、対応周波数を判定するわけである。

DDC ClockとDDC Dataには、DIMMのSPDで使っているのと同様に「I²Oバス対応シリアルEEPROM」が直結できる。データ量は128バイト分なのでROMの容量は1Kbitでよい。今回用意したのは半田付けしやすいDIPタイプで、24LC01B/Pという型番のEEPROMだ。1個105円。

EEPROMに書き込むEDIDデータだが、これは、切替器に接続するディスプレイのEDIDをそのままコピーしておく。4:1の切替器なので、接続されるディスプレイは1台に固定される。なので、ROMのデータも固定でいいわけだ。これが4:2や4:4といった切替器だと困ることになるわけだが、今回はそんな高級なものを使わないので関係ない。

じゃEDIDはどうやって知るのか。これには、Monitor Asset Managerというソフトが使える。

うちでは、エレコムの切替器の先にはEIZOのL985EXを接続している。まずはこのディスプレイをPCに直結した状態で「Monitor Asset Manager」を起動すると、きちんとL985EXというディスプレイが認識されていることがわかる。

で、この画面を下までスクロールしてやると、ややしたの方に「Raw EDID base」という、128バイト分のバイナリデータが並んでいるのがわかる。このデータをそのままEEPROMに書き込んでやればいいのである。


データの書き込みには、DIMMのSPDを書き換える際に作成したハードウェアと、Pony Progというプログラミングソフトを使う。

EEPROMにデータを書き込むのは、EEPROMを切替器に組み込む前に行っても、組み込んだ後に行っても良い。書き込みに必要な信号はすべてDVIコネクタ側に出てきているので、そこにプローブを当ててやれば、後から書き換えできるのである。(逆に、そうなっていないと、接続するディスプレイを交換した際にROMの書き換えが行えず不便)

とはいえ、今回はEEPROMを組み付ける前にあらかじめデータを書き込んでおいた。

さて、いよいよ最終配線。といっても、回路は非常に簡単。

EEPROMの1,2,3,4番ピン(A0,A1,A2,GND)と7番ピン(WP)はすべて、引き出しておいたGNDに接続する。5番ピン6番ピン(SDAおよびSCL)は、DVIコネクタの7番と6番(DDC DataおよびDDC Clock)にそれぞれ接続。最後の8番ピン(Vcc)はこちらも引き出しておいた+5Vの線に接続する。

そうそう、4番ピン(GND)と5番ピン(Vcc)との間には、もちろんパスコン(10μF)を忘れずに。

実際の配線では、DVIコネクタの6番7番とEEPROMの5番6番を互い違いに接続する必要があるので、EEPROMを裏返しにしてそのままコネクタのピンと半田付け。あとは残ったGNDと+5Vの線をそれぞれくっつけるだけという簡単な配線になる。
ちょっときたないけど、できあがった結果が右の写真。

ここまでできればあとはいよいよテスト。確認するのは、チャンネルを選択していない状態でPCを起動しても、ちゃんとディスプレイの型番がデバイスマネージャで認識されているかどうか。
ディスプレイつながないと確認できないじゃん。と思うのだけど、この場合はVNCなんかで別のPCからネットワーク経由で確認すればいい。まぁディスプレイが認識されなかった場合、解像度はXGAで起動されちゃうので、わざわざネットワーク経由で確認しなくてもすぐにわかるといえばわかる。

で、実験の結果はどうか。結論を言えば、うちにあるPCはすべてこの「嘘のEDID」に騙されてくれた。これにより、切替器で選択されていない状態でPCを起動してもOK。もちろん起動したあとで、別のチャンネルに切り換えても解像度が勝手に変わったりせず、何の問題も起きない。当初の目的は見事に達成されたわけで、やっとDVI-D切替器がまともに使える便利な環境が実現された。

補足 

このページの内容を参考にくださっている方が、日記ページにて私が行ったよりもはるかにスマートな改造方法を記述して下さっている。私自身は気づかなかったのだが、DVP4の基板上にはすでにEEPROM(24LC02B)が搭載されていることを発見、PCに対して偽のEDIDを送出していることを突き止めてくださった。さらに12月28日にはわざわざ解析結果の回路図まで掲載してくださっている。

詳細はリンク先を見ていただければわかるが、基板に搭載されているEEPROMを書き換え、かつHot Plug Detectをプルアップ状態に保つために抵抗を外せば、改造は終了。私が行ったEEPROMの追加搭載よりもはるかにスマートな解決方法であるし、追加部品は基本的に必要無いというのもうれしいところ。

今後このページを参考にして改造を考えている人は、先にリンク先の記述内容をよく読んだ上で、どちらの方法がいいかを検討するのがいいと思う。少なくとも、このページの内容を理解できる人であれば、リンク先に書かれた内容は理解できるはずだ。もし私がもう1台改造するとしたら、リンク先の方が行われたような、もともとボード上に載っているEEPROMの書き換え方法を取るだろう。


末筆ではあるけれど、貴重な情報のご提示について、お礼申し上げます。


リンクについて    メールを送る