LCD模块的时序规范

时间:2015-08-20 07:16:24

标签: vhdl lcd quartus

我正在为TFT LCD 7" screen by terasic编写VHDL代码,而我很难理解datasheet

中提供的时序规范
  • 第17页,表3-1 在手册(下载链接)
  • 数据表中的
  • 第15页,第8.3节(dropbox-link)

我在办公室的电脑上找到了同一液晶显示屏的VHDL代码,编写它的人也无法使用。最有趣的部分,但尚不完全清楚他写的代码:

process(Reset,clk_33)
begin   
    if Reset = '0' then
        H_count <= 0;
        V_count <= 0;
        DE <= '0';
        LCD_fin <= '0';

        R<=(others=>'0');
        G<=(others=>'0');
        B<=(others=>'0');

    elsif rising_edge(clk_33) then
        H_count <= H_count + 1;  -- Horizantal pixels count
        case V_count is -- Vertical row
            when 0 to 12 => V_sync <= '0'; LCD_fin <= '0'; -- Vertical pulse width
            when 13 to 22 => V_sync <= '1'; -- Vertical back porch
            when 23 to 502 =>  V_sync <= '1'; -- Vertical valid
            when 503 to 523 =>  V_sync <= '1'; LCD_fin <= '1';  -- Vertical front porch
            when 524 => V_count <= 0; 
        end case;
        case H_count is -- Horizontal column
            when 0 to 29 => H_sync <= '0';  -- Horizontal pulse width
            when 30 to 45 => H_sync <= '1'; -- Horizontal back porch
            when 46 to 845 => H_sync <= '1'; DE<='1'; -- Horizontal valid
            when 846 to 1054 => H_sync <= '1'; DE<='0';-- Horizontal front porch
            when 1055 => H_count <= 0; V_count <= V_count + 1;
        end case;

我知道VHDL非常好,但我似乎无法为这些项目找到一个好的表达方式:

  

HSYNC / VSYNC建立/保持时间[ns]

     

水平/垂直脉冲宽度

另外,你知道为什么会有2种操作模式(DE / SYNC)吗?我什么时候应该使用每一个?用于其他类型屏幕的模块(如VGA)要简单得多。
我的老板正在努力推动我完成这项任务,因为我现在正在为此工作一个月。如果这里的某个人对这些时间参数有一个很好的定义,我会非常高兴:)

2 个答案:

答案 0 :(得分:0)

HSYNC或水平同步信号是一个短脉冲,表示每一行的开始。 类似地,VSYNC或垂直同步信号是一个短脉冲,表示每帧的开始。

脉冲宽度是每个信号处于逻辑高状态的时间。在您的示例中,HSYNC的逻辑高电平为13ns至523ns。这意味着510ns是HSYNC的脉冲宽度

答案 1 :(得分:0)

定义:

  

HSYNC / VSYNC建立/保持时间[ns]

这是33 [mhz] DCLK从&#39; 1&#39;上升所需的最短时间。到&#39; 0&#39;反之亦然。

  

水平/垂直脉冲宽度

对于LCD_HSD,例如,LCD_HSD为高电平的DCLK脉冲量为&#39; tollin&#39;提及。 LCD_HSD的LCD_VSD与DCLK相同。

我已经将一个存储库上传到github,其中包含一个LCD驱动程序quartus项目,该项目创建了一个舒适的通用模块供所有人使用:

https://github.com/Doron-Behar/VEEK-MT_LCD-driver