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.

DM667+tvp5158视频帧出错

Other Parts Discussed in Thread: TVP5158, THS8200

平台是TVP5158+DM6467+THS8200。输出图像不对,但是与后端无关,测试ths8200是正常的。在内存中读取一帧YUV图像保存,在windows下显示如下:大小为736 x 526。

            
从中可以看出两个问题:
1,读取像素值,发现Y通道的值正常,UV通道的值都是为128,所以颜色信息丢失,为黑白图。
2,图像像素产生漂移,在视频中也有抖动现象。
 
     经检查,与另外一块正常的板子比较。tvp5158的寄存器设置是正确的,没有问题。tvp5158的输出波形也是正常的。会是什么原因呢? 
 望不吝赐教,谢谢!                                                                                      
  • 十分感谢chris的回答。

    下载这个驱动去实验,依然不行,但那是发现了一些问题。

    (1)       chipid的问题

    运行mcvip_text.out报错

    ERROR  (mcvip_tvp5158_i2c.c|TVP5158_setOfmMode|347): TVP5158_checkChipId()

    checkchipID不通过

    函数为:

    int TVP5158_checkChipId(DRV_I2cHndl *i2cHndl)

    {     int status=OSA_SOK, k;

           Uint8 regAddr[2];

           Uint8 regVal[2];

           k = 0;

         regAddr[k] = 0x08;

         regVal[k]  = 0;

           k++;

         regAddr[k] = 0x09;

         regVal[k]  = 0;

           k++;

        status = DRV_i2cRead8(i2cHndl, regAddr, regVal, k);

       if(status!=OSA_SOK)

        return status;

       if(regVal[0] != 0x51 || regVal[1] != 0x58 )

        return OSA_EFAIL;

        return OSA_SOK;

    }

    增加调试语句

    OSA_printf("tvp5158 0x%x=%x,0x%x=%x\n",regAddr[0],regVal[0],regAddr[1],regVal[1]);

    显示tvp5158 0x08=60,0x09=58

    手册44页

    Chip ID MSB 08h=51h
    Chip ID LSB  09h=58h

    所以我的tvp5158的chip不正确;

    运行./i2crw.out  –r  0XB0 0x80 2 得到

    0x08=51,0x09=58  却与手册上一样是正确的值。

    什么原因呢???

    (2)程序中注释掉TVP5158_checkChipId,程序可以运行,但是显示依然错误。

    望不吝赐教!

     

  • 你好,

    能否测量一下在linux下读取chipid,和你手动运行i2crw在I2C的时钟/信号线上是否有差异?找到读出结果不同的原因,看和你的问题是否有关系。

  • 这是一个硬件问题。

    tvp5158的设计我是参照一个公司的,那个公司在模拟视频输入前端用了一个1uf的退耦电容,ti的官方设计里面是没有这个电容的。就是这个电容导致这个严重的问题。去掉电容,问题得到解决。