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

tvp5146pfp 无法检测视频输入

使用dm365,dvsdk4。电路图是按照瑞泰创新的图画的,但是有个不一样的地方

(1)买芯片的时候不知道有tvp5146m2pfp和tvp5146pfp,用了tvp5146pfp。

(2)因为莲花头放在面板上,所以使用的是莲花头进来之后用大约2跟15cm的线引到到的电路板上。

现在问题是tvp5146无法检测到视频输入,出错相关信息如下:

(1)正常启动encode的出错信息

./encode -v test.264  -y 2 -r 352×288

Encode demo started.

Failed to detect video standard, video input connected?

对应的源代码如下:

   if (Capture_detectVideoStd(NULL, &videoStd, &cAttrs) < 0) {

       ERR("Failed to detect video standard, video input connected?\n");

       cleanup(THREAD_FAILURE);

   }

(2)加入DMAI_DEBUG之后的出错信息

DMAI_DEBUG=2 ./encode -v test.264  -y 2 -r 352×288

Encode demo started.

@0x000e5cdc:[T:0x4001f800] ti.sdo.dmai – [Dmai] Dmai log level set to '2'. Note that calling CERuntime_init after this point may cause unexpected change to .

@0x000e6cc8:[T:0x40c29490] ti.sdo.dmai – [Capture] Composite input selected

@0x0025d0dc:[T:0x40c29490] ti.sdo.dmai – [Capture] ERRNO (22) 《《出错

@0x0025d65d:[T:0x40c29490] ti.sdo.dmai – [Capture] Failed to set video input to 0 (Invalid argument)

(3)内核启动的相关信息:

root@dm365-evm:~/dm365# dmesg

。。。。。。

Linux video capture interface: v2.00

vpfe_init

vpfe-capture: vpss clock vpss_master enabled

vpfe-capture vpfe-capture: v4l2 device registered

vpfe-capture vpfe-capture: video device registered

EVM: switch to tvp5146 SD video input

tvp514x 1-005d: tvp514x 1-005d decoder driver registered !!

vpfe-capture vpfe-capture: v4l2 sub device tvp5146 registered

vpfe_register_ccdc_device: DM365 ISIF

DM365 ISIF is registered with vpfe.

af major#: 251, minor# 0

AF Driver initialized

aew major#: 250, minor# 0

AEW Driver initialized

<davinci_display_init>

。。。。。

(4)系统调用的相关信息

root@dm365-evm:~/dm365# cat /proc/kallsyms|grep tvp

c001cfb8 t tvp514x_init

c0025160 t __initcall_tvp514x_init6

c022ce64 t tvp514x_remove

c022ce90 t tvp514x_g_fmt_cap

c022cf18 t tvp514x_g_ctrl

c022d030 t tvp514x_enum_fmt_cap

c022d0d0 t tvp514x_read_reg

c022d138 t tvp514x_get_current_std

c022d190 t tvp514x_s_parm

c022d1f0 t tvp514x_try_fmt_cap

c022d320 t tvp514x_s_fmt_cap

c022d3ac t tvp514x_g_parm

c022d428 t tvp514x_write_reg

c022d494 t tvp514x_s_std

c022d564 t tvp514x_s_ctrl

c022d764 t tvp514x_write_regs

c022d7ec t tvp514x_s_stream

c022dba8 t tvp514x_querystd

c022dcdc t tvp514x_s_routing

c022deb4 t tvp514x_queryctrl

c022dfd4 t tvp514x_probe

c031d460 t tvp514x_dev

c031d6e8 t tvp514x_ops

c031d708 t tvp514x_id

c031d780 t tvp514x_fmt_list

c031d7c0 t tvp514x_core_ops

c031d800 t tvp514x_video_ops

c031d854 t tvp5146_init_reg_seq

c031d8b4 t tvp514xm_init_reg_seq

c031d8cc t tvp5147_init_reg_seq

you wang:

找了n长时间,实在不知道问题在哪里,只好来这里请教大家了。不知道还可以提供什么信息?

Leon Yu:

回复 you wang:

1,请使用TVP5146M2,之前的TVP5146会有bug(但是它并不会出现你说讲的测不到信号的错误)。

2,请在选择好端口(register 0x00)后,直接读出register 0x3a,0x3f的值,通过寄存器判断tvp5146m2的工作状态。

you wang:

回复 Leon Yu:

现在是芯片已经焊上去了,吹下来更麻烦啊,而且说不定会引起其他问题

you wang:

回复 you wang:

我在瑞泰的评估板(tvp5146m2pfp)和我自己的板上(tvp5146pfp)上各走了1遍:先不接视频启动程序,然后再接视频启动程序

(1)tvp5146m2不解视频,程序输出如下:

Encode demo started.

EVM: switch to tvp5146 SD video input

set[e8]=02

set[e9]=00

set[ea]=80

set[e0]=01

set[e8]=60

set[e9]=00

set[ea]=b0

set[e0]=01

set[e0]=00

set[03]=01

set[03]=00

get[80]=51

get[81]=46

get[70]=08

tvp514x_detect,497:81,70,8

tvp514x 1-005d: tvp5146 (Version – 0x08) found at 0xba (DaVinci I2C adapter)

set[00]=05

set[01]=0f

set[02]=00

set[03]=00

set[05]=10

set[06]=00

set[07]=00

set[08]=02

set[09]=80

