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できるようにしときました.
訂正本連載(完)をご覧ください.project folder詰め合わせをzipで置きました.

ソースの下半分ぐらいはプリント基板上の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の実装をしようかの.

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

前へ       次へ

かしこ

9 件のコメント:

  1. AUOのプリント基板が壊れています、どうやって修理したら良いのか、教えて頂きますか?
    型番:T370HW02 VF CTRL BD.37T04-C0Hです。

    返信削除
    返信
    1. いや~そういうmodule部品が壊れちゃったら修理は無理じゃないですかね.
      触れる場所がほとんどないですから.
      お力になれずすいません.

      削除
  2. 勝手ながら非常に参考にさせて頂いております。多謝多謝。誠に勝手ながらverilogソースをDLしようとしたら「ご指定のファイル、フォルダーの共有および公開は終了いたしました。」と出て大泣きしてます。勝手ついでにもしももしもご慈悲を頂けるならDLさせて下さい。sonasept@yahoo.co.jpです。DL出来なくても絶対に〇〇なんて言いません。しかも匿名だし虫が良すぎで恐縮してます。

    返信削除
    返信
    1. すみませんでした.
      もしかしたらyahooでかつて公開しており、yahooアカウントを削除して巻き添えになったかもしれません.

      ちょっとおまちを.

      削除
    2. わかりました.
      この連載の最終回にproject folderをzip圧縮したものをupしてあります.
      【電子工作】 AUO B101EAN01 でHDMI LCD displayを作ってみる (完)
      https://hirasaka001.blogspot.com/2017/01/auo-b101ean01-hdmi-lcd-display_21.html

      そのページの、これをDLできると思います.
      https://drive.google.com/file/d/1c5Poh31uI026JrM6s13ELkhfD7ESaQUH/view

      DL出来なかったりしたらご連絡くださいませ.

      リンク切れはあとで直しておきます.ではー

      削除
    3. ありがとうございます。最後まで読んでからMSGすればよかったですね。すみませんでした。お陰様でイミフなSYNC同期について分かった気がしてきました。感謝感謝多謝多謝です。

      削除
    4. おはよーございます.
      頑張ってくださーい.
      よろしくお願いいたします.

      削除
  3. ありがとうございました。 手元で横たわって暇してるcycloneV(Vと聞くと脳内にシュワちゃんのVが出てきます。)に移植してみました。もぉー感動です。入信したい気持ちです。本当にありがとうございました。

    返信削除