OpenEdv-开源电子网

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

51驱动OV7670玄学花屏问题

[复制链接]

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
发表于 2024-7-9 23:50:51 | 显示全部楼层 |阅读模式
6金钱
摄像头模块由自己制作,已经过战舰开发板验证,今日突发奇想,想用51驱动它,却遇到了一系列玄学问题,请求大神相助!!!
话不多说,上图片。
这是程序下载后出的图,遮住摄像头有些反应,但不多。

这是经过魔改开发板例程后获得的图片,没有任何规律可言。
主要修改了:对摄像头寄存器写入的数据

这是第二次改动,还是那样,不过有时会出现一些大的变化,例如:



已经经过无数次的修改,经过测量,已基本排除硬件问题,所以特此将该问题发表到论坛上寻求广大坛友相助。(因为是新人,所以金币没多少,还请谅解!)

程序因一些问题所以仅开放部分代码(驱动摄像头相关)还请谅解。
16_FreeROTS.zip (5.14 KB, 下载次数: 1)

4.png
3.png
2.png
1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2024-7-10 09:42:07 | 显示全部楼层
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
 楼主| 发表于 2024-7-10 10:08:54 | 显示全部楼层

对的,是按照官方模块做的
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2024-7-10 10:20:35 | 显示全部楼层
本帖最后由 LcwSwust 于 2024-7-10 10:25 编辑
XJX51 发表于 2024-7-10 10:08
对的,是按照官方模块做的

发现一个问题:
colorl|=get_OVDATA();        //读数据
应改为:
colorl=get_OVDATA();

另有一个建议:
get_OVDATA可以优化一下,比如:
if(P76)ov_data|=1<<7;
if(P77)ov_data|=1<<6;

或许if都可以不用,强制类型转换再移位组合,或用位运算处理.
专治疑难杂症
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
 楼主| 发表于 2024-7-10 10:23:02 | 显示全部楼层
本帖最后由 XJX51 于 2024-7-10 10:26 编辑

补充一下:我后来购买了成品模块,但输出图像与上面还是一个样,都经过开发板确认了
1.jpg
4.jpg
1.jpg
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
 楼主| 发表于 2024-7-10 10:30:52 | 显示全部楼层
LcwSwust 发表于 2024-7-10 10:20
发现一个问题:
colorl|=get_OVDATA();        //读数据
应改为:

好的,谢谢大佬指点!不过我测试了下,直接将数据IO接到地,屏幕输出会有正常反应(接地输出全黑,接高输出全白)
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2024-7-10 10:40:57 | 显示全部楼层
XJX51 发表于 2024-7-10 10:30
好的,谢谢大佬指点!不过我测试了下,直接将数据IO接到地,屏幕输出会有正常反应(接地输出全黑,接高输 ...

还有个问题,程序初始化配置的窗口是320*240的,但你发送数据是64*64的,
是否应当一致?
专治疑难杂症
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
 楼主| 发表于 2024-7-10 10:46:53 | 显示全部楼层
LcwSwust 发表于 2024-7-10 10:40
还有个问题,程序初始化配置的窗口是320*240的,但你发送数据是64*64的,
是否应当一致?

emm···这个其实是因为使用230*320的话,刷新太慢了,不方便调试
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2024-7-10 11:05:04 | 显示全部楼层
本帖最后由 LcwSwust 于 2024-7-10 11:10 编辑
XJX51 发表于 2024-7-10 10:46
emm···这个其实是因为使用230*320的话,刷新太慢了,不方便调试

我没用过带FIFO的模块,所以估计帮不上啥了,建议:
1.用示波器测一下时序是否正确,数据位是否对应,比如FIFO_RCK_L高低电平宽度是否足够;
2.梳理一下FIFO的流程,FIFO是什么情况下允许写入,是否与VSYNC同步?
在读取期间是否还会写入,是否会因为读取太慢导致写入不连续?
是否读完一帧图像后将其清空?然后在收到下一个VSYNC时才开始写入?比如只想拍一张照,是否在收到VSYNC时允许写入,收到下一个VSYNC时不允许写入,然后慢慢读取数据?
3.试一下彩条模式或固定UV输出。
专治疑难杂症
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-31
在线时间
5 小时
 楼主| 发表于 2024-7-10 11:09:14 | 显示全部楼层
LcwSwust 发表于 2024-7-10 11:05
我没用过带FIFO的模块,所以估计帮不上啥了,建议:
1.用示波器测一下时序是否正确,数据位是否对应,比 ...

好的,谢谢大佬!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 13:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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