搜索
bottom↓
回复: 20

STM32 + CPLD + OV7670 + LCD, 无拖影30fps,但是有一个小问题请教前辈

[复制链接]

出0入0汤圆

发表于 2011-5-8 13:12:29 | 显示全部楼层 |阅读模式
CPLD控制将OV7670的图像发送给LCD。
问题在于如果我手不拿着摄像头,图像的色彩就会乱七八糟的,如果用手拿着(尤其是时钟线),图像就没有问题。我在想是否真是因为时钟线的问题,是过长导致的吗?有没有什么解决方法?


手拿着时钟线就没问题。 (原文件名:DSCN2614.jpg)


不拿着图像就变成这个样子。 (原文件名:DSCN2616.jpg)

出0入0汤圆

发表于 2011-5-8 14:58:37 | 显示全部楼层
接触不好?换根线试试

出0入0汤圆

发表于 2011-5-8 15:05:21 | 显示全部楼层
时序很敏感 得保证等长的数据线 还有就是干扰

出0入0汤圆

 楼主| 发表于 2011-5-8 20:10:48 | 显示全部楼层
@tedden
换了线也不行

@kingboy100
那么我是不是只能做成PCB了?我感觉24MHz的频率应该还不算高,但我没有经验,不知道会不会有外部干扰。
请问要用等长的数据线是为什么?

出0入0汤圆

发表于 2011-5-8 20:16:07 | 显示全部楼层
24Mhz应该不低了吧...

出0入0汤圆

 楼主| 发表于 2011-5-8 20:27:43 | 显示全部楼层
我记得有人手工焊过60MHz的数字电路,所以我想应该是有解决方法的,做成PCB消耗有点大。

出0入0汤圆

发表于 2011-5-8 20:37:21 | 显示全部楼层
加电容,跟手拿一样

出0入0汤圆

 楼主| 发表于 2011-5-8 21:24:00 | 显示全部楼层
知道是怎么回事了,是CPLD上的程序有点缺陷,改进后整体图像不会有问题了,偶尔会有一些零星的色彩错误的点,手拿着就完美了。:)
附上VHDL源程序,很容易看懂的。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

ENTITY MCU_CPLD_LCD IS
        PORT(
                        MCU_BUS: IN STD_LOGIC_VECTOR(15 DOWNTO 0);
                        MCU_WR, MCU_RS, MCU_RD, MCU_CS, MCU_RST: IN BIT;
                       
                        SEL: IN BIT;
                       
                        LCD_BUS: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
                        LCD_WR, LCD_RS, LCD_RD, LCD_CS, LCD_RST: OUT BIT;
                       
                        CAM_BUS: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
                        HREF: IN BIT;
                        PCLK: IN STD_LOGIC
                );
END MCU_CPLD_LCD;

ARCHITECTURE MAIN OF MCU_CPLD_LCD IS

        SIGNAL WR: BIT;
       
        SIGNAL BUF: STD_LOGIC_VECTOR(7 DOWNTO 0);
        SIGNAL BUFFER_BUS: STD_LOGIC_VECTOR(15 DOWNTO 0);
       
BEGIN
        -- SEL = 0 -> LCD_BUS and LCD_WR are directly connected to MCU for configuration
        -- SEL = 1 -> LCD_BUS and LCD_WR are fed according to PCLK by CPLD
        WITH SEL SELECT
                LCD_BUS <=        MCU_BUS WHEN '0',
                                        BUFFER_BUS WHEN OTHERS;
        WITH SEL SELECT
                LCD_WR <=        MCU_WR WHEN '0',
                                        WR OR (NOT HREF) WHEN OTHERS;
       
        --RISING EDGE OF PCLK
        -- First byte: write the byte to the buffer
        -- Second byte: write the buffer and current camera bus data to LCD bus
       
        --FALLING EDGE OF PCLK
        -- First byte: WR = 1
        -- Second byte: WR = 0
        PROCESS(PCLK)
        BEGIN
                --Very important! Must set WR when HREF is low
                IF(HREF = '0') THEN
                        WR <= '1';
                ELSIF(RISING_EDGE(PCLK)) THEN
                        IF(WR = '1') THEN
                                BUF <= CAM_BUS;
                        ELSE
                                BUFFER_BUS(15 DOWNTO 8) <= BUF;
                                BUFFER_BUS(7 DOWNTO 0) <= CAM_BUS;
                        END IF;
                ELSIF (FALLING_EDGE(PCLK)) THEN
                        WR <= NOT WR;
                END IF;
        END PROCESS;
                                       
        LCD_CS <= MCU_CS;
        LCD_RS <= MCU_RS;
        LCD_RD <= MCU_RD;
        LCD_RST <= MCU_RST;
       
END MAIN;

出0入0汤圆

 楼主| 发表于 2011-5-8 21:30:08 | 显示全部楼层
@again
加了一个30pF的电容从PCLK到地,基本完美了。

出0入55汤圆

发表于 2011-5-19 12:22:24 | 显示全部楼层
地线问题。各个板都要两两接地。

出0入0汤圆

发表于 2011-6-7 23:24:39 | 显示全部楼层
hehe !!!!!!

出0入0汤圆

发表于 2011-6-8 06:38:08 | 显示全部楼层
有没有CPLD板的原理图?

出0入0汤圆

发表于 2011-6-8 08:01:32 | 显示全部楼层
mark

出0入55汤圆

发表于 2011-6-9 17:36:03 | 显示全部楼层
楼主,能不能提供一下你的OV7670的配置文件,我的显示时拖影好厉害。

出0入0汤圆

发表于 2011-10-23 15:01:13 | 显示全部楼层
mark了

出0入0汤圆

发表于 2012-1-1 23:34:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-6-11 21:38:59 | 显示全部楼层
学习,学习

出0入0汤圆

发表于 2012-8-20 23:36:29 | 显示全部楼层
楼主会不会开源?

出0入0汤圆

发表于 2012-8-20 23:44:25 | 显示全部楼层

出0入0汤圆

发表于 2013-7-6 17:28:34 | 显示全部楼层
干扰严重啊...

出0入8汤圆

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

本版积分规则

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

GMT+8, 2024-5-10 00:07

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

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