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.

THS8200 register settings

Other Parts Discussed in Thread: THS8200, OMAP3530, TFP410

Hi:

Our platform is OMAP 3503.  THS8200 is used to convert input from OMAP (RGB 24bit) into component 720P YCbCr signal. But it outputs no signal to TV. 

To be more accurate, only signal from the Y channel can be detected with scope(but seems to be blanking lines). 

 

The input signals to THS8200 are also connected to the DVI module (TFP41). But the DVI works as well.

 

The outputs from OMAP are: (The same setting as OMAP3530 EVM)

1. RGB 24 bit, the 2 LSBs for each channel are connected to ground.

2. HSYNC, VSYNC, PCLK, FID (low)

3. The list of Display Controller Registers shows more detail.

 

The following are THS8200 registers value we set. I also listed the reason why I set such value for each register, based on my understanding of the registers of THS8200 and the OMAP3 display subsystem, which might be misunderstanding though. 

 

I believe I must have set the THS8200 register improperly. I appreciate if anyone can give me the advice on the THS8200 registers setting based on the OMAP3's display setting.

 

Kevin

 

 

THS8200 registers:

reg02:  04

reg03:  01

 

// 0x04 - 0x19 COLOR SPACE CONVERSION, RGB->YPbPr. Settings copied from the THS8200 datasheet

reg04:  00

reg05:  da

reg06:  80

reg07:  78

reg08:  02

reg09:  0c

reg0a:  02

reg0b:  dc

reg0c:  81

reg0d:  94

reg0e:  81

reg0f:  dc

reg10:  00

reg11:  4a

reg12:  02

reg13:  0c

reg14:  80

reg15:  30

reg16:  00

reg17:  08

reg18:  02

reg19:  01

 

//0x1a - 0x1b: test control, not used.

reg1a:  00

reg1b:  00

 

//0x1C input: 30-bit YCbCr/RGB 4:4:4, Interpolation filters before/after the CSC are bypassed, 

reg1c:  30

 

//0x1d - 0x24: amplitudes, copied from the DM6446 sample code

reg1d:  ff

reg1e:  49

reg1f:  b6

reg20:  ff

reg21:  ff

reg22:  ff

reg23:  13

reg24:  15

 

// Negative Hsync width (half of total width) 0x18 = 0x30 / 2. 

//Setting based on: 0x4805 0464(7:0) [0x30]

// The actual value is 0x31. I dont know how to split it into half. I tried 0x19 as well, but it did not work.

reg25:  18

 

// End of Active Video to start of negative sync: 0x3F.

//Setting based on: 0x4805 0464(19:8) [0x3e]

reg26:  3f

 

// positive hsync width (half of total width) 0X18 = 0x30 / 2. 

//Setting based on: 0x4805 0464(7:0) [0x30]

reg27:  18

 

// Distance from negative-to-positive transition of tri-level sync to start of broad pulse (HDTV mode).

// Setting based on: 0x4805 0464(31:20) [0xfe]

reg28:  ff

 

// for SDTV, not HDTV

reg29:  00

 

//Width of HSYNC to active video:  0xff.

//Setting based on: 0x4805 0464(31:20) [0xfe]

reg2a:  ff

 

//bit [6] and [7] combined with reg28 and reg2a to set the width of HSYNC to active video.

reg2b:  00

 

// reg 0x2c - 0x2e for SDTV

reg2c:  00

reg2d:  00

reg2e:  00

 

//Distance from end of broad pulse to negative-to-positive transition of tri-level sync (HDTV)

//Setting based on: 0x4805 0464(19:8) [0x3e]

reg2f:  3f

reg30:  00

 

// reg 0x31 - 0x33 for SDTV

reg31:  00

reg32:  58

reg33:  00

 

// reg 0x34 - 0x35: 0x63e

//Setting based on: 0x4805 0464(31:20) [0xfe],  0x4805 0464(19:8) [0x3e] and  0x4805 047C(10:0) [0x4ff]

// 0xfe + 0x3e + 0x4ff + 3 = 0x63e

reg34:  06

reg35:  3e

 

 

// 0x36-0x37: starting line number

reg36:  00

reg37:  01

 

//output format: ATSC mode 720P

reg38:  82

 

// 0x39 -0x3a: Generic mode frame size: 745 lines / frame in 720p mode: 0x2E9

//Setting based on: 0x4805 0468(15:8) [0x14],  0x4805 0468(27:20) [0x05] and  0x4805 047C(26:16) [0x2cf]

// 0x14 + 0x05 + 2cf + 1 = 0x2E9

reg39:  27

reg3a:  e9

reg3b:  ff

 

//Color bar pattern, not used

reg3c:  80

 

// 0x3d - 0x40: DAC in normal operation

reg3d:  00

reg3e:  00

reg3f:  00

reg40:  00

 

//0x41-0x4F: Clip/Scale/Multiplier Control, default values applied

reg41:  40

reg42:  40

reg43:  40

reg44:  53

reg45:  3f

reg46:  3f

reg47:  40

reg48:  40

reg49:  40

reg4a:  08

reg4b:  00

reg4c:  00

reg4d:  00

reg4e:  00

reg4f:  00

 

