关于CPLD驱动TFT液晶的问题
TFT真彩液晶在驱动时,如果时钟是变宽的是否会影响到显示?always @ ( posedge GCLK )
begin
if ( r_tft_clk == 0 )
begin
r_tft_rgb <= RAM_D;
if( TFT_DE )
r_tft_addr <= r_tft_addr+1'b1;
else
if( r_tft_addr >= 20'd479999 )
r_tft_addr <= 0;
end
end
always @ ( posedge GCLK )
begin
case(r_state)
0: begin
r_ram_we1 = 1'b1; //read;
r_ram_idx = 1'b1; //TFT addr;
r_tft_clk = 1'b0;
r_state = 1;
end
1: begin
r_tft_clk = 1'b1;
if( r_eb_busy )
begin
r_ram_idx = 1'b0; //Cmd addr;
if( r_rw_ram_flg == 0 ) //Read
r_ram_we1 = 1'b0; //write
else
r_ram_we1 = 1'b1; //read
r_state = 2;
end
else
r_state = 0;
end
2:begin
//r_tft_clk <= 1'b0;
r_ram_we1 = 1'b1; //read;
r_ram_idx = 1'b1; //TFT addr;
r_eb_dat = RAM_D;
r_eb_busy <= 1'b0;
r_state = 0;
end
default:
begin
r_state = 0;
end
endcase
end
以上是部分驱动液晶显示的代码,但是会在读/写数据的时候液晶屏幕出现麻点,不读写的时候恢复正常显示,还找不到原因。
但是我用变宽1:2来直接显示,而从不读写数据也不会有麻点出现。各位高手能给点思路吗? 发现即使r_tft_rgb <= RAM_D; 赋值为一个固定值 r_tft_rgb <= 8'b00000011,依然会有麻点。
那说明读写信号对rgb信号有干扰?直接串到液晶去了? 回复【楼主位】whwlxl
-----------------------------------------------------------------------
读写时序换个位置,我碰到过,现在没有嘛点了 回复【2楼】tly823875
-----------------------------------------------------------------------
谢谢你,我的也搞定了!显示效果也不错,支持数据读写功能!
这次做完了整个东西对时序的安排以及阻塞与非阻塞的使用有了很深刻的理解。
以前很多时候在用软件思维写verilog,这样是不行的! 回复【3楼】whwlxl
-----------------------------------------------------------------------
正解,软件思维是学习CPLD的绊脚石,呵呵 回复【3楼】whwlxl
-----------------------------------------------------------------------
不知道LZ还有没有看这个贴子,我现在也遇到差不多的问题,显示一般的色,没有问题,显示图片的话那就成问题了,很难看,还有所说的麻点我也有,想知道你们是怎么解决的,能否分享一下谢谢~ 回复【2楼】tly823875
-----------------------------------------------------------------------
朋友,还有没有来看这个贴啊!我就想知道这个换个位置就能解决这个问题?具体怎么做啊!目前我写的时候还是有很多杂点!真郁闷啊1 呵呵楼上看你的图像的表情也挺焦急和痛苦的!
把全部程序出来可能有高手可以帮到你的,
如果不发出谁会猜出你的问题呢呵呵!! 可不可以共享一下源代码!
页:
[1]