2017年1月3日火曜日

【電子工作】 AUO B101EAN01 でHDMI LCD displayを作ってみる (2)

明けましておめでとうございます.今年も回路をたくさん作ろうと思います.


中華通販で入手した10.1inch、1280x800のLCD(B101EAN01)を点灯させました.

↓こんな感じで試験点灯成功.RGBをインクリメントさせて表示させただけですので、HDMI IFはまだ実装してません.LCDパネルとFPGAの接続を確認した段階です.
↓裏側はこんなになっています.
LCDパネル現物ですと物理強度が心配なので、余っていたキッチンパネルの切れ端に接着剤で貼り付けて補強としました.100均で買った写真立てで立てています.7セグLEDは遊びで意味も無くフレームカウントを表示させています.
↓左側の黄色いテープでベタベタと貼り付けた部分には、秋葉原のaitendoで買った0.5mmピッチ36pin変換コネクタがひっついています.右側のプリント基板は、Xilinx spartan-6 XC6SLX9が載っています.HDMI~LCDのブリッジ基板として使います. プログラミングROMはSPIの16MBが載ってます.iMPACTで焼くときはM25P16を指定すればOK.プリント基板の回路図はこちら
やや価格の高いspartan6を使ったのには理由があります.1280x800のLCDをドライブするには、500MHzのclockを要求します.しかしspartan3EやCycloneの安価なFPGA boardですと、PLLが500MHzに対応してないんです.なので泣く泣くspartan6を使いました.

↓FPGAとLCDのクロックおよびデータレートはこういう構造になっています.HDMIは未実装なのでHDMIはまだ在りません.
・源発振50MHzから、500MHzのデータクロックを生成し、それを7分周した71MHzがpixelクロックになっています.
・LCDのクロック入力はpixelクロックの71MHzです.(内部で7倍してる)
・LCDのデータ入力は4bit幅です.
・LCDパネルの仕様が、1pixelを7分割する仕様なので、7:1のクロックに軽くムカつきます.
・RGB生成は、インクリメンタルデータを生成しているだけですので冒頭の写真の表示になります.

↓LCDパネルB101EAN01のピンアサインはこうなっています.ピン番号の若い順に簡単に説明します.
VSS:         GND
VDD:         3.3V
RXin[3:0]:   データ入力、信号仕様はLVDS、ここでは500Mbps
LVDS_RX:  クロック入力、信号仕様はLVDS、ここでは71MHz
FB[4:1]:     バックライト電源のGND
VLED[4:1]: バックライト電源の18V  (眩しかったら下げてもOK)
↓つぎにLCDパネルのタイミングチャートです.多くのLCDパネルはこれに似たIF仕様であるようです.
LVDS_CLK: Pixelクロック、ここでは71MHz
RGB[7:0]:   RGBなどを7時分割して500MbpsでLCDパネルに注入します
DE:            HSYNC/VSYNC/Pixel enableなどを全て包含する制御信号 (仕様は割愛)
VS:            V-SYNCだが使われてないので0固定でOK
HS:            H-SYNCだが使われてないので0固定でOK

verilogソースと、制約ファイルはDLできるようにしときました.
ソースの下半分ぐらいはプリント基板上のLEDを点灯させるためのお遊びコードなので本来不要な部分なので無視してください.
core generatorで生成した、ブラックボックス的なmoduleが2つあります.
  1) pll()   入力50MHz、出力500MHz/71MHz
  2) p2s()   SelectIO、パラシリ変換、入力35bit幅(71Mレート)、出力5bit幅LVDS(500Mレート)

当初はパラシリ変換回路を自作した(verilogソース)のですが、clock 500MHzでタイミングが微妙にMETしませんでしたので、ブラックボックスのp2s()を採用してなんとかMETさせました.ユーザーロジックを500MHzで動かすのはキツいようです.

↓LCDパネル(左)とFPGA基板(右)の接続状況.
電源は、3.3Vのロジック電源と、バックライトの18Vです.
↓LVDSには100Ω終端を入れてます.場所的に効いてる気はしないんだが、念のため.
↓バックライトは18Vtypなのですが、眩しいので17Vに下げてます.
↓蛇足ながら、FPGAプリント基板のプログラミング用のJTAGコネクタに問題が.
↓Xilinxの焼き冶具とピン配置が不一致なのでした.
↓なので、ピン配置を整列させる小細工が必要でした.

さて、次はHDMIの実装をしようかの.

なお、ここに書いた情報に間違いあったら素直に死んでください.

前へ       次へ

かしこ

0 件のコメント:

コメントを投稿