ov2640设置RAW输出,完成了800*600的,但是1600*1200的RAW输出不行 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6953|回复: 4
打印 上一主题 下一主题

ov2640设置RAW输出,完成了800*600的,但是1600*1200的RAW输出不行

[复制链接]

2

主题

8

帖子

51

积分

注册会员

Rank: 2

积分
51
跳转到指定楼层
楼主
发表于 2016-10-11 19:34:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VPIF例程正常运行可以看到画面了,不过信号是RGB565输出的
每个像素是2个字节,每行800个像素共计1600自己,600行,所以image的空间是800*600*2字节。
在CCS的tool->Image Analyzer中按上面的参数设置RGB格式就可以看到完整图像了

由于我现在开发的应用只需要红色通道的数据,所以想拿到RAW格式。查了OV2640的datasheet,查到可以修改两个寄存器达到这个目的:
0xFF=0x00时:
0xC2=0x01  将DSP的RAW输出是能
0xDA=0x04  将输出格式设置为RAW10

我们的开发板只接了高8位,所以应该每个像素点就是1个字节
根据OV2640 DATASHEET提供信息,默认例程800*600的SVGA分辨率,序列信息应该
第1行:GBGBGBGB……GBGBGB共800个像素点
第2行:RGRGRGRG……RGRGRG共800个像素点
第3行:(与第1行相同)
………………
………………
第600行:RGRGRGRG……RGRGRG共800个像素点
这里的每一个像素是单色的1字节,理论上这时候的数据应该是800*600字节,是原例程的一半
所以初始化VPIF的时候,需要修改一个参数:
---------------------------------------------------------------
/* 初始化VPIF buffer地址*/
  VPIFCaptureFBConfig(SOC_VPIF_0_REGS, VPIF_CHANNEL_0,
  VPIF_TOP_FIELD, VPIF_LUMA,(unsigned int)&image[0], 800);
---------------------------------------------------------------
用Image Analyzer的RAW格式设置格式如下:


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <java version="1.6.0_13" class="java.beans.XMLDecoder">
  3. <object class="com.ti.dvt.ui.views.core.ImageProp">
  4.   <void property="delegateProp">
  5.    <object class="com.ti.dvt.ui.views.core.BayerProp">
  6.     <void property="componentMask">
  7.      <long>255</long>
  8.     </void>
  9.     <void property="lineCount">
  10.      <int>600</int>
  11.     </void>
  12.     <void property="lineOrder">
  13.      <string>even B lines</string>
  14.     </void>
  15.     <void property="lineStride">
  16.      <int>800</int>
  17.     </void>
  18.     <void property="pixelCountPerLine">
  19.      <int>800</int>
  20.     </void>
  21.     <void property="pixelOrder">
  22.      <string>GR/BG</string>
  23.     </void>
  24.     <void property="pixelStride">
  25.      <int>1</int>
  26.     </void>
  27.     <void property="startAddress">
  28.      <string>image</string>
  29.     </void>
  30.    </object>
  31.   </void>
  32.   <void property="scrollLock">
  33.    <boolean>true</boolean>
  34.   </void>
  35. </object>
  36. </java>
复制代码

可以在CCS里看到正确的图像了。感觉超棒啊!

照这个思路,我还想要拿到1600*1200的RAW格式输出数据。
于是把OV6240官方app手册里的UXGA例程如法炮制:
使用官方配置,接收的YUYV的数据,ImageAnalyzer配置如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <java version="1.6.0_13" class="java.beans.XMLDecoder">
  3. <object class="com.ti.dvt.ui.views.core.ImageProp">
  4.   <void property="delegateProp">
  5.    <object class="com.ti.dvt.ui.views.core.YUVProp">
  6.     <void property="UMask">
  7.      <long>16711680</long>
  8.     </void>
  9.     <void property="UPixelStride">
  10.      <int>4</int>
  11.     </void>
  12.     <void property="VMask">
  13.      <long>255</long>
  14.     </void>
  15.     <void property="VPixelStride">
  16.      <int>4</int>
  17.     </void>
  18.     <void property="YMask">
  19.      <long>65280</long>
  20.     </void>
  21.     <void property="YPixelStride">
  22.      <int>2</int>
  23.     </void>
  24.     <void property="YUVOrder">
  25.      <string>YUYV</string>
  26.     </void>
  27.     <void property="lineCount">
  28.      <int>1200</int>
  29.     </void>
  30.     <void property="lineStride">
  31.      <int>3200</int>
  32.     </void>
  33.     <void property="pixelCountPerLine">
  34.      <int>1600</int>
  35.     </void>
  36.     <void property="readAs">
  37.      <int>16</int>
  38.     </void>
  39.     <void property="startAddress">
  40.      <string>image</string>
  41.     </void>
  42.    </object>
  43.   </void>
  44. </object>
  45. </java>
复制代码
在CCS里能显示完整图像,但是整个画面是偏绿的,不知道是不是YUV的顺序问题,暂时不管
然后改了如下寄存器
        write_SCCB(0xda, 0x04);   // 0x00
        write_SCCB(0xC2, 0x01);  

尝试一:将VPIF的接收缓存改成1600,结果:VPIF无法完整接收帧
尝试二:将VPIF的接收缓存改为3200,结果:VPIF能完成数据,但是ImageAnalyzer要配置成1600*2400才能显示图像,颜色还是很奇怪

OV2640的手册提供的信息很残缺,一堆Reserve,在google和baidu上搜了一圈,发现几乎没有人做RAW格式输出的尝试,为啥?
希望有人能帮忙看看!!!先谢谢



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

2

主题

8

帖子

51

积分

注册会员

Rank: 2

积分
51
沙发
 楼主| 发表于 2016-10-14 09:34:29 | 只看该作者
无人问津么,伤感
OV2640的手册这么坑,各位大神都是怎么调的啊?@希望缄默

点评

这个...... 我也没搞过 问问 @Lewis  详情 回复 发表于 2016-10-14 09:38
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
板凳
发表于 2016-10-14 09:38:37 | 只看该作者
blandodo 发表于 2016-10-14 09:34
无人问津么,伤感
OV2640的手册这么坑,各位大神都是怎么调的啊?@希望缄默 ...

这个...... 我也没搞过 问问 @Lewis
回复 支持 反对

使用道具 举报

2

主题

8

帖子

51

积分

注册会员

Rank: 2

积分
51
地板
 楼主| 发表于 2016-10-18 15:59:24 | 只看该作者
私信@Lewis没有回复我,他是不是不常上线?能帮我问问他吗?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
5#
发表于 2017-7-6 10:24:14 | 只看该作者
请问下信号极性是怎么设置的
我也采集数据呢,但是数据只有前面有,后面全都是0,我感觉可能是帧同步型号极性反了,
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-6-16 19:00 , Processed in 0.052074 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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