OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14644|回复: 5

如何提高OV7670显示速度

[复制链接]

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2013-8-10
在线时间
0 小时
发表于 2013-8-23 00:15:56 | 显示全部楼层 |阅读模式

学习了原子哥的摄像头实验,显示速度8帧左右,想利用FIFO提高显示速度

因为摄像头模块附带的FIFO可以存放2帧QVGA图像,所以有如下想法:

利用FIFO的 320*240*2*2 字节,就是2帧QVGA,先存入第一帧,以后如下循环:

读取第一帧,在TFT上显示,同时存入第二帧

读取第二帧,在TFT上显示,同时存入第一帧

另外,每次存入新一帧之前,用一个变量,判断该帧是否被读取过

这样,就不存在等待FIFO填满的过程,MCU可以一直读取数据,不断显示

 

但是写了一些代码,发现效果很差,可能是FIFO的时序没写对,出现过一下情况:

1  图像始终是最开始的一帧,不会变化,感觉是FIFO的写复位或者读复位没有成功

2  图像分成好几块,并且很不清楚,出现很混乱的图像,感觉也是时序有问题

 

自己思考的结果:

1  FIFO的写,应该在一场结束之后,由于HREF信号置低而结束,所以内部写指针应该不会因为PCLK而继续递增,所以不会导致下一次写出现地址不连续的情况

2  AL422B DataSheet上的两句话,感觉很重要,但是英语水平太差,没能理解,网上的翻译更是惨不忍睹。。。。

    The read address should be between 128 to 393,247 cycles after the write address to read the
current field data. (The restriction is indicated in the “Read Operation” Section).

 

    The proper FIFO access must make sure after read reset, the read operation will either read all the
old data (last field data) until next read reset, or follow the constraint 1 above to read newly update
data. In any 2 read resets interval, the FIFO access can not read old data (the field data are written
before last write reset), and stop for a period then read the newly update data (even at that time,
write counter is ahead of read counter by more than 128 cycles).

 

最后,

想请教一下大家,有什么建议 或者 有什么地方需要注意么?

 

谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-8-23 00:34:49 | 显示全部楼层
看看是不是图像的输出速度,大于MCU处理的速度,引起的数据覆盖问题。
这个思路应该是可行的,具体细节可能需要改进。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-8-23 00:59:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
嗯,我考虑了这个问题
图像的输出一定会快于MCU的处理
所以我用了一个含有2个元素的数组,来标记FIFO的第一帧和第二帧是否已经被MCU处理过
在每次摄像头写入FIFO的时候,都先判断标记,如果MCU已经处理过了,就允许写入(WEN=1)
否则,就等待(WEN=0)
但是发现也许就是这个WEN,导致了FIFO的时序出现问题,不过我不知道该如何判断到底是FIFO的写出现问题还是读出现问题。。。。。
AL442B没找到中文手册,光盘上附带的英文手册,关键部分还没看懂。。。。
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-8-23 15:07:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我又做了一些测试,发现第一帧的读写是正确的
但是第二针的读写会出现问题,导致花屏
请问是不是数据没有同步呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-8-25 23:26:29 | 显示全部楼层
回复【4楼】chinaqiaobo:
---------------------------------
WRST一个脉冲就让写指针复位的。
RRST也是。
内存数据在RCLK的时钟作用下有序输出。在WCLK的时钟下写入。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2021-10-14
在线时间
3 小时
发表于 2023-7-20 20:46:21 | 显示全部楼层
问题解决了吗?如果解决了能否共享参考一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 04:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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