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.

TRS code/embedded sync troubles with DM8107, DV01

Other Parts Discussed in Thread: DM8107

Hi,

We have a custom board where the DM8107 is meant to be outputting 2-channel CCIR656 YCbCr out of DVO1. We know that things are basically functioning, because we also have the HDMI ouput available through the board, and we can see video (though discolored) through that port when our application is running. We have also verified that the registers in the HDVPSS/HDVENC are set up to be in this format:

root@8107:~# readmem 0x48106000
Value at address 0x48106000 (0x4010d000): 0x44013051

We have also verified that all pinmux settings are correct, though we are only using vout[1]_G_Y_YC[2..9] and vout[1]_B_CB_C[2..9] plus vout1 clock, vsync and hsync as our output.

The basic setup is to have these ports going into an FPGA, where we were able to capture the output:

The problem seems to be that, as seen in the logic analyzer capture, certain bits are not being set correctly in the sync words. Are there any known issues that might be related to this, especially on DVO1? We do have other boards that use DVO2, and they work without issue.

  • Hello,

    What is the software release that you are using here?

    BR
    Margarita
  • We are using the DVRRDK/MCFW 4.00.01.02 with a slightly modified VSYS_USECASE_MULTICHN_VDEC_VDIS usecase

  • There is no known issue, can you tell exactly which bits are not coming out correct?

    Rgds,
    Brijesh
  • Hi Brijesh,

    I'm a collegue of Shawn's. In the first image at the start of this thread, you can see that the TRS values are not correct. We are using a 16-bit interface so I should be seeing FF,00,00 and instead we get BF,D2,00. Using a register modification utility provided by Shawn, I was able to change the interface mode to discrete syncs and those values were removed from the data stream. When I set the mode back to the dual stream 656 those values reappeared in the data stream. When I look at the second image I captured I can tell that the image being output is basically correct. Again using the register utility I put the HDVENC output into test pattern mode and saw a correct test pattern but the TRS sync was still incorrect.

    Regards,
    Jim Cassey
  • Hi Jim,

    oh, i thought it was 8bit output.

    Can you try probing both the 8bit and check if you see correct sync codes on any of the 8bit outputs? 

    Regards,

    Brijesh

  • Hi,

    The first image at the top of the thread shows both the upper and lower halves of the bus (vid_data_in). The upper half (vid_data_in[15:8]) has the BF, D2, 00. The lower half (vid_data_in[7:0]) has values of 9F, 6B, 00 for the TRS sync word. If my FPGA does not see FF, 00, 00 on both the upper and lower halves of the bus it will not detect the TRS sync.

    Regards,
    Jim C.
  • Hi Jim,

    It is strange, these values are no way near to the preamble of the sync word. Are you sure that these values are coming at TRS sync word position?
    If the DVO2 output is working fine, can you please compare DVO1 settings and make sure that they are exactly matching? Please also make sure that pinmux settings are correct and they are not getting overwritten.

    Rgds,
    Brijesh
  • Good morning,

    I'm pretty sure they are the preamble. The signal vid_hb is the horizontal sync from the processor and the values are always in the same position with repect to that signal.

    Unfortunately the DVO2 interface is not used on this design so I can't compare the two in the FPGA. We did verify that the setting for DVO1 is the same as the designs that use DVO2. We will have to check the pinmux settings. However, I believe they are correct since it appears to get the blanking and active video are correct.

    Jim C.
  • Hi Jim,

    In one of the earlier post, you said that DVO2 output works fine. so in that case, could you please compare DVO2 settings with DVO1 settings? they should be exactly same.

    DVO outputs sync signal even for the embedded sync output. so can you check position of the embedded codes against HD/VD output signals? This will confirm that the position you are looking at is correct.

    Can you check the pinmux for the DVO1 output again when it is running?

    Regards,
    Brijesh
  • Hi Brijesh,

    We were able to read back the pinmux registers at runtime and verify that they are all correct.  We've also compared the VENC output registers at runtime, and we found that they are identical. 

    Thank you

    -Shawn

  • Hi Shawn,

    Can you take dump of 25 registers of DVO1 and share it with us?

    Rgds,
    Brijesh
  • Hi Shawn,

    We were going through your captured codes and were wondering if there is some timing issue in capturing data, different bits are getting captured on different clock edge. 

    If we rearrange captured data as below,  except for the 0x80,   we basically get the  FF 00 00(80) with a valid EAV (9D). So can you please try flipping the clock to latch on the other edge in your FPGA and see if you could capture codes correctly?

    Regards,

    Brijesh

  • Good morning,

    This is good information. I remembered that there is an errata about the VOUT ports only outputting on the falling edge of the clock. I suspect that the combination of PCB skew and FPGA routing delays may be causing this. I'll make the suggested change in the clocking in the FPGA and see what happens.

    Regards,
    Jim Cassey
  •  

    Brijesh Jadav said:
    Hi Shawn,

    Can you take dump of 25 registers of DVO1 and share it with us?

    Rgds,
    Brijesh

    We are working on testing the timing fix, but in the mean time here are the registers for DVO1 and DVO2.  Both outputs are set to 1280x720p60, but DVO2 is in HDMI mode, and is functioning as expected.

    dvo1_reg.txt
    Address 0x48106000:
    HD_VENC_D_cfg00: 0x44023011
    	Bits 31-31:     0 (0x000)
    	Bits 30-30:     1 (0x001)
    	Bits 29-29:     0 (0x000)
    	Bits 28-28:     0 (0x000)
    	Bits 27-27:     0 (0x000)
    	Bits 26-26:     1 (0x001)
    	Bits 25-25:     0 (0x000)
    	Bits 24-24:     0 (0x000)
    	Bits 23-23:     0 (0x000)
    	Bits 22-22:     0 (0x000)
    	Bits 21-21:     0 (0x000)
    	Bits 20-20:     0 (0x000)
    	Bits 19-19:     0 (0x000)
    	Bits 18-16:     2 (0x002)
    	Bits 15-15:     0 (0x000)
    	Bits 14-14:     0 (0x000)
    	Bits 13-13:     1 (0x001)
    	Bits 12-11:     2 (0x002)
    	Bits 10-10:     0 (0x000)
    	Bits 09-09:     0 (0x000)
    	Bits 08-08:     0 (0x000)
    	Bits 07-07:     0 (0x000)
    	Bits 06-06:     0 (0x000)
    	Bits 05-05:     0 (0x000)
    	Bits 04-04:     1 (0x001)
    	Bits 03-03:     0 (0x000)
    	Bits 02-00:     1 (0x001)
    Address 0x48106004:
    HD_VENC_D_cfg01: 0x00000400
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:  1024 (0x400)
    Address 0x48106008:
    HD_VENC_D_cfg02: 0x00000000
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:     0 (0x000)
    Address 0x4810600C:
    HD_VENC_D_cfg03: 0x00000400
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:  1024 (0x400)
    Address 0x48106010:
    HD_VENC_D_cfg04: 0x00000000
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:     0 (0x000)
    Address 0x48106014:
    HD_VENC_D_cfg05: 0x00000400
    	Bits 31-28:     0 (0x000)
    	Bits 27-16:     0 (0x000)
    	Bits 15-00:  1024 (0x400)
    Address 0x48106018:
    HD_VENC_D_cfg06: 0x00000000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     0 (0x000)
    	Bits 11-00:     0 (0x000)
    Address 0x4810601C:
    HD_VENC_D_cfg07: 0x177C0BC5
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  3013 (0xbc5)
    Address 0x48106020:
    HD_VENC_D_cfg08: 0x1C0C0B81
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  2945 (0xb81)
    Address 0x48106024:
    HD_VENC_D_cfg09: 0x1C0C0B81
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  2945 (0xb81)
    Address 0x48106028:
    HD_VENC_D_cfg10: 0x842EE672
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   750 (0x2ee)
    	Bits 11-00:  1650 (0x672)
    Address 0x4810602C:
    HD_VENC_D_cfg11: 0x281A401D
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   420 (0x1a4)
    	Bits 11-00:    29 (0x01d)
    Address 0x48106030:
    HD_VENC_D_cfg12: 0x28508101
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1288 (0x508)
    	Bits 11-00:   257 (0x101)
    Address 0x48106034:
    HD_VENC_D_cfg13: 0x000002ED
    	Bits 31-28:     0 (0x000)
    	Bits 27-24:     0 (0x000)
    	Bits 23-12:     0 (0x000)
    	Bits 11-00:   749 (0x2ed)
    Address 0x48106038:
    HD_VENC_D_cfg14: 0x000002EF
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     0 (0x000)
    	Bits 11-00:   751 (0x2ef)
    Address 0x4810603C:
    HD_VENC_D_cfg15: 0x28500172
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1280 (0x500)
    	Bits 11-00:   370 (0x172)
    Address 0x48106040:
    HD_VENC_D_cfg16: 0x0001E000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:    30 (0x01e)
    	Bits 11-00:     0 (0x000)
    Address 0x48106044:
    HD_VENC_D_cfg17: 0x002D0000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   720 (0x2d0)
    	Bits 11-00:     0 (0x000)
    Address 0x48106048:
    HD_VENC_D_cfg18: 0x05005000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     5 (0x005)
    	Bits 11-00:     0 (0x000)
    Address 0x4810604C:
    HD_VENC_D_cfg19: 0x05001001
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     1 (0x001)
    	Bits 11-00:     1 (0x001)
    Address 0x48106050:
    HD_VENC_D_cfg20: 0x0018F18B
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   399 (0x18f)
    	Bits 11-00:   395 (0x18b)
    Address 0x48106054:
    HD_VENC_D_cfg21: 0x2850016A
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1280 (0x500)
    	Bits 11-00:   362 (0x16a)
    Address 0x48106058:
    HD_VENC_D_cfg22: 0x0001E001
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:    30 (0x01e)
    	Bits 11-00:     1 (0x001)
    Address 0x4810605C:
    HD_VENC_D_cfg23: 0x002D01A4
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   720 (0x2d0)
    	Bits 11-00:   420 (0x1a4)
    Address 0x48106060:
    HD_VENC_D_cfg24: 0x05001000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     1 (0x001)
    	Bits 11-00:     0 (0x000)
    Address 0x48106064:
    HD_VENC_D_cfg25: 0x05004176
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     4 (0x004)
    	Bits 11-00:   374 (0x176)
    
    dvo2_reg.txt
    Address 0x4810A000:
    HD_VENC_D_cfg00: 0x44013051
    	Bits 31-31:     0 (0x000)
    	Bits 30-30:     1 (0x001)
    	Bits 29-29:     0 (0x000)
    	Bits 28-28:     0 (0x000)
    	Bits 27-27:     0 (0x000)
    	Bits 26-26:     1 (0x001)
    	Bits 25-25:     0 (0x000)
    	Bits 24-24:     0 (0x000)
    	Bits 23-23:     0 (0x000)
    	Bits 22-22:     0 (0x000)
    	Bits 21-21:     0 (0x000)
    	Bits 20-20:     0 (0x000)
    	Bits 19-19:     0 (0x000)
    	Bits 18-16:     1 (0x001)
    	Bits 15-15:     0 (0x000)
    	Bits 14-14:     0 (0x000)
    	Bits 13-13:     1 (0x001)
    	Bits 12-11:     2 (0x002)
    	Bits 10-10:     0 (0x000)
    	Bits 09-09:     0 (0x000)
    	Bits 08-08:     0 (0x000)
    	Bits 07-07:     0 (0x000)
    	Bits 06-06:     1 (0x001)
    	Bits 05-05:     0 (0x000)
    	Bits 04-04:     1 (0x001)
    	Bits 03-03:     0 (0x000)
    	Bits 02-00:     1 (0x001)
    Address 0x4810A004:
    HD_VENC_D_cfg01: 0x003F0275
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:   629 (0x275)
    Address 0x4810A008:
    HD_VENC_D_cfg02: 0x1EA500BB
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:   187 (0x0bb)
    Address 0x4810A00C:
    HD_VENC_D_cfg03: 0x1F9901C2
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:   450 (0x1c2)
    Address 0x4810A010:
    HD_VENC_D_cfg04: 0x1FD71E67
    	Bits 31-16:     0 (0x000)
    	Bits 15-00:  7783 (0x1e67)
    Address 0x4810A014:
    HD_VENC_D_cfg05: 0x004001C2
    	Bits 31-28:     0 (0x000)
    	Bits 27-16:    64 (0x040)
    	Bits 15-00:   450 (0x1c2)
    Address 0x4810A018:
    HD_VENC_D_cfg06: 0x00200200
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   512 (0x200)
    	Bits 11-00:   512 (0x200)
    Address 0x4810A01C:
    HD_VENC_D_cfg07: 0x177C0BC5
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  3013 (0xbc5)
    Address 0x4810A020:
    HD_VENC_D_cfg08: 0x1C0C0B81
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  2945 (0xb81)
    Address 0x4810A024:
    HD_VENC_D_cfg09: 0x1C0C0B81
    	Bits 31-20:     0 (0x000)
    	Bits 19-12:   192 (0x0c0)
    	Bits 11-00:  2945 (0xb81)
    Address 0x4810A028:
    HD_VENC_D_cfg10: 0x842EE672
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   750 (0x2ee)
    	Bits 11-00:  1650 (0x672)
    Address 0x4810A02C:
    HD_VENC_D_cfg11: 0x281A401D
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   420 (0x1a4)
    	Bits 11-00:    29 (0x01d)
    Address 0x4810A030:
    HD_VENC_D_cfg12: 0x28508101
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1288 (0x508)
    	Bits 11-00:   257 (0x101)
    Address 0x4810A034:
    HD_VENC_D_cfg13: 0x000002ED
    	Bits 31-28:     0 (0x000)
    	Bits 27-24:     0 (0x000)
    	Bits 23-12:     0 (0x000)
    	Bits 11-00:   749 (0x2ed)
    Address 0x4810A038:
    HD_VENC_D_cfg14: 0x000002EF
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     0 (0x000)
    	Bits 11-00:   751 (0x2ef)
    Address 0x4810A03C:
    HD_VENC_D_cfg15: 0x28500172
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1280 (0x500)
    	Bits 11-00:   370 (0x172)
    Address 0x4810A040:
    HD_VENC_D_cfg16: 0x0001E000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:    30 (0x01e)
    	Bits 11-00:     0 (0x000)
    Address 0x4810A044:
    HD_VENC_D_cfg17: 0x002D0000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   720 (0x2d0)
    	Bits 11-00:     0 (0x000)
    Address 0x4810A048:
    HD_VENC_D_cfg18: 0x05005000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     5 (0x005)
    	Bits 11-00:     0 (0x000)
    Address 0x4810A04C:
    HD_VENC_D_cfg19: 0x05001001
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     1 (0x001)
    	Bits 11-00:     1 (0x001)
    Address 0x4810A050:
    HD_VENC_D_cfg20: 0x0018F18B
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   399 (0x18f)
    	Bits 11-00:   395 (0x18b)
    Address 0x4810A054:
    HD_VENC_D_cfg21: 0x2850016A
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:  1280 (0x500)
    	Bits 11-00:   362 (0x16a)
    Address 0x4810A058:
    HD_VENC_D_cfg22: 0x0001E001
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:    30 (0x01e)
    	Bits 11-00:     1 (0x001)
    Address 0x4810A05C:
    HD_VENC_D_cfg23: 0x002D01A5
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:   720 (0x2d0)
    	Bits 11-00:   421 (0x1a5)
    Address 0x4810A060:
    HD_VENC_D_cfg24: 0x05001000
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     1 (0x001)
    	Bits 11-00:     0 (0x000)
    Address 0x4810A064:
    HD_VENC_D_cfg25: 0x05004176
    	Bits 31-24:     0 (0x000)
    	Bits 23-12:     4 (0x004)
    	Bits 11-00:   374 (0x176)