This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to config DVO2 (vout0) of DM8168 to output YUV422 data?

Hello EveryOne!

 I have a problem to use DVO2 (vout0) of DM8168.

my environment SDK   :   DVRRDK_02_80_00_10

problem: DVO2 (vout0) of DM8168 output YUV422 signal with discrete sync.the data is not correct. (for example. if I write 0x55 to YUYV buffer, but the data 0x76 is output on Y channel) .

a piece of code like this:

//////////////////////////////////////////////////////////////////////////////////////////////////////////

pContext->deviceParams[VDIS_DEV_DVO2].enable = TRUE;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.vencNodeNum = VDIS_VENC_DVO2;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.aFmt = VDIS_A_OUTPUT_COMPOSITE;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoFidPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoVsPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoHsPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoActVidPolarity = VDIS_POLARITY_ACT_HIGH;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoFmt = VDIS_DVOFMT_DOUBLECHAN;
pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dataFormat = SYSTEM_DF_YUV422SP_UV;

pContext->tiedDevicesMask = VDIS_VENC_HDCOMP | VDIS_VENC_DVO2;

//////////////////////////////////////////////////////////////////////////////////////////////////////////

if I config DVO2 like that ,the date is output 16 bit YUV data with discrete sync, CLK HS VS is right, but data is not correct.(buffer data is 0x55 But not output 0x55)

if I config DVO2 

pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoFmt = VDIS_DVOFMT_TRIPLECHAN_DISCSYNC;

pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dataFormat = SYSTEM_DF_RGB24_888;

the DM8168 output RGB 24-bit data is OK.

So, Somebody can help and tell me where is wrong.

Thank You very much.

    

  • I have read the registers of HD_VENC(DVO2) at offset 0xA000

    outputInfo.dvoFmt = VDIS_DVOFMT_DOUBLECHAN_DISCSYNC;

    outputInfo.dataFormat = SYSTEM_DF_YUV422SP_UV;

    BASE ADDR = 0x4810A000u

    [m3vpss ] offset 0x0 = 0x44043053
    [m3vpss ] offset 0x4 = 0x3f0275
    [m3vpss ] offset 0x8 = 0x1ea500bb
    [m3vpss ] offset 0xc = 0x1f9901c2
    [m3vpss ] offset 0x10 = 0x1fd71e67
    [m3vpss ] offset 0x14 = 0x4001c2
    [m3vpss ] offset 0x18 = 0x200200
    [m3vpss ] offset 0x1c = 0x184c0c77
    [m3vpss ] offset 0x20 = 0x1c0c0c30
    [m3vpss ] offset 0x24 = 0x1c0c0c30
    [m3vpss ] offset 0x28 = 0x842ee672
    [m3vpss ] offset 0x2c = 0x281a401c
    [m3vpss ] offset 0x30 = 0x28508101
    [m3vpss ] offset 0x34 = 0x2ed
    [m3vpss ] offset 0x38 = 0x38338
    [m3vpss ] offset 0x3c = 0x28500104
    [m3vpss ] offset 0x40 = 0x1d000
    [m3vpss ] offset 0x44 = 0x2d0000
    [m3vpss ] offset 0x48 = 0x5004000
    [m3vpss ] offset 0x4c = 0x5001001
    [m3vpss ] offset 0x50 = 0x18b18b
    [m3vpss ] offset 0x54 = 0x285000fc
    [m3vpss ] offset 0x58 = 0x1d001
    [m3vpss ] offset 0x5c = 0x2d11a4
    [m3vpss ] offset 0x60 = 0x5001000
    [m3vpss ] offset 0x64 = 0x5006176
    [m3vpss ] offset 0x68 = 0x0
    [m3vpss ] offset 0x6c = 0x0
    [m3vpss ] offset 0x70 = 0x0
    [m3vpss ] offset 0x74 = 0x0
    [m3vpss ] offset 0x78 = 0x0
    [m3vpss ] offset 0x7c = 0x0
    [m3vpss ] offset 0x80 = 0x0
    [m3vpss ] offset 0x84 = 0x0
    [m3vpss ] offset 0x88 = 0x0
    [m3vpss ] offset 0x8c = 0x0
    [m3vpss ] offset 0x90 = 0x0
    [m3vpss ] offset 0x94 = 0x0
    [m3vpss ] offset 0x98 = 0x0
    [m3vpss ] offset 0x9c = 0x0
    [m3vpss ] offset 0xa0 = 0x0
    [m3vpss ] offset 0xa4 = 0x0
    [m3vpss ] offset 0xa8 = 0x0
    [m3vpss ] offset 0xac = 0x0
    [m3vpss ] offset 0xb0 = 0x0
    [m3vpss ] offset 0xb4 = 0x0
    [m3vpss ] offset 0xb8 = 0x0
    [m3vpss ] offset 0xbc = 0x0
    [m3vpss ] offset 0xc0 = 0x0
    [m3vpss ] offset 0xc4 = 0x0
    [m3vpss ] offset 0xc8 = 0x0
    [m3vpss ] offset 0xcc = 0x0
    [m3vpss ] offset 0xd0 = 0x0

    somebody can help me why DVO2 output data is wrong?(my buffer data is 0x55 ,data format is YUYV,and output not is 0x55)

    Thank you!

  • Hi,

    What you are getting at output. It will not match exacly 55 as there are number of color conversions going on between RGB and YUV. Buyt it should be near.

  • thank you for your reply

    I have write 0x55 to output buffer for YUV.

    I get the output data use Oscilloscope measure at DM8168 DVOUT0 output pin  。

    Based on your explaination, the wrong data I got is becaused of RGB to YUV, is this right? Could you please tell me what's wrong with my configuration? Or do you have any example configuration which can share with me for my reference?(I had check that bit BYPS_CS is bypassed for HD_VENC cfg0 bit5)

     Your reply is fully appreciated, thanks.