GPU設計をあれこれ悩んでいるうちに、ZyboにVGAがついていることを発見して(私の目は節穴か?)、ちょっと息抜きにじゃあHDMI側で入力の実験などトライ中である。
ということで、我が家にあったHDC-DX3という、松下電器製ハンディーカム(おい!)を繋いでみる。
HDMIの復号部はとりあえず書いてみて、SERDESの移相調整もシュミレーションでは通った。今回は信号ごとに調節とかせずに、MMCMのクロック移相の調整で自動でEYEの中央にラッチポイントが来るように書いてみたが、シミュレーションはともかく果たして実機で動くか?(まあ、480p とかならこれでも行けないかな?)
で、本体と繋いでみるとそもそもクロック来ない。まあある程度予想してたんですが。
案の定というか、ちゃんと EDID のROM をエミュレートが要りそうですね。
カメラ側から必死にI2Cの読み出しが着ているが最終サイクルでZybo側がACKを返していないのでエラーになってるいる図です。
しかたがない、I2Cのレシーバ書くのはともかく、ROMの中身作るのが面倒だったりします(そのへんのモニタの中身がPC繋げばグラフィックスドライバから見えるので拝借する手もありますが)。
なお、I2CなどのPULL-UPされたトライステートバスを扱うときはサンプリング間隔をある程度空けるのが必須です。I2Cバスのプルアップ抵抗による信号立ち上がりはFPGAからすると非常にゆっくりなので、信号レベルがVILとVIHの間にいる時間が長く、100MHzなんかでサンプリングしたらエライ目にあいます。
さてさて、いつ脱線から帰ってこれるのか…
コメント