完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1.tvp5158是4通道decoder,首先你要选择正确的通道去读相应的状态。比如你想知道2通道的状态,你应该先写0x02到register 0xff,然后再读register 0x00,bit1,bit2都为1就应该锁住信号了。
2,通过示波器确定你的输入信号已经进入TVP5158的输入pin脚,并且要看其是否正常。 |
|
|
|
asd005 发表于 2018-5-31 05:00 是否只接一路就能检测到视频信号,因为目前我只接了一路模拟摄像头。另外因为我们的板子只用了两片TVP5158,因而只用了VIP0的两个8位接口。 我看到Device_tvp5158GetVideoStatus函数里是按照你讲的去获取TVP5158状态。如下: Int32 Device_tvp5158GetVideoStatus ( Device_Tvp5158Obj * pObj, VCAP_VIDEO_SOURCE_STATUS_PARAMS_S * pPrm, VCAP_VIDEO_SOURCE_CH_STATUS_S * pStatus ) [ Int32 status = 0; Device_VideoDecoderCreateParams *pCreateArgs; UInt8 regAddr[8]; UInt8 regValue[8]; UInt8 numRegs; UInt32 devId, chId, std; if ( pStatus == NULL || pPrm == NULL ) return -1; memset ( pStatus, 0, sizeof ( *pStatus ) ); pCreateArgs = &pObj->createArgs; /* * Identify channel/core number and device number from channelNum */ devId = pPrm->channelNum / DEVICE_TVP5158_CH_PER_DEVICE_MAX; chId = pPrm->channelNum % DEVICE_TVP5158_CH_PER_DEVICE_MAX; /* There can be at max 2 TVP5158 devices per port */ if ( devId >= DEVICE_TVP5158_DEV_MAX ) return -1; numRegs = 0; /* * select appropiate core */ regAddr[numRegs] = DEVICE_TVP5158_REG_DEC_RD_EN; regValue[numRegs] = 1 << chId; numRegs++; status = OSA_i2cWrite8 (&gDevice_tvp5158CommonObj.i2cHandle, pCreateArgs->deviceI2cAddr[pObj->instId], regAddr, regValue, numRegs); if ( status < 0 ) return -1; /* * read status */ numRegs = 0; regAddr[numRegs] = DEVICE_TVP5158_REG_STATUS_1; regValue[numRegs] = 0; numRegs++; regAddr[numRegs] = DEVICE_TVP5158_REG_STATUS_2; regValue[numRegs] = 0; numRegs++; regAddr[numRegs] = DEVICE_TVP5158_REG_VID_STD_STATUS; regValue[numRegs] = 0; numRegs++; status = OSA_i2cRead8 (&gDevice_tvp5158CommonObj.i2cHandle, pCreateArgs->deviceI2cAddr[pObj->instId], regAddr, regValue, numRegs); if ( status < 0 ) return -1; if ( ( regValue[0] & DEVICE_TVP5158_HSYNC_LOCKED ) && ( regValue[0] & DEVICE_TVP5158_VSYNC_LOCKED ) && ( regValue[1] & DEVICE_TVP5158_SIGNAL_DETECT ) ) [ pStatus->isVideoDetect = TRUE; ] if ( pStatus->isVideoDetect ) [ /* * since input to TVP5158 is always interlaced */ pStatus->isInterlaced = TRUE; /* * 60Hz, i.e 16.667msec per field */ pStatus->frameInterval = 16667; if ( ( regValue[0] & DEVICE_TVP5158_SIGNAL_60HZ ) ) /* is 50Hz or 60Hz ? */ [ /* * 50Hz, i.e 20msec per field */ pStatus->frameInterval = 20000; ] /* * frame width is always 720 pixels */ pStatus->frameWidth = DEVICE_TVP5158_NTSC_PAL_WIDTH; pStatus->frameHeight = 0; std = ( regValue[2] & DEVICE_TVP5158_VID_STD_MASK ); /* video standard */ if ( std == DEVICE_TVP5158_VID_STD_PAL_BDGHIN /* PAL (B,D,G,H,I,N) */ || std == DEVICE_TVP5158_VID_STD_PAL_M /* PAL (M) */ || std == DEVICE_TVP5158_VID_STD_PAL_COMB_N /* PAL (Combination-N) */ || std == DEVICE_TVP5158_VID_STD_PAL_60 /* PAL 60 */ ) [ /* * PAL standard */ pStatus->frameHeight = DEVICE_TVP5158_PAL_HEIGHT; ] if ( std == DEVICE_TVP5158_VID_STD_NTSC_MJ /* NTSC (M,J) */ || std == DEVICE_TVP5158_VID_STD_NTSC_4_43 /* NTSC 4.43 */ ) [ /* * NTSC standard */ pStatus->frameHeight = DEVICE_TVP5158_NTSC_HEIGHT; ] ] return status; ] 用示波器看信号有接进去,而TVP5158到DM8168也有数据输入。 |
|
|
|
xuxuede 发表于 2018-5-31 05:19 信号检测和后端没有任何关系,和输出也没有关系。如果只接一路,只有该路的core能锁住信号,也就是我让你在读之前,先要选择对应的core(register 0xFF)。 |
|
|
|
asd005 发表于 2018-5-31 05:29 从你之前的打印信息,第二片tvp5158的第一路锁住信号了,其它的没有。 |
|
|
|
你从哪里看出第二片tvp5158的第一路锁住信号了,为什么还是会报“ CAPTURE ERROR: Could not detect video at tvp instace 0!!! CAPTURE ERROR: Could not detect video at tvp instace 1!!! CAPTURE ERROR: Could not detect video at tvp instace 2!!! CAPTURE ERROR: Could not detect video at tvp instace 3!!! ” 十分感谢你的答复 |
|
|
|
xuxuede 发表于 2018-5-31 05:55 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 10 , regValue[1] = 8 regValue[0] = 7e , regValue[1] = 80 regValue[0] = 10 , regValue[1] = 38 regValue[0] = 10 , regValue[1] = 38 regValue[0] = 10 , regValue[1] = 38 regValue[0] = 10 , regValue[1] = 38 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 10 , regValue[1] = 18 regValue[0] = 7e , regValue[1] = a0 regValue[0] = 10 , regValue[1] = 38 regValue[0] = 10 , regValue[1] = 38 以上是你的打印信息,register 0x00是0x7e,表明就锁住信号了。 |
|
|
|
可以提供tvp5158和dm8168连接的schematic?我现在正在做类似的
|
|
|
|
附件是TVP5158的EVM原理图。关于和DM8168相连的原理图,你直接使用VOUT/VIN口即可。DM8168的参考原理图需要NDA,请找到你们相关的销售洽谈。 |
|
|
|
asd005 发表于 2018-5-31 06:27 谢谢您的回复: 因为现在EVM板,公司还在流程中,所以没能得到更进一步的信息,再请教一个问题: DM8168只能接收YUV格式的数据,针对YUV格式的数据的摄像头的像素能达到多少?5M能达到吗,并且播放视频是1080P? |
|
|
|
60user73 发表于 2018-5-31 06:47
|
|
|
|
asd005 发表于 2018-5-31 06:11 GET_CHIP_ID得到:0x58: 5158:0002:0302 GET_VIDEO_STATUS得到: TVP5158: regValue[0]=10, regValue[1]=18, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=8, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=8, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=8, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=38, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=38, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=18, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=18, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=18, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=8, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=8, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=38, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=38, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=38, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 TVP5158: regValue[0]=10, regValue[1]=28, regValue[2]=81, std=1 CAPTURE ERROR: Could not detect video at tvp instace 0!!! 按照您的说法,是一直没有锁定信号吗?请问什么情况会导致这样? 后来试了下另一个instace,发现读到的chipId如下: I2C read8 chipId=65535, chipRevision=ff, firmwareVersion=ffff [rdk] Vcap_configVideoDecoder/2567/0: 0x5c: ffff:00ff:ffff TVP5158: regValue[0]=ff, regValue[1]=ff, regValue[2]=ff, std=7 这样也是检测到信号的,但保存出来的数据都是花的,请问什么情况会导致这个问题?是哪里配置错了吗?谢谢! |
|
|
|
只有小组成员才能发言,加入小组>>
332 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
772 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1124 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
51浏览 29评论
85浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
244浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
196浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:34 , Processed in 1.029400 second(s), Total 96, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号