平台是TVP5158+DM6467+THS8200。输出图像不对,但是与后端无关,测试ths8200是正常的。在内存中读取一帧YUV图像保存,在windows下显示如下:大小为736 x 526。
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的时钟/信号线上是否有差异?找到读出结果不同的原因,看和你的问题是否有关系。