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.

[参考译文] Linux/SN65DSI84-Q1:与Samsung s5pv4418兼容,诊断DSI输入

Guru**** 2457760 points
Other Parts Discussed in Thread: SN65DSI84-Q1, SN65DSI84

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/580727/linux-sn65dsi84-q1-compatibility-with-samsung-s5pv4418-diagnosing-dsi-input

部件号:SN65DSI84-Q1
主题中讨论的其他部件: SN65DSI84

工具/软件:Linux

你(们)好

我有芯片SN65DSI84-Q1和attemp,可与Samsung s5p4418 SoC配合使用,用于单通道和双通道显示屏。

1.我的SoC具有电压3.3 v,芯片SN65DSI84具有1.x v (芯片时钟源为DSI输入)。 此架构是否可以正常运行? 我们应该在硬件级别上做什么?

2.我可以读取寄存器0xE5,它向我显示这些值(对于不同的配置):0x7d,0xFD,0x71,但从不显示0x01。  

我的第一个任务是让寄存器0xE5显示值0x01,而E5显示错误时没有附加显示的意义吗?

我的i2c配置代码:

// 09.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_soft_reset,0x01);
// 0D.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_PLL_EN,0x00);

msleep(10);

// 0a
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_core_PLL,0x05);// val
// 0B.
I2C_smbus_write_byte_data(dsi85_i2c_client, DSI85_PLL_DIV, 0x28);// 0x00;将DSI_CLK除以3。 0x010

/*四个DSI通道,带单通道*/
// 10.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_DSI_CFG,0x26);// 0x20
// 11.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_DSI_EQ,0x00);// 00

/*设置DSI时钟范围*/
// 12.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_DSI_CLK_RNG,0x54);// 5d.
// 13.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_DSI_CLK_RNG,0x00);

/*为单通道,24位模式,HS/VS低,DE高*设置LVDS
// 18.
I2C_smbus_write_byte_data(dsi85_i2c_client, DSI85_LVDS_mode, 0x72);// 7f;60.

/*设置LVDS 200欧姆端接和最大差分摆动电压*/
// 19.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_LVDS_SIGN,0x00);
// 1A
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_LVDS_TERM,0x03);
// 1B
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_LVDS_CM_adjust,0x00);

/* x分辨率高/低(通道A)*/
// 20.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_LINE_LEN_LO,0x00);
// 21.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_LINE_LEN_HI,0x04);

/* x通道B的高/低分辨率*/
//22.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_LINE_LEN_LO,0x00);
// 23.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_LINE_LEN_HI,0x00);

/* y分辨率高/低(通道A)*/
// 24.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VERT_Lines_LO,0x00);
//25.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VERT_Lines_HI,0x03);

/*通道B的分辨率为高/低*/
//26.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VERT_Lines_LO,0x00);
//27.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VERT_Lines_HI,0x00);

/*通道A的同步延迟高/低*/
// 28.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_SYNC_DELAY _LO,0x20);
// 29.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_SYNC_DELAY _HI,0x00);

/*通道B的同步延迟高/低*/
// 2A.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_sync_delay_LO,0x00);
// 2B
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_sync_delay_HI,0x00);

/*通道A的HSYNC宽度高/低*/
//2c.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_HSYNC_width_LO,0x80);
// 2维
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_HSYNC_width_HI,0x00);

/*通道B的HSYNC宽度高/低*/
// 2e.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_HSYNC_width_LO,0x00);
//2F
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_HSYNC_width_HI,0x00);

/*通道A的VSYNC宽度高/低*/
// 30.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VSYNC_width_LO,0x01);
// 31.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VSYNC_width_HI,0x00);

/* VSYNC宽度高/低(通道B)*/
// 32.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VSYNC_width_LO,0x00);
// 33.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VSYNC_width_HI,0x00);

/*通道A的水平后向移动*/
// 34.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_HORZ_BACKPORCH,0x28);

/*通道B的水平背板*/
// 35.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_HORZ_BACKPORCH,0x00);

