基于Lattice FPGA XO2 完成电梯TFT LCD显示屏的驱动方案

本方案采用FPGA作为驱动屏幕的装置,有下列几项优点:

  1. 适合各种不同TFT-LCD的界面规格,诸如 并口 RGB 888/ BT656/ BT709 /LVDS /MIPI DSI 等市场规格上常用的界面

  2. 支持不同分辨率的屏,可以从320x240 ,640x480 , 800x600 , 1280x720, 1024x 800, 1920x1080 ,640x480 , 800x600 , 1280x720, 1024x 800, 1920x1080 等

  3. 支持不同祯率的要求,如 30祯/60/60祯 等等

  4. 支持字裤与图形编码,在许多应用中,可以自由定义英数字及中文繁体简体和特殊符号等,可以显示在屏幕上,并给予不同颜色与底图的算法,当需要文字与底图叠加的功能要求也能轻易做到

  5. 方案简单,由于采用逻辑编码,不容易死机,,不会像MCU一样容易跑飞而当机或花屏

  6. 升级容易,只要在FPGA的逻辑容量范围内,可以随意改变逻辑编排,方便增加功能与提升性能,不需要额外的电路辅助

简单易用的逻辑编成软体综合布局布线工具,以下将以简单的步骤与方法带领各位入门:

下列介绍如何编写RTL代码点亮TFT LCD显示屏幕

材料:

  • FPGA Lattice FPGA XO2

  • TFT LCD 800X480

  • USB 下载线

  • Verilog 编译工具

TFT LCD 屏幕介绍:

下方所示的屏幕规格为:

  • 800 X 600 点RGB 格式

  • 色彩深度为 16,777,216色深(24bit) 或 262,144色深(18 bit)

先选用适合分辨率的屏:

连接线的接法:LVDS脚位说明:

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

ideo 的LVDS内容说明:

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 )

);

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 )

);

搭建原厂 提供的IP:

module top (

  output wire           reset_lcd,

  //lvds pin

  output wire           LVDS_CLK,

  output wire [3:0]      LVDS_DATA  );

这里调用有用到的各IP模块

. .(此处请自由发挥)

endmodule

搭建WPI 提供的IP:

PLL:

On chip OSC:

EBR:

PFU:

LVDS I/O:

  • 器件料号: MachXO2:LCMXO2-7000HE-TQFP144

Bank4 LVDS I/O:

FPGA XO2器件介绍:

  • 把FPGA I/O Pin 接到TFT LCD LED PWM Pin

FPGA内的资源:

  • 规划FPGA逻辑模块: (下图为连接好的各模块图)

搭建 top module:

  1. 使用 PLA10A/LVDS_D0+

  2. 使用 PLA10B/LVDS_D0-

  3. 使用 PLA11A/LVDS_D1+

  4. 使用 PLA11B/LVDS_D1-

  5. 使用 PLA12A/LVDS_D2+

  6. 使用 PLA12B/LVDS_D2-

  7. 使用 PLA15A/LVDS_D3+

  8. 使用 PLA15B/LVDS_D3-

  9. 使用 PLA10A/LVDS_clk+

  10. 使用 PLA17B/LVDS_clk-

  11. 使用 PLA3A /PWM

  12. 使用 PLA3B /MSL

  13. 使用 PLA4A /DPS

  14. 使用 PLA4B /FRC

使用综合布局布线工具:

下载烧录程序到FPGA板子:

 恭喜你!现在就可以看到显示画面啰!!

场景应用图

展示板实物图

方案方块图

核心技术优势

  • 采用FPGA来驱动显示屏TFT-LCD, 有着比MCU更高效能,及更高灵活度, 不论是 RGB888的并行接口或是LVDS的串型接口, 可以轻易定义封包内容,也能随意地编解码各家的显示屏

  • 对于不同分辨率和不同色深要求的应用场合,绝对是FPGA来做主控端再适合也不过了

  • 低的操作频率,不发烫,省电等等优势, 是你的方案首选

方案规格

  • LVDS分辨率支持 1920x1080p 以内

  • 祯率可以30fps 或60fps 

  • 支持自定义协议包, 支持通用LVDS标准协议包

来源大大通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值