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 图像输出位置不正常

Other Parts Discussed in Thread: THS8200, TVP7002

求教社区大大,THS8200输出的图像位置不正常。

720P PAL 图像偏左,不能全屏。

1080I  NTSC制式  图像偏左,最左部分不能显示,右边屏幕还有空余。

配置如下:

char test_reg[][2] =
{
{ 0x1A,0x00 },// tst_cntl
{ 0x1B,0x00 } // tst_ramp_cntl
};
char csm_reg[][2] =
{
{ 0x4A,0x00 }, // csm_mult_gy_msb
};
char csc_reg3[][2] =
{
{ 0x04,0x00 }, // csc_ric1
{ 0x05,0xDA }, // csc_rfc1
{ 0x06,0x80 }, // csc_ric2
{ 0x07,0x78 }, // csc_rfc2
{ 0x08,0x02 }, // csc_ric3
{ 0x09,0x0c }, // csc_rfc3
{ 0x0A,0x02 }, // csc_gic1
{ 0x0B,0xDC }, // csc_gfc1
{ 0x0C,0x81 }, // csc_gic2
{ 0x0D,0x94 }, // csc_gfc2
{ 0x0E,0x81 }, // csc_gic3
{ 0x0F,0xDC }, // csc_gfc3
{ 0x10,0x00 }, // csc_bic1
{ 0x11,0x4A }, // csc_bfc1
{ 0x12,0x02 }, // csc_bic2
{ 0x13,0x0c }, // csc_bfc2
{ 0x14,0x80 }, // csc_bic3
{ 0x15,0x30 }, // csc_bfc3
{ 0x16,0x00 }, // csc_offset1
{ 0x17,0x08 }, // csc_offset12
{ 0x18,0x02 }, // csc_offset23
{ 0x19,0x00 } // csc_offset3
}; // HDTV RGB to HDTV YCbCr
char sync_ctrl2[][2] =
{
{ 0x82,0x1F },// EXTERNAL ypbpr
{ 0x1C,0x04 }// 10bit ycbcr 422
};//BT656_EXTERNAL_SYNC
char _1080_display_set[][2]=
{
{ 0x03,0x11 }, // chip_ctl
{ 0x1D,0xFF }, // dtg_y_sync1 setup tri-level sync
{ 0x1E,0x49 }, // dtg_y_sync2
{ 0x1F,0xB6 }, // dtg_y_sync3
{ 0x20,0xFF }, // dtg_cbcr_sync1
{ 0x21,0xFF }, // dtg_cbcr_sync2
{ 0x22,0xFF }, // dtg_cbcr_sync3
{ 0x23,0x13 }, // dtg_y_sync_upper
{ 0x24,0x15 }, // dtg_cbcr_sync_upper
{ 0x25,0x2C }, // dtg_spec_a use spec registers to set up horizontal timing
{ 0x26,0x58 }, // dtg_spec_b
{ 0x27,0x2C }, // dtg_spec_c
{ 0x28,0x84 }, // dtg_spec_d
{ 0x2A,0xC0 }, // dtg_spec_e
{ 0x2B,0x00 }, // dtg_spec_h_msb
{ 0x2C,0x00 }, // dtg_spec_h_lsb
{ 0x2F,0x58 }, // dtg_spec_k_lsb
{ 0x30,0x00 }, // dtg_spec_k_msb
{ 0x32,0x58 }, // dtg_speg_g_lsb
{ 0x33,0x00 }, // dtg_speg_g_msb
{ 0x34,0x08 }, // dtg_total_pixel_msb
{ 0x35,0x98 }, // dtg_total_pixel_lsb
{ 0x36,0x00 }, // dtg_linecnt_msb
{ 0x37,0x01 }, // dtg_linecnt_lsb
{ 0x38,0x81 }, // dtg_mode select 1080i mode (defines vertical structure the video frame)
{ 0x39,0x42 }, // dtg_frame_field_msb 465h =1125 lines per frame
{ 0x3A,0x65 }, // dtg_frame_size_lsb 233h = 563 lines per field
{ 0x3B,0x33 }, // dtg_field_size_lsb
{ 0x79,0x00 }, // dtg_hs_in_dly_msb adjusts horizontal input delay
{ 0x7A,0x44 }, // dtg_hs_in_dly_lsb
{ 0x7B,0x00 }, // dtg_vs_in_dly_msb adjust vertical input delay
{ 0x7C,0x01 } // dtg_vs_in_dly_lsb
};