/*通道A的垂直BackPorch */
// 36.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VERT_BACKPORCH,0x09);

/*通道B的垂直后向通道*/
// 37.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VERT_BACKPORCH,0x00);

/*通道A的水平前向通道*/
// 38.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_HORZ_FRONTPORCH,0x28);

/*通道B的水平前向通道*/
// 39.
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_HORZ_FRONTPORCH,0x00);

/*通道A的垂直前向通道*/
// 3A
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHA_VERT_FRONTPORCH,0x04);

/*通道B的垂直前向通道*/
// 3B
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_CHB_VERT_FRONTPORCH,0x00);

I2C_smbus_write_byte_data (dsi85_i2c_client,0x3D,0x00);
I2C_smbus_write_byte_data (dsi85_i2c_client,0x3E,0x00);

// 3C测试模式
I2C_smbus_write_byte_data (dsi85_i2c_client,0x3C,0x10);


/*软复位并启用PLL */
msleep(10);
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_PLL_EN,0x01);
msleep(10);
I2C_smbus_write_byte_data (dsi85_i2c_client,DSI85_soft_reset,0x01);

3.使用Tuner v 2.0 ,我为配置寄存器输入值

0x09 0x00
0x0A 0x05
0x0B 0x28
0x0D 0x00
0x10 0x26
0x11 0x00
0x12 0x54
0x13 0x00
0x18 0x72
0x19 0x00
0x1A 0x03
0x1b 0x00
0x20 0x00
0x21 0x04
0x22 0x00
0x23 0x00
0x24 0x00
0x25 0x03
0x26 0x00
0x27 0x00
0x28 0x20
0x29 0x00
0x2A 0x00
0x2B 0x00
0x2C 0x80
0x2D 0x00
0x2E 0x00
0x2F 0x00
0x30 0x01
0x31 0x00
0x32 0x00
0x33 0x00
0x34 0x28
0x35 0x00
0x36 0x09
0x37 0x00
0x38 0x28
0x39 0x00
0x3A 0x04
0x3B 0x00
0x3C 0x10
0x3D 0x00
0x3e 0x00

这是我的显示器(1024x768单通道),已启用测试模式。 此图片是否显示了正确的测试图案图像? 如果一切正常,我会看到什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Oleg,

    应按照D-PHY规格提供DSI车道列弗。 请参阅电气特性表以检查MIPI DSI接口参数。

    请确保按照数据表中的说明正确执行通电顺序。 在断言EN引脚之前,确认您已将MIPI输入驱动至LP11 (所有MIPI DSI差分对的P和N对驱动至单端高~1.2V)。

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我们还将  SN65DSI84-Q1 与NVIDIA TX2配合使用。 由于NVIDIA TX2只有DSI输出,我们使用 SN65DSI84-Q1 作为桥接器。

    初始化顺序说明
    初始化SEQ1               接通电源并稳定后,必须将所有DSI输入通道(包括DSI CLK (DA x P/N,DB x P/N)驱动至
                         LP11状态。
    初始化SEQ2               断言EN引脚
    初始化seq3               等待1毫秒,让内部电压调节器稳定下来
    初始化seq4               根据实现将所有CSR寄存器初始化为相应的值(SN65DSI84-Q1不是
                         在CSR寄存器初始化之前正常工作)
    初始化seq5                启动DSI视频流
    初始化seq6                设置PLL_EN位(CSR 0x0D.0)
    初始化seq7                等待至少3毫秒。
    初始化seq8                设置soft_reset位(CSR 09.0)

    I uderstand Seq 1,2和3。 但如果您能解释如何完成Seq 4,6和8,请不胜感激。  如何对 SN65DSI84-Q1寄存器进行编程?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 ,Nipuna Weeratunge,

    SN65DSI84-Q1的内部寄存器应通过 其本地I2C接口进行配置。

    请看图5。 当VCC为高 时重置和初始化计时定义,说明初始化顺序要求。  

    此致