This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm8127 开发板换了 sensor, 图象很黑,该如何设置 ISS 寄存器



Hi, 大家好, 

      我新来的, 第一次发贴求助,希望大家给小弟指点迷津.....

     我是基于 RDK 3.5 的版本, 调试 dm8127 + ad9923a + icx274 , 其实有另外一个同事已经调试成功, 能看到图像,  色彩也细调过了, 问题就是有流畅度不够, 

    这说明硬件是好的,  底层内核驱动和 ad9923a 也正常工作了,  然后我基于他的内核,  按照原RDK 的模块化思想重新整了个上层系统, 把原来的 i2c 通讯去掉, 加上了SPI 通讯,  到目前在IE中看到的图像是很黑的, 我把镜头取下来, 直接用手电筒对着 icx274 照,  在IE中是可以看到手电筒的光照在移动的,  

  问题就是在 白天自然光下,  IE 预览中一片漆黑,  我认为是 ISS 中某几个 寄存器没设置正确,  我附了一张图片, 麻烦大家指点一下小弟,  非常感谢了!

图为附件的图片, 我打开了 gamma correction 才是这样亮,  没打开就是一片黑

 小黄

   

asamplesensor_Date_05-05-2014_Time_15-57-13.rar
  • 你自己做的这套,除了SPI,在硬件上和之前的有什么不同?你提到了ISS参数有可能不对,那么AFE给过来的数据和先前有什么差异?

    你提到了这套系统还是能够对手电的光线产生反应的,是否有去测量过CCD出来的模拟信号本身,已经相关双采样的结果进行测试?   

    你现在采集到的东西就是黑的,所以ISS这边牵涉到的只是采集相关的寄存器而已,问题基本上要往数据来源这边看。

  • 非常感谢 Eason Wang 的回复, 我检查了Sensor 的 pin 脚, 发现 VD_EN 没有拉高,  我把这脚拉高之后, 图象正常了.


    现在又面临一个新的问题, 就是 图像分辨率的问题.

     原来 IT 的sensor是 mt9j003 ,  分辨率 1920x1080, 现在的 sensor 是 ICX274AQ , 分辨率最高是 1600x1200 的,   我只想改成 1280x720 的 分辨率, 原来 RDK 代码中设置分辨率的地方是 直接填数字 1920, 1080 的,  有很多地方,  我都改成了1280 , 720,   可能我修改的地方不全, 造成现在经过 encoder 编码后的视频流总是有帧错误, 时不时花屏,  在IE中看不到错误, 但是换成 mplayer 来播放视频流, 就可以看到打印出来编码帧有错误:


    ...........

    ............

    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]I cbpy damaged at 20 43
    [mpeg4 @ 012b9d60]Error at MB: 3503
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]illegal mb_num in video packet (3972 3600)
    [mpeg4 @ 012b9d60]illegal mb_num in video packet (3844 3600)
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    Marker bit missing before time_increment in video packed header
    [mpeg4 @ 012b9d60]Error at MB: 783
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    Marker bit missing before time_increment in video packed header
    Marker bit missing before vop_coding_type in video packed header
    [mpeg4 @ 012b9d60]Error at MB: 655
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]Error at MB: 1433
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    Marker bit missing before time_increment in video packed header
    Marker bit missing before vop_coding_type in video packed header
    [mpeg4 @ 012b9d60]Error at MB: 1688
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    Marker bit missing before time_increment in video packed header
    [mpeg4 @ 012b9d60]Error, video packet header damaged (f_code=0)
    [mpeg4 @ 012b9d60]Error at MB: 1947
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code
    [mpeg4 @ 012b9d60]marker does not match f_code

    ......

    ..................

    修改的地方似乎包括 每个视频流各自的分辨率 ,  每个视频流对应的编码encoder也有不同的分辨率,   另外sensor 输出的分辨必须填最大值 (在 文件 issdrv_captureApi.c 中 ), 即 查274 手册 知道 最大值是  SRC_HSZ = 1688 -1 , SRC_VSZ = 1248 -1 , 这两个值我只对 rsz_reg 和 ipipe_reg 这两组值赋值了, 不知道 isif_reg 和其它 组的寄存器组还需不需要赋这两个最大值?   

    在enclink_priv.h 中 define ENC_LINK_MAX_FRAME_WIDTH  ENC_LINK_MAX_FRAME_HEIGHT , 我都改成了 1280, 720

    在 multich_tristream_fullfeature.c 中,  pCameraOutPrm->scOutWidth = 1280,  原来是 1920的,  高度也改成720了,  

     pCameraInstPrm->standard = SYSTEM_STD_720P_60 , 原来是 SYSTEM_STD_1080P_30 ,

    这些地方修改后, 还是没得到正确的编码流, 请问我修改的地方不全吗, 还是这种方式不对? 

    ______________________________

     另外, multich_tristream_fullfeature.c 文件中, 有 pCameraInstPrm,  和 pCameraOutPrm, 这两个结构体有保存了视频的尺寸 , 现在搞不清楚这两个变量对于 sensor来说对代表了什么意义? 应该怎样填写这些值? 

    先谢谢了

  • wait wait wait,,,

    请问你这里需要什么分辨率,然后传感器配置了什么分辨率,实际输出和采集的又是什么分辨率?

  • 我需要下面的分辨率:

     Stream 1 : mpeg4 1280x720 

     Stream 2 : mpeg4 720 x 480

     Stream 3 : jpeg 1280x720 

    传感器设置了 1600x1200的分辨率,  实际输出 也是1600x1200,  采集分辨率不明白是指什么,  是不是指 isif_reg 的 HDW, VDW ?   

    下面是icx274的参数:

    Device Structure
    • Interline CCD image sensor
    • Image size: Diagonal 8.923mm (Type 1/1.8)
    • Total number of pixels: 1688 (H) × 1248 (V) approx. 2.11M pixels
    • Number of effective pixels: 1628 (H) × 1236 (V) approx. 2.01M pixels
    • Number of active pixels: 1620 (H) × 1220 (V) approx. 1.98M pixels
    • Recommended number of
    recording pixels: 1600 (H) × 1200 (V) approx. 1.92M pixels
    • Chip size: 8.50mm (H) × 6.80mm (V)
    • Unit cell size: 4.40μm (H) × 4.40μm (V)
    • Optical black: Horizontal (H) direction: Front 12 pixels, rear 48 pixels
    Vertical (V) direction: Front 10 pixels, rear 2 pixels
    • Number of dummy bits: Horizontal 28
    Vertical 1
    • Substrate material: Silicon

  • 你们原来用9J003的时候,是设置的什么分别率?

    你现在拿到的画面,分辨率和比率是正确的吗?

    感觉你从1600x1200缩放到1280x720,都是需要设置的吧你做了没有啊。。。

  • 原来 mt9j003的时候,  stream1 和 stream 3  都是 1920x1080的, stream2 是720x480的,  需要放缩的话, 还不知道 设置 rsz_reg 的哪些寄存器, 现在还搞不明白呢?

  • pCameraOutPrm->scOutWidth = 1920;
    pCameraOutPrm->scOutHeight = 1080;

    #elif defined IMGS_SONY_IMX104
    pCameraInstPrm->sensorOutWidth = 1280;
    pCameraInstPrm->sensorOutHeight = 720;

    这些地方应该需要相应修改的。