搜索
bottom↓
回复: 9

驱动RGB接口的液晶,图像莫名其妙多了很多规律的列……

[复制链接]

出0入85汤圆

发表于 2019-2-10 12:54:34 | 显示全部楼层 |阅读模式
本帖最后由 bluefeel 于 2019-2-10 13:02 编辑

如标题所述,显示8*8方格,黑色方格变成9*8了。正常来说是程序问题,我也希望是程序编写有问题。但是我拿起板子摆弄到某个位置时候就正常了……我彻底不知道怎么办了。

这是显示有问题的时候


放大来看黑格变成9*8了,导致后面直接少了两个格子


我换个姿势,它就显示正常了。杜邦线太长?干扰?干扰能这么规律?


看在线仿真,黑格也是8列


液晶时序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入85汤圆

 楼主| 发表于 2019-2-10 12:56:13 | 显示全部楼层
FPGA用verilog驱动的程序

//assign flag1 = ((cnt_h - 11'd25) / 8) % 2;
assign flag1 = ((cnt_h - 11'd24) / 8) % 2;
assign flag2 = ((cnt_v - 11'd8) / 8) % 2;

assign lcd_pclk = lcd_clk;        // RGB LCD显示模块采样时钟

//assign lcd_hs  = (cnt_h <= H_SYNC - 1'b1) ? 1'b0 : 1'b1;
//assign lcd_vs  = (cnt_v <= V_SYNC - 1'b1) ? 1'b0 : 1'b1;
assign lcd_hs  = ((cnt_h == 11'd0) && (lcd_clk == 1'b1)) || ((cnt_h == 11'd4) && (lcd_clk == 1'b0)) || (cnt_h == 11'd1) || (cnt_h == 11'd2) || (cnt_h == 11'd3) ? 1'b0 : 1'b1;
assign lcd_vs  = ((cnt_v == 11'd0) && (cnt_h > 11'd4)) || ((cnt_v == 11'd1) && (cnt_h < 11'd5)) ? 1'b0 : 1'b1;

//使能RGB565数据输出
//assign lcd_en  = (((cnt_h >= 11'd25) && (cnt_h < 11'd345)) &&
assign lcd_en  = (((cnt_h >= 11'd24) && (cnt_h < 11'd344)) &&
                  ((cnt_v >= 11'd8) && (cnt_v < 11'd328)))
                 ? 1'b1 : 1'b0;

//RGB565数据输出
assign lcd_data = lcd_en ? (flag2 ? (flag1 ? 16'hffff : 16'h0000) : (flag1 ? 16'h0000 : 16'hffff)) : 16'hffff;

//行计数器对像素时钟计数
always @(negedge lcd_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        cnt_h <= 11'd0;
    else begin
        if(cnt_h < H_TOTAL - 1'b1)
            cnt_h <= cnt_h + 1'b1;
        else
            cnt_h <= 11'd0;  
    end
end

//场计数器对行计数
always @(negedge lcd_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        cnt_v <= 11'd0;                                 
    else if(cnt_h == H_TOTAL - 1'b1) begin
        if(cnt_v < V_TOTAL - 1'b1)                                               
            cnt_v <= cnt_v + 1'b1;                              
        else
            cnt_v <= 11'd0;  
    end
end

出0入85汤圆

 楼主| 发表于 2019-2-10 12:59:50 | 显示全部楼层
怎么改程序换参数还是多那些列,涨姿势就恢复正常,但是那个姿势很难试出来,位置有点变化就不正常了。姿势影响结果我实在想不出怎么解决了。

出0入0汤圆

发表于 2019-2-10 13:02:30 | 显示全部楼层
示波器,逻辑分析仪

出0入90汤圆

发表于 2019-2-10 14:39:10 | 显示全部楼层
线太长了,而且你用的杜邦线,线组很大。你要么把速度降低一些。要么用FPC排线,然后包上屏蔽线,就可以了。
这种规律性的错位我遇到过,解决方法就是这两种。

出0入442汤圆

发表于 2019-2-10 14:44:26 来自手机 | 显示全部楼层
honami520 发表于 2019-2-10 14:39
线太长了,而且你用的杜邦线,线组很大。你要么把速度降低一些。要么用FPC排线,然后包上屏蔽线,就可以了 ...

时钟沿问题更有可能。我记得rgb lcd需要下降沿,而lz应该是上升沿

出0入85汤圆

 楼主| 发表于 2019-2-10 14:59:13 来自手机 | 显示全部楼层
wye11083 发表于 2019-2-10 14:44
时钟沿问题更有可能。我记得rgb lcd需要下降沿,而lz应该是上升沿

我试过下降沿了,直接不行,时序图最下是上升沿。你说的下降沿是什么控制器呢?比如ILI9xxx全部是上升沿锁存数据。

出0入85汤圆

 楼主| 发表于 2019-2-10 15:02:12 来自手机 | 显示全部楼层
honami520 发表于 2019-2-10 14:39
线太长了,而且你用的杜邦线,线组很大。你要么把速度降低一些。要么用FPC排线,然后包上屏蔽线,就可以了 ...

晚点试试,这个20cm的杜邦线确实是超强信号的天线,对讲机放到5米外还是有让人崩溃的噪音,还是很贵的建伍对讲机。

出0入85汤圆

 楼主| 发表于 2019-2-10 22:44:28 | 显示全部楼层
honami520 发表于 2019-2-10 14:39
线太长了,而且你用的杜邦线,线组很大。你要么把速度降低一些。要么用FPC排线,然后包上屏蔽线,就可以了 ...

问题暂时解决,可能就是你说的。我用逻辑分析仪看HS和VS很多干扰,然后我把HS、VS、CLK分配到对面的IO BANK就行了,不过摆弄线偶尔也会出现错位。

奇怪的是,更换IO后逻辑分析仪看还是这么多干扰,没有变化。更换IO的分析图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-2-10 22:55:47 | 显示全部楼层
VS, HS, DE 這幾根訊號最好是用FF output 去 drive I/O。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 19:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表