TI论坛
直播中

乔丽娜

8年用户 1173经验值
私信 关注
[问答]

OMAP5432 ES2上使用SN65DSI83进行MIPI DSI转LVDS,IRQ Register 0xE5大部分时间会显示0x81,为什么?


  • 于 OMAP5432 ES2 上使用 SN65DSI83 进行 MIPI DSI 转 LVDS。
        目前可正常显示,也可正常输出 test pattern 画面 (MIPI DSI clock 经示波器量测为 213MHz,LVDS输出端则为 71MHz)

        但是 IRQ Register 0xE5 大部分时间会显示 0x81 (CHA_SYNCH_ERR, PLL_UNLOCK),少部分机率性出现 0xB1, 0x01
        而且,开机时机率性会出现白屏或黑屏,此时 SN65DSI83 有输出 clock,但是 data lines 都没有输出
       (有观察到此时 IRQ Register 0xE5 是 0x81,不排除也有其他数据的可能性)

        请问:
        1. CHA_SYNCH_ERR的成因为何? specification 上面写的过于笼统
        2. CHA_SYNCH_ERR 该如何解决 ?
        3.  IRQ Register 0xE5 回报 PLL_UNLOCK 是正常的吗?

    static struct omap_dss_device omap5_XXX_dsi_device = {        .name                         = "lcd",        .driver_name            = "sn65dsi83_i2c_d2l",        .type                           = OMAP_DISPLAY_TYPE_DSI,        .channel = OMAP_DSS_CHANNEL_LCD,        .data        = &XXX_dsi_panel,        .phy.dsi                = {                .clk_lane       = 1,                .clk_pol        = 0,                .data1_lane     = 2,                .data1_pol      = 0,                .data2_lane     = 3,                .data2_pol      = 0,                .data3_lane     = 4,                .data3_pol      = 0,                .data4_lane     = 5,                .data4_pol      = 0,                .module         = 0,                .ext_te = false,                .ext_te_gpio = -1,        },        .clocks = {                .dispc = {                         .channel = {                                .lck_div        = 1,                                .pck_div        = 2,                                .lcd_clk_src    = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,                        },                        .dispc_fclk_src = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,                },                .dsi = {                        .regn                   = 16,                        .regm                 = 178,                        .regm_dispc     = 4,                        .regm_dsi       = 4,                        .lp_clk_div     = 18,                        .offset_ddr_clk = 0,                        .dsi_fclk_src   = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI,                },                        },        .panel = {                .width_in_um = 216960,                .height_in_um = 135600,                .fb_xres = 1280,                .fb_yres = 800,                .dsi_mode = OMAP_DSS_DSI_VIDEO_MODE,                .dsi_pix_fmt = OMAP_DSS_DSI_FMT_RGB888,        },        .reset_gpio     = SN65DSI83_EN,        .max_backlight_level = 255,        .set_backlight                = omap5XXX_set_bl_intensity,};static struct omap_video_timings sn65dsi83_timings = {        .x_res                = 1280,        .y_res                = 800,        .pixel_clock        = 71100,        .hsw                        = 16,        .hfp                        = 112,        .hbp                        = 32,        .vsw                        = 2,        .vfp                        = 11,        .vbp                        = 10,};static const struct omap_dss_dsi_videomode_data vm_data = {        .hsa                        = 16,        .hfp                        = 112,        .hbp                        = 32,        .vsa                        = 2,        .vfp                        = 11,        .vbp                        = 10,        .vp_de_pol                = true,        .vp_vsync_pol                = true,        .vp_hsync_pol                = true,        .vp_hsync_end                = true,        .vp_vsync_end                = true,        .blanking_mode                = 1,        .hsa_blanking_mode        = 1,        .hfp_blanking_mode        = 1,        .hbp_blanking_mode        = 1,        .ddr_clk_always_on        = true,        .window_sync                = 4,};unsigned char SN65DSI83_REGS[][2] = {        // Register Index, Set Value        // Reset and Clock Registers        {0x09, 0x00}, // SOFT_RESET        {0x0A, 0x05}, // PLL_EN_STAT, LVDS_CLK_RANGE, HS_CLK_SRC        {0x0B, 0x10}, // DSI_CLK_DIVIDER, REFCLK_MULTIPLIER        {0x0D, 0x00}, // PLL_EN        // DSI Registers        {0x10, 0x26}, // LEFT_RIGHT_PIXELS, DSI_CHANNEL_MODE, CHA_DSI_LANES, SOT_ERR_TOL_DIS        {0x11, 0x00}, // CHA_DSI_DATA_EQ, CHA_DSI_CLK_EQ        {0x12, 0x2a}, // CHA_DSI_CLK_RANGE        // LVDS Registers        {0x18, 0x78}, // DE_NEG_POLARITY, HS_NEG_POLARITY, VS_NEG_POLARITY, LVDS_LINK_CFG, CHA_24BPP_MODE, CHA_2424BPP_FORMAT1        {0x19, 0x00}, // CHA_LVDS_VOCM, CHA_LVDS_VOD_SWING        {0x1A, 0x23}, // EVEN_ODD_SWAP, CHA_REVERSE_LVDS, CHA_LVDS_TERM        {0x1B, 0x00}, // CHA_LVDS_CM_ADJUST        // Video Registers        {0x20, 0x00}, // CHA_ACTIVE_LINE_LINGTH_LOW     0x0500 (1280)        {0x21, 0x05}, // CHA_ACTIVE_LINE_LINGTH_HIGH         {0x24, 0x20}, // CHA_VERTICAL_DISPLAY_SIZE_LOW  0x0320 ( 800) [TEST PATTERN GENERATION PURPOSE ONLY]        {0x25, 0x03}, // CHA_VERTICAL_DISPLAY_SIZE_HIGH               [TEST PATTERN GENERATION PURPOSE ONLY]        {0x28, 0x21}, // CHA_SYNC_DELAY_LOW             0x0021 (  33)        {0x29, 0x00}, // CHA_SYNC_DELAY_HIGH        {0x2C, 0x10}, // CHA_HSYNC_PULSE_WIDTH_LOW      0x0010 (  16)        {0x2D, 0x00}, // CHA_HSYNC_PULSE_WIDTH_HIGH        {0x30, 0x02}, // CHA_VSYNC_PULSE_WIDTH_LOW      0x0002 (   2)        {0x31, 0x00}, // CHA_VSYNC_PULSE_WIDTH_HIGH        {0x34, 0x20}, // CHA_HORIZONTAL_BACK_PORCH      0x20   (  32)        {0x36, 0x0b}, // CHA_VIRTICAL_BACK_PORCH        0x0b   (  11) [TEST PATTERN GENERATION PURPOSE ONLY]        {0x38, 0x70}, // CHA_HORIZONTAL_FRONT_PORCH     0x70   ( 112) [TEST PATTERN GENERATION PURPOSE ONLY]        {0x3A, 0x0a}, // CHA_VIRTICAL_FRONT_PORCH       0x0a   (  10) [TEST PATTERN GENERATION PURPOSE ONLY]        {0x3C, 0x00}, // CHA_TEST_PATTERN                             [TEST PATTERN GENERATION PURPOSE ONLY]        // IRQ Registers        {0xE1, 0xFD},        {0xE5, 0xFD},        {0xE0, 0x01},};

回帖(1)

秋风宜人

2024-12-24 17:46:36
根据您提供的信息,您在使用OMAP5432 ES2和SN65DSI83进行MIPI DSI转LVDS时遇到了一些问题。IRQ Register 0xE5大部分时间显示0x81(CHA_SYNCH_ERR, PLL_UNLOCK),这可能意味着存在时序同步错误和PLL解锁问题。以下是一些建议和可能的原因:

1. 时序问题:确保MIPI DSI和LVDS的时序参数正确配置。检查MIPI DSI和LVDS的时钟频率、数据速率和同步信号是否匹配。如果时序参数不正确,可能会导致时序同步错误和PLL解锁。

2. 电源问题:检查SN65DSI83的电源供应是否稳定。不稳定的电源可能导致PLL解锁和时序同步错误。

3. 硬件连接问题:检查MIPI DSI和LVDS之间的硬件连接是否正确。确保所有信号线都连接正确,没有短路或断路。

4. 固件/软件问题:检查您的固件或软件是否正确配置了MIPI DSI和LVDS接口。确保您使用的是正确的驱动程序和配置文件。

5. 硬件故障:如果以上建议都无法解决问题,可能是SN65DSI83本身存在硬件故障。您可以尝试更换一个新的SN65DSI83,看看问题是否得到解决。

关于开机时白屏或黑屏的问题,可能与IRQ Register 0xE5显示0x81有关。当IRQ Register 0xE5显示0x81时,可能意味着SN65DSI83无法正确同步MIPI DSI信号,导致数据线路没有输出。这可能是由于时序问题、电源问题或硬件连接问题导致的。您可以尝试以上建议来解决这个问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分