TI中文支持网
TI专业的中文技术问题搜集分享网站

DM667+tvp5158视频帧出错

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

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

你好,

请问你是否使用了最新的TVP5158的驱动?

http://e2e.ti.com/support/data_converters/videoconverters/f/376/t/41768.aspx

changquan wang:

回复 Chris Meng:

十分感谢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,程序可以运行,但是显示依然错误。

望不吝赐教!

 

Chris Meng:

回复 changquan wang:

你好,

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

赞(0)
未经允许不得转载:TI中文支持网 » DM667+tvp5158视频帧出错
分享到: 更多 (0)