希望不吝赐教啊,谢谢~~~~

  • 请问你参考的寄存器配置是哪一个?

    从手册Table 4-1. Supported Input Formats 可知, 10bit传输模式下, 是不支持HDTV的。所以感觉你的用法有问题。

    请按照http://www.ti.com/cn/lit/zip/slec029 里面的配置表来做。

  • 谢谢您的答复。

    我前端使用的是松下的芯片,它的10bit传输模式和TI 10bit模式的不一致,导致了配置错误。

    现在我参照了http://www.ti.com/cn/lit/zip/slec029 里面的配置表中20bit ycbcr422 DS模式来配置,

    也尝试了修改我原来的配置 :{ 0x1C,0x04 }// 10bit ycbcr 422    ----> { 0x1C,0x03 }// 20bit ycbcr 422

    但是图像的位置依旧不对,而且图像更不清晰。

    720P 

    1080I

  • 和你再确认一下:

    松下芯片和8200的链接方式是否就是     YUV422 Discrete Sync ,    8200 输出YPbPr分量信号?

    我前端使用的是松下的芯片,它的10bit传输模式和TI 10bit模式的不一致,导致了配置错误。”    这个指10比特模式不一致具体是什么意思,就是嵌入同步和水平同步的问题吗?

    "也尝试了修改我原来的配置 :{ 0x1C,0x04 }// 10bit ycbcr 422    ----> { 0x1C,0x03 }// 20bit ycbcr 422"     你的前面的芯片到底是用10bit还是用20bit在传?  不是8200这边直接从10改成20就能跑的吧,需要你的前端芯片硬件/软件上都是有修改的。

  • 您好,我想我没有表述清楚。确认一下:

    首先,松下的ycbcr422 10bit模式就是TI的 ycbcr 422 20bit模式,只是两本datasheet上表述不一样,您可以理解为我前端芯片是在用20bit在传。

    其次,松下芯片和8200的连接方式是Discrete Sync。

    我也尝试了把我的代码全部替换成http://www.ti.com/cn/lit/zip/slec029 里面的配置表中20bit ycbcr422 DS模式来配置,

    结果同样是图像的位置不对,图像不清晰。

  • 你看看松下芯片给出来的时序是否能够和标准对的上?

    如DATASET_NAME,"1080i30, 30Hz, 33.75kHz, 74.25MHz, YPbPr>YCbCr 422 ES>YPbPr, TVP7002+THS8200"

    你应该可以量到时钟频率必须是74.25M, 行频是33.75k这些。

    另外, 注意一下INCLUDE,THS8200_HDTV_YCbCr_422_ES_to_YPbPr_common.inc  这样的描述,这样的文件里面也是包含有需要配置的寄存器值的,不要漏配了。

  • 谢谢您的回复和建议。

    我测量了时钟,场频,行频,和标准都对得上,xxx_common.inc 这些寄存器也确实设置了。

    现在我把松下芯片的输出换成了ycbcr444,然后参照 tvp7002_ths8200_VGA_to_YCbCr_444_DS_to_VGA对THS8200 进行了设置。

    得到以下图像:图像杂色没有了,但色彩还是不对,图像位置也不对。

    1080_60P

    720_50P

    之后还尝试了tvp7002_ths8200_YPbPr_to_YCbCr_444_DS_to_YPbPr 的配置方式,但完全没有图像输出。

  • 你的图像是否发生了红色/蓝色反掉的情形?

  • 您看看正常输出和现在的对比吧:

  • 所以你的松下芯片10bit是和8200的10bit是一一对应的接的?感觉很像那种位数偏了的情形。。。

    还有,要么把对接的原理图也发一下吧。。。

  • 附上硬件给我的原理图,麻烦check一下,谢谢。

  • http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/66541.aspx

    先参考这个link按照反色处理一下吧。

    原理图看上去没有什么问题。。。

  • 谢谢回复。

    这两天逛论坛也发现了这个问题,我试着把Cb和Cr交换了:

    char CSC_reversion_reg[][2] = {

    { 0x04,0x80 }, // csc_bic1
    { 0x05,0xBB }, // csc_bfc1
    { 0x06,0x07 }, // csc_bic2
    { 0x07,0x42 }, // csc_bfc2
    { 0x08,0x00 }, // csc_bic3
    { 0x09,0x00 }, // csc_bfc3
    { 0x0A,0x04 }, // csc_gic1
    { 0x0B,0x00 }, // csc_gfc1
    { 0x0C,0x04 }, // csc_gic2
    { 0x0D,0x00 }, // csc_gfc2
    { 0x0E,0x04 }, // csc_gic3
    { 0x0F,0x00 }, // csc_gfc3
    { 0x10,0x81 }, // csc_ric1
    { 0x11,0xD5 }, // csc_rfc1
    { 0x12,0x00 }, // csc_ric2
    { 0x13,0x00 }, // csc_rfc2
    { 0x14,0x06 }, // csc_ric3
    { 0x15,0x29 }, // csc_rfc3
    { 0x16,0x14 }, // csc_offset1
    { 0x17,0xAE }, // csc_offset12
    { 0x18,0x8B }, // csc_offset23
    };

    目前看来结果还是和以前一样。

    另外YCbCr444的模式是不是用24bit线传输?还会存在红蓝反色的情况吗?

    因为我松下芯片和THS8200也试过CbCr444的模式,结果还是和YCbCr422一样。

  • 您好,抛开色彩不对的问题。我想问图像位置不对:

    我说的位置不对就是非1080的图像不能全屏显示,1080的图像左边有一部分不能显示,屏幕右边还有一条黑屏。

    这大概是什么原因?

    Output sync level amplitude error?       Display timing error?          Discrete output sync error?

    这两天完全没有进展,希望答疑解惑啊。