大家好!
我们在使用DM8168的过程中遇见一个问题。使用的开发包为DVRRDK_03.50.00.05
我们需要使用DM8168的VOUT1输出,不使用on chip HDMI。
我们的修改方式:
1.在执行load.sh时候,不让其加载ti81xxhdmi.ko
2.修改PinMux如下
C0:0x4814084C = 0x1
C1:0x48140814 = 0x1
C2:0x48140818 = 0x1
C3:0x4814081C = 0x1
C4:0x48140820 = 0x1
C5:0x48140824 = 0x1
C6:0x4814085C = 0x3
C7:0x48140860 = 0x3
Y0:0x481408B8 = 0x1
Y1:0x481408BC = 0x1
Y2:0x481408C0 = 0x1
Y3:0x481408C4 = 0x1
Y4:0x4814083C = 0x1
Y5:0x48140840 = 0x1
Y6:0x48140844 = 0x1
Y7:0x48140848 = 0x1
CLK:0x481408B4 = 0x1
HS:0x48140850 = 0x1
VS:0x48140858 = 0x3
FLD:0x48140854 = 0x3
DE:0x48140878 = 0x1
初始化显示的时候代码更改为:
pContext->deviceParams[VDIS_DEV_HDMI].enable = TRUE;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.vencNodeNum = VDIS_VENC_HDMI;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.aFmt = VDIS_A_OUTPUT_COMPOSITE;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dvoFidPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dvoVsPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dvoHsPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dvoActVidPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dvoFmt = VDIS_DVOFMT_DOUBLECHAN_DISCSYNC;//;
pContext->deviceParams[VDIS_DEV_HDMI].outputInfo.dataFormat = SYSTEM_DF_YUV422SP_UV;//SYSTEM_DF_YUV422SP_UV;
3.写APP,使用NullSrcLink做显示Buffer,给显示。
使用示波器测量CLK HS VS等信号,输出正确,但是测量16位数据管脚的输出却不正确
例如,NullSrcLink的显示Buffer,我全部填充为0x55, (Y=0x55,CbCr=0x55),使用示波器测量的16位数据线上的数据确不是0x55。
请大家帮忙看看, 我是不是哪里没有改到? 怎么才能让DM8168的VOUT1输出正确的数据呢?
再次感谢~
Eason Wang:
1. 看一下color bar,并回读一下pinmux的寄存器值,确保硬件连接正确
2. DVO1和HDMI是挂在一起的,应该同步输出的吧
3. 简要介绍一下你的硬件环境,看看还能有什么办法来试