set[0a]=80

set[0b]=80

set[0c]=00

set[0d]=00

set[0e]=0e

set[10]=80

set[11]=80

set[12]=80

set[14]=80

set[32]=0c

set[33]=00

set[34]=11

set[35]=ee

set[36]=af

set[37]=ff

set[38]=ff

set[39]=01

set[02]=00

tiMessage:main.c:  hRendezvousCapStd   waiting

set[00]=05

get[33]=00

set[33]=00

set[39]=01

get[20]=00

get[3f]=81

get[3a]=11

tiError: Failed to detect video standard, video input connected?

(2)然后tvp5146m2接上视频,再次启动程序,输出如下:

Encode demo started.

tiMessage:main.c:  hRendezvousCapStd   waiting

set[02]=00

set[00]=05

get[33]=00

set[33]=00

set[39]=01

get[02]=00

get[3f]=82

get[3a]=6e

set[02]=02

EVM: switch to tvp5146 SD video input

set[02]=00

set[00]=05

get[33]=00

set[33]=00

set[39]=01

get[02]=00

get[3f]=82

get[3a]=6e

set[02]=02

成功

(3)在我的板上tvp5146pfp,不接视频,输出如下:

EVM: switch to tvp5146 SD video input

Encode demo started.

tvp5146:set[e8]=02

tvp5146:set[e9]=00

tvp5146:set[ea]=80

tvp5146:set[e0]=01

tvp5146:set[e8]=60

tvp5146:set[e9]=00

tvp5146:set[ea]=b0

tvp5146:set[e0]=01

tvp5146:set[e0]=00

tvp5146:set[03]=01

tvp5146:set[03]=00

tvp5146:get[80]=51

tvp5146:get[81]=46

tvp5146:get[70]=03

tvp514x 1-005d: tvp5146 (Version – 0x03) found at 0xba (DaVinci I2C adapter)

tvp5146:set[00]=05

tvp5146:set[01]=0f

tvp5146:set[02]=00

tvp5146:set[03]=00

tvp5146:set[05]=10

tvp5146:set[06]=00

tvp5146:set[07]=00

tvp5146:set[08]=02

tvp5146:set[09]=80

tvp5146:set[0a]=80

tvp5146:set[0b]=80

tvp5146:set[0c]=00

tvp5146:set[0d]=00

tvp5146:set[0e]=0e

tvp5146:set[10]=80

tvp5146:set[11]=80

tvp5146:set[12]=80

tvp5146:set[14]=80

tvp5146:set[32]=0c

tvp5146:set[33]=00

tvp5146:set[34]=11

tvp5146:set[35]=ee

tvp5146:set[36]=af

tvp5146:set[37]=ff

tvp5146:set[38]=ff

tvp5146:set[39]=01

tvp5146:set[02]=00

tiMessage:main.c:  hRendezvousCapStd   waiting

tvp5146:set[00]=05

tvp5146:get[33]=00

tvp5146:set[33]=00

tvp5146:set[39]=01

tvp5146:get[02]=00

tvp5146:get[3f]=81

tvp5146:get[3a]=11

tvp5146:get[02]=00

然后提示没有连接

(4)在我的板上tvp5146pfp,接上视频,输出如下:

Encode demo started.

EVM: switch to tvp5146 SD video input

tvp5146:set[02]=00

tiMessage:      main.c:  hRendezvousCapStd   waiting

tvp5146:set[00]=05

tvp5146:get[33]=00

tvp5146:set[33]=00

tvp5146:set[39]=01

tvp5146:get[02]=00

tvp5146:get[3f]=02

tvp5146:get[3a]=71

然后提示没有连接

说明:(1)上面信息中,其中一些不相关的或者重复的去掉了。

(2)因为每次开机第一次运行的时候,程序需要检测芯片和做一些初始化的工作,所以2个机器上第一次和第二次运行信息量差别比较大。

you wang:

回复 you wang:

只看这几个寄存器的话,就是这样

m2不接视频-》:   get[02]=00,get[3f]=81,get[3a]=11

m2接视频-》:get[02]=00,get[3f]=82,get[3a]=6e

pfp不接视频-》:get[02]=00,get[3f]=81,get[3a]=11

pfp接视频-》:get[02]=00,get[3f]=02,get[3a]=71

you wang:

回复 Leon Yu:

不知道这些信息能否有用?

Eason Wang:

你有没有用其他的源来做过测试的?

这个芯片很容易做re-work啊,建议按照Leon的建议换片子试试

如果你确认自己的原理图设计并没有问题,建议和原版的硬件测量输入端信号对比看看

fan chuankang:

回复 you wang:

you wang 于 2012-11-14 18:47 发表了以下帖子 :

问题解决了。是因为晶振不起振。最后(1)将芯片换成了tvp5146M2(2)将无源的谐振器换成了有源的振荡器。但是还是没有搞明白,为什么晶振不起振?

我遇到同样问题。检测晶振,发现不起振。有没有进一步研究,为什么不起振?

是否匹配的电容计算错误?我用33pF?

是否100K并联电阻有问题?EVM也是这样使用。

Leon Yu:

回复 fan chuankang:

到正规渠道购买器件就对了。电路没有问题。匹配电容即使有点误差也不会导致晶振不起振。

赞(0)
未经允许不得转载:TI中文支持网 » tvp5146pfp 无法检测视频输入
分享到: 更多 (0)