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.

DM6446 EVM and SVGA output using THS8200

Other Parts Discussed in Thread: THS8200

Hi,

We using DM6446 EVM with THS8200 (Rev C) daughter card. Our aim is to display 800x600@60fps over VGA connector on THS8200 daughter card.

Based on previous posts in this forum, we have translated voltage levels of HS_OUT and VS_OUT signals to 3.3V by adding 2-bit level translater on THS8200 board.

As present THS8200 driver doesn't support output on VGA connecter, we have done couple of modifications to driver.

720P-60 on VGA connector experiment:

First we tested 720P-60 output on VGA connector. Following changes are done,

1) VENC_VMOD programmed to give RGB565 output. VENC_VIDCTL changed to make VCLKP=0.

2) THS8200_DTG2_CNTL (0x82) changed to 0x5b. (dtg2_rgb_mode_on set to 1).

3) THS8200_DTG1_MODE (0x38) changed to 0x87. (dtg1_mode set to VESA slave)

4) THS8200_DATA_CNTL (0x1c) changed to 0x21. (data_ifir12_bypass = 1 and data_dman_cntl = 001 - 16-bit RGB 4:4:4)

Other than these changes, we have not modified anything else. With these changes, we get 720P output with proper colors on monitor. Though we are seeing some horizontal shift on the display which is not major concern right now.

SVGA-60 on VGA connector experiment:

After this experiment, we are modifying driver to display SVGA output on VGA connector. For this we are taking 720P settings as reference. Following changes are done, 1) We have added one more standard in 'ths8200_encoder.c', with following settings,

         .name = VID_ENC_STD_SVGA_VESA_60,
         .std = 1,
         .if_type = VID_ENC_IF_PRGB,   /* TBD */
         .interlaced = 0,
         .xres = 800,
         .yres = 600,
         .fps = {60, 1},
         .left_margin = 140,
         .right_margin = 116,
         .upper_margin = 15,
         .lower_margin = 10,
         .hsync_len = 80,
         .vsync_len = 5,
         .flags = 0},

2) VENC_VMOD programmed to give RGB565 output.VENC_VIDCTL changed to make VCLKP=0.

3) THS8200_DTG2_CNTL (0x82) changed to 0x5b. (dtg2_rgb_mode_on set to 1).

 4) THS8200_DTG1_MODE (0x38) changed to 0x87. (dtg1_mode set to VESA slave)

5) THS8200_DATA_CNTL (0x1c) changed to 0x21. (data_ifir12_bypass = 1 and data_dman_cntl = 001 - 16-bit RGB 4:4:4)

6) Programed CDCE949 clock to output 39.6MHz clock for SVGA@60fps.

7) THS8200_DTG1_TOT_PIXELS_MSB (0x34) set to 0x04

8) THS8200_DTG1_TOT_PIXELS_LSB (0x35) set to 0x20

9) THS8200_DTG1_FRAME_FIELD_SZ_MSB (0x39) set to 0x27

10) THS8200_DTG1_FRAME_SZ_LSB (0x3a) set to 0x71

11) THS8200_DTG1_SPEC_E_LSB (0x2a) set to 0x8c

12) THS8200_DTG1_SPEC_DEH_MSB (0x2b) set to 0x80

Apart from above registers, remaining THS8200 registers are same as 720P configuration.

With these changes, we get video output on monitor.

But displayed video's brightness level is too low and colors are also distorted. Also, there is one fixed vertical line on left side of display.

Based on this information, we have following questions,

1) For SVGA, are any more settings required to be changed (both on DM6446 and THS8200)? Are we missing anything?

2) If THS8200 is set in VESA slave mode, then is it necessary to make changes as mentioned in points7-12 above? These changes are done based on application report SPRAAN0.pdf

3) What could be the reasons for low brightness level on display? Also vertical line on the left side?

If anyone has same clue about this problem, please let us know.

Thanks in advance.

-- satyajit

  • Hello,

    We have interfaced THS8200 with DM365.

    The input to THS8200 is 30bit RGB and relevant change is made in THS8200_DATA_CNTL (0x1c).

    With the waveforms i am able to verify the input data, hsync, vsync to THS8200. Am able to view the waveform on the output of THS8200 (ARPr, ABPb, AGY) but the HS_OUT and VS_OUT are low.

    The register dump for THS8200 is


    0 1 2 3 4 5 6 7 8 9 A B C D E F
    00: 0 0 4 1 0 0 0 0 0 0 0 0 0 0 0 0
    10: 0 0 0 0 0 0 0 0 0 3 0 0 70 0 0 0
    20: 0 0 42 0 0 8 0 0 4 0 8c 80 0 0 0 0
    30: 0 0 0 0 4 20 80 1 87 22 74 74 0 0 0 0
    40: 0 0 0 0 0 8 20 0 0 0 8c 44 0 0 0 c0
    50: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    60: 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0
    70: 80 0 1 3 0 1 0 7 0 0 0 0 0 4 20 30
    80: 0 0 db 0 0 0 cf 3 6d 2 0 0 0 0 0 0

     

    Please suggest the register settings that need to be modified for 800x600.

     

    Regards,

    Shriharsh Datar

    Mavensystems

     

  • Satyajit,

    Have you verified that you're outputting the data correctly out of the DM6446?  This would be a useful step to take in order to isolate the issue between the DM6446 and the TH8200 device.  You can also check that you're outputting the correct frame format (VSYNC vs HSYNC relationship), and most importantly, your RGB565 data.  This can be tricky so we need to decipher if you're outputting what you think you're outputting with your driver.

  • hello Satyajit,

    Setting on DM365 is 30bit Parallel RGB. The output clock is 40Mhz to THS8200 and HSYNC and VSYNC are exact to the calculation.

    With the above settings we are now getting the output, but the color are distorted. Gray color looks to be green on the screen :-( 

    The CSC is currently bypassed with reg 0x19 value set to 0x03.

    What should be done in order to get the correct color combination on the screen???

    register dump of ths8200 for 800x600 (with distorted colors) is


    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: 0 0 4 1 0 0 0 0 0 0 0 0 0 0 0 0
    10: 0 0 0 0 0 0 0 0 0 3 0 0 70 0 0 0
    20: 0 0 42 0 0 8 0 0 4 0 0 0 0 0 0 0
    30: 0 0 0 0 4 20 0 1 87 22 74 74 0 0 0 0
    40: 0 0 0 0 0 8 20 0 0 0 8c 44 0 0 0 c0
    50: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    60: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    70: 50 3 0 5 2 50 0 7 ff 0 0 0 0 4 20 32
    80: 71 0 5b 0 0 0 9f 3 6d 2 0 0 0 0 0 0

    Please suggest the relevant changes.

    Regards,

    Shriharsh Datar

    Maven Systems