User Tools

Site Tools


study:fpga:20241031-001:index

基於Lattice FPGA XO2 完成電梯TFT LCD顯示屏的驅動方案 (2024-10-31)

Local Backup

本方案採用FPGA作為驅動屏幕的裝置,有下列幾項優點:

  • 1, 適合各種不同TFT-LCD的介面規格,諸如 並口 RGB 888/ BT656/ BT709 /LVDS /MIPI DSI 等市場規格上常用的介面
  • 2, 支持不同分辨率的屏,可以從320×240 ,640×480 , 800×600 , 1280×720, 1024x 800, 1920×1080 ,640×480 , 800×600 , 1280×720, 1024x 800, 1920×1080 等
  • 3, 支持不同禎率的要求,如 30禎/60/60禎 等等
  • 4, 支持字褲與圖形編碼,在許多應用中,可以自由定義英數字及中文繁體簡體和特殊符號等,可以顯示在屏幕上,並給予不同顏色與底圖的算法,當需要文字與底圖疊加的功能要求也能輕易做到
  • 5, 方案簡單,由於採用邏輯編碼,不容易死機,,不會像MCU一樣容易跑飛而當機或花屏
  • 6, 升級容易,只要在FPGA的邏輯容量範圍內,可以隨意改變邏輯編排,方便增加功能與提升性能,不需要額外的電路輔助

簡單易用的邏輯編成軟體綜合佈局佈線工具

  • 以下將以簡單的步驟與方法帶領各位入門
  • 1, 下列介紹如何編寫RTL代碼點亮TFT LCD顯示屏幕
  • 2, 材料:
    • FPGA Lattice FPGA XO2
    • TFT LCD 800×480
    • USB 下載線
    • Verilog 編譯工具
  • 3, TFT LCD 屏幕介紹:
    • 先選用適合分辨率的屏:
      • 下方所示的屏幕規格為: 800 X 600 點RGB 格式
      • 色彩深度為 16,777,216色深(24bit) 或 262,144色深(18 bit)

      • LCD屏規格
    • 連接線的接法:LVDS腳位說明:

      • LVDS屏規格
    • 把FPGA LVDS Pin 接到TFT LCD LVDS Pin(D0+/D0-/ D1+/D1-/ D2+/D2-/ D3+/D3-/CLK+/CLK-)

      • 連接LVDS線路
  • 4, ideo 的LVDS內容說明:

    • LVDS封包格式1LVDS封包格式 2
    • 把FPGA I/O Pin 接到TFT LCD LED PWM Pin
      • FPGA XO2器件介紹:
        • 器件料號: MachXO2:LCMXO2-7000HE-TQFP144
        • Bank4 LVDS I/O:
          • 使用 PLA10A/LVDS_D0+
          • 使用 PLA10B/LVDS_D0-
          • 使用 PLA11A/LVDS_D1+
          • 使用 PLA11B/LVDS_D1-
          • 使用 PLA12A/LVDS_D2+
          • 使用 PLA12B/LVDS_D2-
          • 使用 PLA15A/LVDS_D3+
          • 使用 PLA15B/LVDS_D3-
          • 使用 PLA10A/LVDS_clk+
          • 使用 PLA17B/LVDS_clk-
          • 使用 PLA3A /PWM
          • 使用 PLA3B /MSL
          • 使用 PLA4A /DPS
          • 使用 PLA4B /FRC

          • FPGA接腳定義
        • FPGA內的資源:

          • FPGA內部資源
          • PLL:
          • On chip OSC:
          • EBR:
          • PFU:
          • LVDS I/O:
        • 規劃FPGA邏輯模塊: (下圖為連接好的各模塊圖)

          • 邏輯模塊

搭建 top module:

  • module top (
      output wire           reset_lcd,
      //lvds pin
      output wire           LVDS_CLK,
      output wire [3:0]      LVDS_DATA  );
      * 這裡調用有用到的各IP模塊
      *. .(此處請自由發揮)
      *. 
    endmodule

搭建WPI 提供的IP:

  • delay_rst delay1(
      .clk(osc_38),
      .rst_n(rst_n),
      .reset_lcd(reset_lcd)
      );
     
    sync_gen gen1(
      .r(r),
      .g(g),
      .b(b),
      .DE(DE),
      .Vsync(Vsync),
      .Hsync(Hsync),
      .clk(clk),
      .rst_n(rst_n)
    )
    
    lvdstx lvdstx_inst0 (
    .clk_s(osc_38 ), 
    .reset(1'b0 ), 
    .clk(pll_166 ),  
    .dataout0(tx0_a ),
    .dataout1(tx0_b ),
    .dataout2(tx0_c ),
    .dataout3(tx0_d ),
    .sclk( ),  
    .tx_ready( ),
    //lvds pin
    .clkout(LVDS_CLK ),
    .dout(LVDS_DATA )
    );

  • IP1

  • IP2

  • IP3

搭建原廠 提供的IP:

  • defparam OSCH_inst.NOM_FREQ = "38";
    OSCH OSCH_inst(
    .STDBY(1'b0),  
    .OSC(osc_38),   
    .SEDSTDBY()
    ); //synthesis syn_black_box
     
    pll pll_inst (
    .CLKI(osc_38 ),  
    .CLKOP(pll_166 ),
    .CLKOS(pll_47 ), 
    .CLKOS2(pll_spi ),
    .CLKOS3(pll_100 )
    );

  • IP4

  • IP5

使用綜合佈局佈線工具:


  • 綜合佈局佈線
  • 下載燒錄程序到FPGA板子:

    • 下載代碼到FPGA

恭喜你!現在就可以看到顯示畫面囉!!


  • 成功的畫面
  • 2 person(s) visited this page until now.

study/fpga/20241031-001/index.txt · Last modified: 2024/10/31 17:42 (external edit)