野火ov5640程序在AC620开发板及摄像头的HDMI显示中的问题记录与总结

  大概将近一周的时间终于调出来了。从最开始,将程序下载到开发板,发现无显示,用AC620开发板的参考程序,是能正常显示的;找了好久不知道那里的问题,后来觉得可能是引脚的问题,按照两个程序的引脚分布发现野火的参考程序里面少了一个,查找发现少了ov5640摄像头的驱动时钟,然后把24M的驱动时钟加上。还是不行,然后用signal tap 去调试,发现hdmi的输出没用信号,以为是hdmi模块的问题,调了好久,最后把两个参考程序的signl tap调试结果对比发现,hdmi模块没什么问题。

  后来突然想到根据像数数据的数据流去找哪里的问题,发现像数数据输入ov5640模块处理后没有数据输出,然后根据模块内部的数据流向,发现可能是iic驱动模块的问题;然后开始了对 IIC模块的调试,最终发现写入器件地址数据后应答信号为高电平,也就是说IIC传输的数据根本没有写入到ov5640的寄存器中。找了好久没有发现问题。因为ov5640摄像头模块上面写的器件地址是 0x78,所以上面的所有调试过程中使用的器件地址都是 0x78。不知道突然怎么就想到用代码里面原来给的器件地址 0x3c,下载到开发板后终于能正常显示了。(有点想不明白为什么之前我没改器件地址,加了0v5640的驱动时钟之后没显示,而现在有显示了)。

  虽然能显示了,但是图像的左右和上下都是颠倒的。然后按照小梅哥的教程里面的,把 0x3820 设置为 8’h40 ;0x3821设置为 8’h07, 图像显示位置正常了,但是有很多红色线条且抖动。还有网上找的一些参数,要不是显示的是镜像,要不是上下颠倒,而且闪烁的厉害。后来按照官方手册里面的寄存器配置把下面几个寄存器的值改成手册里面的,镜像和翻转的寄存器也按照官方手册里面的设置,终于显示正常了。

{16'h3820, 8'h41};
{16'h3821, 8'h07};

{16'h4837, 8'h22};
{16'h3824, 8'h02};
{16'h5001, 8'ha3};

  花费了一周的时间终于能在显示器上显示摄像头的数据了,虽然很简单,但是也学到了不少东西,后面努力多花点时间,把整个流程和所有的代码都搞懂,继续学习其他的。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值