//0x50-0x70 breakpoint<n> line number and Line type for dtg2_bp<n>, all default

reg50:  00

reg51:  00

reg52:  00

reg53:  00

reg54:  00

reg55:  00

reg56:  00

reg57:  00

reg58:  00

reg59:  00

reg5a:  00

reg5b:  00

reg5c:  00

reg5d:  00

reg5e:  00

reg5f:  00

reg60:  00

reg61:  00

reg62:  00

reg63:  00

reg64:  00

reg65:  00

reg66:  00

reg67:  00

reg68:  00

reg69:  00

reg6a:  00

reg6b:  00

reg6c:  00

reg6d:  00

reg6e:  00

reg6f:  00

reg70:  60

 

 

//reg 0x71 -0x78, for VS__OUT and HS_OUT, not used

reg71:  00

reg72:  02

reg73:  03

reg74:  00

reg75:  03

reg76:  00

reg77:  07

reg78:  ff

 

// reg 0x79 -0x7c: DTG horizontal/vertical delay: copied from the DM6446 sample code

reg79:  00

reg7a:  60

reg7b:  08

reg7c:  06

 

//reg 0x7d - 0x7e Pixel count readback

reg7d:  00

reg7e:  00

 

//reg 0x7f: Interlaced/progressive-scan indicator, 0 for progressive

reg7f:  00

 

//reg 0x80: Line count readback

reg80:  00

 

// not documented, default value

reg81:  00

 

//  reg 0x82: output mode and SYNCs polarity: YPbPr mode, Positive polarity for VS_IN and HS_IN, Negative polarity for FID.

reg82:  1b

 

// Reg 0x83-0x85: CGMS Control, default

reg83:  00

reg84:  00

reg85:  00

 

//not documented

reg86:  00

reg87:  00

reg88:  00

reg89:  00

 

 

OMAP3 Display Controller Registers:

Reg: 0x4805 0400:       00000030

Reg: 0x4805 0410:       00002015

Reg: 0x4805 0414:       00000001

Reg: 0x4805 0418:       00000020

Reg: 0x4805 041c:       0000d640

Reg: 0x4805 0440:       00018309

Reg: 0x4805 0444:       00000204

Reg: 0x4805 0448:       000003ff

Reg: 0x4805 044c:       00000000

Reg: 0x4805 0450:       00000000

Reg: 0x4805 0454:       00000000

Reg: 0x4805 0458:       00000000

Reg: 0x4805 045c:       00000250

Reg: 0x4805 0460:       00000000

Reg: 0x4805 0464:       0fe03e30

Reg: 0x4805 0468:       01400503

Reg: 0x4805 046c:       00000000

Reg: 0x4805 0470:       00010002

Reg: 0x4805 0474:       000000ff

Reg: 0x4805 0478:       00000000

Reg: 0x4805 047c:       02cf04ff

Reg: 0x4805 0480:       8e000000

Reg: 0x4805 0484:       8e000000

Reg: 0x4805 0488:       00000000

Reg: 0x4805 048c:       02cf04ff

Reg: 0x4805 04a0:       00000091

Reg: 0x4805 04a4:       03fc03bc

Reg: 0x4805 04a8:       00000400

Reg: 0x4805 04ac:       00000001

Reg: 0x4805 04b0:       00000001

Reg: 0x4805 04b4:       00000000

Reg: 0x4805 04b8:       00000000

  • When discrete input syncs are used, frame start-up in the THS8200 is sensitive to FID input polarity, the dtg2_fid_pol bit in REG82h, and the dtg1_field_flip bit in REG36h.

    With the FID input pulled low and dtg2_fid_pol = 0, dtg1_field_flip must be set to 1 for reliable frame start-up.  Symptoms of incorrect settings include black screen output or incorrect vertical positioning.  Try settings REG36=80h to see if this issue is resolved.

    Dtg1_field_flip must be set to 0 when embedded syncs are used, however.

  • Hi, Larry:

    Thanks for the reply.

    We are using discrete input syncs, which I believe are sperate HSYNC and VSYNC signals, instead of  the one embedded with the data signals. The FID was pulled low constantly.

    I set REG36=80h. But it is still not working.

    Actually, the symtom was not black screen. Black screen indicates the chip outputs signals in specified format, but just the signal is not perfect. In my case, it was even worse. The TV shows "no signal". According to the scope, The Pr and Pb channel had no signal at all. Only the Y channel had some signal. But I think they are blankings.

    Any other advise? 

    Thanks again.

  • hi kevin,

    we are working on omap 3530. Right know our board supports DVI output through TFP410. we want to get VGA by replacing TFP410 with THS8200. We are trying to write i2c3 registers as per the data sheet.

    still We are in first stage. If we connect THS8200 to OMAP3530, do we need to do any initialization of THS8200 through I2C interface before bringing up the display?can you suggest me how to proceed and can you please share your experince with THS8200 driver and integration with omap3 platform.

     

    Thansk in advance.

    Rekha

  • Hi, Rekha:

    We had the chip software reset by set reg03[0] (the LSB bit of register 03) to 0 and then 1. Now you can program the other registers.

    As well,  according to the datasheet, we pulled the RESETB pin to low and then high before writing I2C.

    Good luck.

    Kevin