TI论坛
直播中

何元

7年用户 240经验值
私信 关注

请问一下tvp5146pfp 无法检测到视频输入是什么原因?

本帖最后由 人间烟火123 于 2018-6-15 15:37 编辑

使用dm365,dvsdk4。电路图是按照瑞泰创新的图画的,但是有个不一样的地方
(1)买芯片的时候不知道有tvp5146m2pfp和tvp5146pfp,用了tvp5146pfp。
(2)因为莲花头放在面板上,所以使用的是莲花头进来之后用大约2跟15cm的线引到到的电路板上。
现在问题是tvp5146无法检测到视频输入,出错相关信息如下:
(1)正常启动encode的出错信息
./encode -v test.264  -y 2 -r 352x288
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 352x288
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

。。。。。
(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

回帖(12)

何元

2018-6-15 07:36:39
找了n长时间,实在不知道问题在哪里,只好来这里请教大家了。不知道还可以提供什么信息?
举报

赵文娜

2018-6-15 07:45:26
引用: 哥来也半步颠 发表于 2018-6-15 07:36
找了n长时间,实在不知道问题在哪里,只好来这里请教大家了。不知道还可以提供什么信息?

1,请使用TVP5146M2,之前的TVP5146会有bug(但是它并不会出现你说讲的测不到信号的错误)。
2,请在选择好端口(register 0x00)后,直接读出register 0x3a,0x3f的值,通过寄存器判断tvp5146m2的工作状态。
举报

何元

2018-6-15 07:51:53
引用: asd005 发表于 2018-6-15 07:45
1,请使用TVP5146M2,之前的TVP5146会有bug(但是它并不会出现你说讲的测不到信号的错误)。
2,请在选择好端口(register 0x00)后,直接读出register 0x3a,0x3f的值,通过寄存器判断tvp5146m2的工作状态。

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

何元

2018-6-15 08:04:15
引用: 哥来也半步颠 发表于 2018-6-15 07:51
现在是芯片已经焊上去了,吹下来更麻烦啊,而且说不定会引起其他问题

我在瑞泰的评估板(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个机器上第一次和第二次运行信息量差别比较大。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分