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.

[参考译文] SN65DSI84-Q1:让芯片在具有嵌入式显示的定制 PCB 上工作

Guru**** 2387830 points
Other Parts Discussed in Thread: SN65DSI86, SN65DSI85, SN65DSI84, SN65DSI84-Q1, DSI-TUNER, SN65DSI83, SN65DSI83Q1-EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1201288/sn65dsi84-q1-getting-the-chip-to-work-on-a-custom-pcb-with-a-embedded-display

器件型号:SN65DSI84-Q1
主题中讨论的其他器件:DSI-TUNER、SN65DSI86 、SN65DSI85 、SN65DSI84 SN65DSI83SN65DSI83Q1-EVM

大家好!

我已经让显示屏与  SN65DSI86配合使用、尤其是 SN65DSI86-EVM 上的、感谢 Zach 烘干机、他指出我需要对应的 Excel 表格、并且 DSI 调谐器不能与芯片配合使用。

我已使 eDP 部分正常工作、并必须等待编程人员准备好处理 MIPI 部分。

与此同时、我需要 使用显示功能测试 SN65DSI84-Q1芯片。 我用芯片制作了一个很小的 PCB、芯片工作正常、我可以通过 i2c 进行访问。 1V 的 VCORE 也很好。

但是生成必要的 i2c 设置时遇到的问题与使用其它芯片时遇到的问题相同。

我的显示器具有以下 EDID 数据、我可以从在另一个 PCB 上与该显示器一起工作的 eDP 到 LVDS 芯片中读取这些数据:

我用于使测试模式与 SN65DSI86配合使用的 Excel 工作表设置如下:

DSI 调谐器不接受水平和垂直消隐像素。 它仅接受水平和垂直后沿、因此我根据第40页的 IC 数据表计算了相应的值:

BackPorch =消隐-(偏移或 FrontPorch +脉宽)
我获得了以下值:


DSI 调谐器的设置现在如下所示:

我的第一个优先级是使测试模式正常工作、因此如果 MIPI 设置有一点错误、我目前是可以的。

我的定制 PCB 具有一个直接连接到 REFCLK 输入的27MHz 振荡器。 因为显示屏的数据表为显示屏指定了一个51.21MHz 的时钟、所以我认为可以使用该时钟并且可以在 IC 中使用乘以2。 根据显示的数据希度、时钟可以在44,9MHz 到63MHz 之间。

以下是直接来自显示屏数据表的时序参数:

我非常感谢大家提出任何想法。 如有必要、我会将 PCB 的原理图张贴在后

非常感谢。

马克

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

    您好、Marc、

    是否尝试在面板上显示测试生成模式? DSI 调谐器中的 LVDS 参数看起来正常。

    谢谢。

    察赫

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

    大家好、Zach、

    再次感谢您的帮助。

    我要尝试的第一步是使图形生成正常运行。
    我将0x3C 寄存器设置为0x01、但运气差。 可能是我按错误的顺序对它进行编程吗? 我刚刚复制了 DSI 调谐器的输出、并将其转换为 I2C 主设备可以读取和编程的格式。  我所做的唯一改动是、首先添加软复位、禁用 PLL、设置所有时钟设置并启用 PLL、剩下的就是来自 DSI 调谐器。

    这是我的 PCB 的原理图、也许是有问题吗?

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

    Marc、

    您能否验证您是否设置  CHA_TEST_PATCH = 0x10?  

    我在上面看到、您将0x3C 寄存器设置为 x01。

    谢谢。

    察赫

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

    大家好、Zach、

    "对不起,我也没想到会被你撞见的。" 我对正确的值进行了编程。 这是开始时具有附加软复位功能的 DSI 调谐器的输出、以及时钟设置之前和之后 PLL 的禁用和启用。

    0x09 0x01
    0x0D 0x00
    0x0A 0x02
    0x0B 0x01
    0x0D 0x01
    0x10 0x36
    0x11 0x00
    0x12 0x2F
    0x13 0x00
    0x18 0x70
    0x19 0x00
    0x1A 0x03
    0x1b 0x00
    0x20 0x00
    0x21 0x04
    0x22 0x00
    0x23 0x00
    0x24 0x58
    0x25 0x02
    0x26 0x00
    0x27 0x00
    0x28 0x20
    0x29 0x00
    0x2A 0x00
    0x2B 0x00
    0x2C 0x0a
    0x2D 0x00
    0x2E 0x00
    0x2F 0x00
    0x30 0x02
    0x31 0x00
    0x32 0x00
    0x33 0x00
    0x34 0xa0
    0x35 0x00
    0x36 0x17
    0x37 0x00
    0x38 0x96
    0x39 0x00
    0x3A 0x0a
    0x3B 0x00
    0x3C 0x10
    0x3D 0x00
    0x3E 0x00

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

    您好、Marc、

    我将查看您在上面提供的所有信息。  

    我看到您提供了一段面板的数据表. 不过、您能否提供整个面板数据表供我查看?

    谢谢。

    察赫

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

    大家好、Zach、

    感谢你的帮助。 我们使用的显示器是顶视显示器。 无法在线找到数据表、我会尝试获取该数据、并会联系您。

    显示内容与此非常相似: https://www.topwaydisplay.com/sites/default/files/2020-02/LMT101ENMFWD-NAC.pdf

    我将通过私信向您发送正确的数据表。 我与 SN65DSI86一起使用的、用 Excel 工作表计算得出的参数运行正常、所以这可能是设置/编程问题? 我可以按照上面提供的顺序对寄存器进行编程吗?

    非常感谢您的帮助。

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

    您好、Marc、

    您需要使 LVDS 频率(标称)与54MHz 相匹配。

    您需要使用 DSI CLK =(54*18)/(2*2)=  243MHz。  

    谢谢。

    察赫

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

    大家好、Zach、

    好的、谢谢、我会改变它。 但是、如果我使用 REFCLK 以及27MHz 的振荡器和2的 PLL 倍频器、我会得到54MHz、这应该没问题、对吧?
    并且 testPattern 应该可以在没有 DSI 输入的情况下工作、就像我在您帮助我的其他论坛主题上使用 SN65DSI86 EVM 板时所做的那样。

    谢谢。

    马克

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

    Marc、

    54MHz 在数据表范围内、您应该没问题。

    测试模式在 DSI 输入正确时正常工作。

    谢谢。

    察赫

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

    好的、那么它应该适用于相关设置。

    我刚刚将整个 CSR 从0x00转储到0xff、为0xE5使用了0x01。 对于0xF4、我获得了0x40;对于0xF7、我获得了0x80。 数据表中未指定0xE5以上的寄存器。 这些是特殊的吗? 0xE5中的0x01表明它是 PLL_UNLOCK。 我刚检查了27MHz 时钟、它是稳定的。 1V8 Quartz 振荡器是否正确? 在 EVM-Schematic 中、他们使用外部 PLL/时钟分配 IC、但54MHz 显示屏需要27MHz。 有什么建议吗?

    显示 PCB 上的 LVDS 信号通过 GM8284DD  IC 转换为 RGB。此处是数据表、遗憾的是仅以中文显示:

    https://datasheet.lcsc.com/lcsc/1809111820_CORPRO-GM8284DD_C245023.pdf

    谢谢。

    马克

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

    Marc、

    是否有办法可以通过断开 REF_CLOCK 并暂时使用内部 DSI_CLK 来查看是否能为您提供正常工作的 LVDS 显示器? 内部测试模式虽然不使用 DSI_DATA 通道、但会使用 REF_CLK 或 DSI_CLK。

    谢谢。

    察赫

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

    大家好、Zach、

    嗯、我在 RT1170-EVK 板上有可以与转换器一起工作的运行代码。 问题在于、该代码用于 EVK-Display、对于频率、通道等具有完全不同的规格。 我可以尝试一下。 很遗憾、我们的软件开发团队目前没有时间进行实施。 我的原理图或 CSR 中是否有任何其他错误? 我对84个想法颇多。 在没有插入 DSI 的情况下,86在27MHz 的评估板上运行良好。

    谢谢。

    马克

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

    Marc、

    您能确认您使用的是 DSI-Tuner 2.1吗?

    您能否使用示波器来查看是否从设备获取 LVDS 数据?

    如果没有、请将其连接到此处: 0143.DSI 调谐器2.1.zip

    我将重新检查原理图和 CSR。

    谢谢。

    察赫

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

    大家好、Zach、

    我使用了 DSI 调谐器2.0。 我下载了您的2.1版、并将在星期一进行测试。
    我也会尝试测量 LVDS 输出。

    谢谢。

    马克

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

    Marc、

    很高兴听到、请告诉我是否可以让它工作。

    谢谢。

    察赫

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

    大家好、Zach、

    遗憾的是、它仍然无法与 DSI 调谐器2.1版配合使用。

    我不明白的是、DSI 调谐器会设置某些寄存器中的保留位。

    例如、我得到的 CSR 0x10值0x36设置了保留值、DSI 调谐器的寄存器描述与数据表中的描述不匹配、但它与 SN65DSI85数据 表的说明相匹配。。。 我在调谐器中选择了 SN65DSI84。 这些值与 SN65DSI85的值相匹配、可能会有问题?

    您能告诉我 DSI 时钟的 HS 状态和数据线的 LP11状态意味着什么吗? testPattern 需要这一点吗? 我仍然使 DSI 输入未连接、并且它们只是悬空。 我是否需要将它们接地或其他什么以使测试模式正常工作?

    谢谢。

    马克

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

    您好、Marc、

    我使用了基于到目前为止提供的信息的 DSI-Tuner 工具。

    您能否验证您当前的配置文件是否相同?

    e2e.ti.com/.../CSR_5F00_E2E.txt

    此外、根据 MIPI 规范、DSI CLK 的 HS 状态是高速状态。 LP11是指所有 DSI 数据通道都处于高电平的情况。  

    有关更多详细信息、请参阅该链接:

    https://www.edn.com/all-you-need-to-know-about-mipi-dphy-rx/

    谢谢。
    察赫

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

    大家好、Zach、

    非常感谢您到目前为止提供的帮助。

    我将您的 CSR 文件与我的文件进行了比较、发现了3处不同之处:

    地址:0x30 (VSYNC 脉冲宽度低电平)您的值0x0A (int 10)、我的值0x02  (int 2)

    地址:0x38 (水平前沿)您的值0xA0 (int 160)、我的值0x96  (int 150)

    地址:0x3A (垂直前沿)您的值0x0C (int 12)、我的值0x0A  (int 10)

    您能解释一下它们之间的区别吗? 例如、对于垂直前沿、值12是将10和2加在一起(v 同步偏移+垂直同步脉冲宽度)? 我使用了与 Excel 工作表和 SN65DSI86相同的值。

    我尝试了您的 CSR 值、但仍然没有进行测试。 还有其他想法吗?

    对芯片进行编程后、我在这里读出完整的 CSR:

    Adress 0x0 Value 35
    Adress 0x1 Value 38
    Adress 0x2 Value 49
    Adress 0x3 Value 53
    Adress 0x4 Value 44
    Adress 0x5 Value 20
    Adress 0x6 Value 20
    Adress 0x7 Value 20
    Adress 0x8 Value 01
    Adress 0x9 Value 00
    Adress 0xa Value 82
    Adress 0xb Value 00
    Adress 0xc Value 00
    Adress 0xd Value 01
    Adress 0xe Value 00
    Adress 0xf Value 00
    Adress 0x10 Value 36
    Adress 0x11 Value 00
    Adress 0x12 Value 30
    Adress 0x13 Value 00
    Adress 0x14 Value 00
    Adress 0x15 Value 00
    Adress 0x16 Value 00
    Adress 0x17 Value 00
    Adress 0x18 Value 70
    Adress 0x19 Value 00
    Adress 0x1a Value 03
    Adress 0x1b Value 00
    Adress 0x1c Value 00
    Adress 0x1d Value 00
    Adress 0x1e Value 00
    Adress 0x1f Value 00
    Adress 0x20 Value 00
    Adress 0x21 Value 04
    Adress 0x22 Value 00
    Adress 0x23 Value 00
    Adress 0x24 Value 58
    Adress 0x25 Value 02
    Adress 0x26 Value 00
    Adress 0x27 Value 00
    Adress 0x28 Value 20
    Adress 0x29 Value 00
    Adress 0x2a Value 00
    Adress 0x2b Value 00
    Adress 0x2c Value 0a
    Adress 0x2d Value 00
    Adress 0x2e Value 00
    Adress 0x2f Value 00
    Adress 0x30 Value 0a
    Adress 0x31 Value 00
    Adress 0x32 Value 00
    Adress 0x33 Value 00
    Adress 0x34 Value a0
    Adress 0x35 Value 00
    Adress 0x36 Value 17
    Adress 0x37 Value 00
    Adress 0x38 Value a0
    Adress 0x39 Value 00
    Adress 0x3a Value 0c
    Adress 0x3b Value 00
    Adress 0x3c Value 10
    Adress 0x3d Value 00
    Adress 0x3e Value 00
    Adress 0x3f Value 00
    Adress 0x40 Value 00
    Adress 0x41 Value 00
    Adress 0x42 Value 00
    Adress 0x43 Value 00
    Adress 0x44 Value 00
    Adress 0x45 Value 00
    Adress 0x46 Value 00
    Adress 0x47 Value 00
    Adress 0x48 Value 00
    Adress 0x49 Value 00
    Adress 0x4a Value 00
    Adress 0x4b Value 00
    Adress 0x4c Value 00
    Adress 0x4d Value 00
    Adress 0x4e Value 00
    Adress 0x4f Value 00
    Adress 0x50 Value 00
    Adress 0x51 Value 00
    Adress 0x52 Value 00
    Adress 0x53 Value 00
    Adress 0x54 Value 00
    Adress 0x55 Value 00
    Adress 0x56 Value 00
    Adress 0x57 Value 00
    Adress 0x58 Value 00
    Adress 0x59 Value 00
    Adress 0x5a Value 00
    Adress 0x5b Value 00
    Adress 0x5c Value 00
    Adress 0x5d Value 00
    Adress 0x5e Value 00
    Adress 0x5f Value 00
    Adress 0x60 Value 00
    Adress 0x61 Value 00
    Adress 0x62 Value 00
    Adress 0x63 Value 00
    Adress 0x64 Value 00
    Adress 0x65 Value 00
    Adress 0x66 Value 00
    Adress 0x67 Value 00
    Adress 0x68 Value 00
    Adress 0x69 Value 00
    Adress 0x6a Value 00
    Adress 0x6b Value 00
    Adress 0x6c Value 00
    Adress 0x6d Value 00
    Adress 0x6e Value 00
    Adress 0x6f Value 00
    Adress 0x70 Value 00
    Adress 0x71 Value 00
    Adress 0x72 Value 00
    Adress 0x73 Value 00
    Adress 0x74 Value 00
    Adress 0x75 Value 00
    Adress 0x76 Value 00
    Adress 0x77 Value 00
    Adress 0x78 Value 00
    Adress 0x79 Value 00
    Adress 0x7a Value 00
    Adress 0x7b Value 00
    Adress 0x7c Value 00
    Adress 0x7d Value 00
    Adress 0x7e Value 00
    Adress 0x7f Value 00
    Adress 0x80 Value 00
    Adress 0x81 Value 00
    Adress 0x82 Value 00
    Adress 0x83 Value 00
    Adress 0x84 Value 00
    Adress 0x85 Value 00
    Adress 0x86 Value 00
    Adress 0x87 Value 00
    Adress 0x88 Value 00
    Adress 0x89 Value 00
    Adress 0x8a Value 00
    Adress 0x8b Value 00
    Adress 0x8c Value 00
    Adress 0x8d Value 00
    Adress 0x8e Value 00
    Adress 0x8f Value 00
    Adress 0x90 Value 00
    Adress 0x91 Value 00
    Adress 0x92 Value 00
    Adress 0x93 Value 00
    Adress 0x94 Value 00
    Adress 0x95 Value 00
    Adress 0x96 Value 00
    Adress 0x97 Value 00
    Adress 0x98 Value 00
    Adress 0x99 Value 00
    Adress 0x9a Value 00
    Adress 0x9b Value 00
    Adress 0x9c Value 00
    Adress 0x9d Value 00
    Adress 0x9e Value 00
    Adress 0x9f Value 00
    Adress 0xa0 Value 00
    Adress 0xa1 Value 00
    Adress 0xa2 Value 00
    Adress 0xa3 Value 00
    Adress 0xa4 Value 00
    Adress 0xa5 Value 00
    Adress 0xa6 Value 00
    Adress 0xa7 Value 00
    Adress 0xa8 Value 00
    Adress 0xa9 Value 00
    Adress 0xaa Value 00
    Adress 0xab Value 00
    Adress 0xac Value 00
    Adress 0xad Value 00
    Adress 0xae Value 00
    Adress 0xaf Value 00
    Adress 0xb0 Value 00
    Adress 0xb1 Value 00
    Adress 0xb2 Value 00
    Adress 0xb3 Value 00
    Adress 0xb4 Value 00
    Adress 0xb5 Value 00
    Adress 0xb6 Value 00
    Adress 0xb7 Value 00
    Adress 0xb8 Value 00
    Adress 0xb9 Value 00
    Adress 0xba Value 00
    Adress 0xbb Value 00
    Adress 0xbc Value 00
    Adress 0xbd Value 00
    Adress 0xbe Value 00
    Adress 0xbf Value 00
    Adress 0xc0 Value 00
    Adress 0xc1 Value 00
    Adress 0xc2 Value 00
    Adress 0xc3 Value 00
    Adress 0xc4 Value 00
    Adress 0xc5 Value 00
    Adress 0xc6 Value 00
    Adress 0xc7 Value 00
    Adress 0xc8 Value 00
    Adress 0xc9 Value 00
    Adress 0xca Value 00
    Adress 0xcb Value 00
    Adress 0xcc Value 00
    Adress 0xcd Value 00
    Adress 0xce Value 00
    Adress 0xcf Value 00
    Adress 0xd0 Value 00
    Adress 0xd1 Value 00
    Adress 0xd2 Value 00
    Adress 0xd3 Value 00
    Adress 0xd4 Value 00
    Adress 0xd5 Value 00
    Adress 0xd6 Value 00
    Adress 0xd7 Value 00
    Adress 0xd8 Value 00
    Adress 0xd9 Value 00
    Adress 0xda Value 00
    Adress 0xdb Value 00
    Adress 0xdc Value 00
    Adress 0xdd Value 00
    Adress 0xde Value 00
    Adress 0xdf Value 00
    Adress 0xe0 Value 00
    Adress 0xe1 Value 00
    Adress 0xe2 Value 00
    Adress 0xe3 Value 00
    Adress 0xe4 Value 00
    Adress 0xe5 Value 01
    Adress 0xe6 Value 00
    Adress 0xe7 Value 00
    Adress 0xe8 Value 00
    Adress 0xe9 Value 00
    Adress 0xea Value 00
    Adress 0xeb Value 00
    Adress 0xec Value 00
    Adress 0xed Value 00
    Adress 0xee Value 00
    Adress 0xef Value 00
    Adress 0xf0 Value 00
    Adress 0xf1 Value 00
    Adress 0xf2 Value 00
    Adress 0xf3 Value 00
    Adress 0xf4 Value 40
    Adress 0xf5 Value 00
    Adress 0xf6 Value 00
    Adress 0xf7 Value 80
    Adress 0xf8 Value 00
    Adress 0xf9 Value 00
    Adress 0xfa Value 00
    Adress 0xfb Value 00
    Adress 0xfc Value 00
    Adress 0xfd Value 00
    Adress 0xfe Value 00
    Adress 0xff Value 00

    这是我收集的,忽略7英寸显示器的时刻,我想让10英寸首先工作.

    谢谢。

    马克

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

    您好、Marc、

    谢谢你。 下一步、您可以通过示波器的屏幕截图确认您的初始化序列遵循了正确的事件序列。

    请参阅此常见问题解答以了解我要查找的内容:

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/852871/faq-sn65dsi84-no-display-output-with-sn65dsi83-sn65dsi84-sn65dsi85

    谢谢。

    察赫

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

    大家好、Zach、

    好的、我会更仔细地研究 init 例程、然后返回到屏幕截图中。 是否可以将 MIPI 引脚保持未连接状态? LP11状态表示1.2V、但我不想在测试模式的时刻将其连接到 RT1170 MCU。 SN65DSI86在未连接 MIPI 部件的情况下也可工作。

    您能详细说明一下我们的 CSR 寄存器之间的差异吗?

    我通过运行 micropython 的 Raspberry Pi Pico 和 I2C-lvl-shift 进行初始化、我的代码看起来像这样。 我是否向数据表中没有说明的寄存器进行写入?  

    def initSN65DSI84(i2c,adr):
        print("Writing to adress " + hex(adr) + " ...")
        SN65DSI_enable_pin = machine.Pin(6, machine.Pin.OUT) # pulled up by resistor on pcb, set low to reset
        
        # initialization
        
        SN65DSI_enable_pin.off()					# reset SN65DSI
        time.sleep_ms(25)
        SN65DSI_enable_pin.on()						# enable SN65DSI
        i2c.writeto_mem(0x2c,0x09,bytes([0x00]))	# softreset
        time.sleep_ms(25)
        i2c.writeto_mem(0x2c,0x0D,bytes([0x00]))	# disable pll
        i2c.writeto_mem(0x2c,0x0A,bytes([0x02]))	# LVDS clk range for 54MHz
        i2c.writeto_mem(0x2c,0x0B,bytes([0x02]))	# refclk multiplied by two
        i2c.writeto_mem(0x2c,0x10,bytes([0x10]))	# two DSI lanes
        i2c.writeto_mem(0x2c,0x11,bytes([0x00]))	# no eq
        i2c.writeto_mem(0x2c,0x12,bytes([0x30]))	# dsi clk range between 240 and 245 MHz
        i2c.writeto_mem(0x2c,0x13,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x18,bytes([0x70]))	# lvds chan 1 enable, hs and vs neg polarity
        i2c.writeto_mem(0x2c,0x19,bytes([0x00]))	# lvds output voltage
        i2c.writeto_mem(0x2c,0x1A,bytes([0x03]))	# no reverse lvds, 200Ohm termination
        i2c.writeto_mem(0x2c,0x1B,bytes([0x00]))	# no common voltage adjust
        i2c.writeto_mem(0x2c,0x20,bytes([0x00]))	# active line length low
        i2c.writeto_mem(0x2c,0x21,bytes([0x04]))	# active line length high -> 0x0400 -> 1024
        i2c.writeto_mem(0x2c,0x22,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x23,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x24,bytes([0x58]))	# vertical display size low
        i2c.writeto_mem(0x2c,0x25,bytes([0x02]))	# vertical display size high -> 0x0258 -> 600
        i2c.writeto_mem(0x2c,0x26,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x27,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x28,bytes([0x20]))	# sync delay low
        i2c.writeto_mem(0x2c,0x29,bytes([0x00]))	# sync delay high -> 0x0020 -> 32
        i2c.writeto_mem(0x2c,0x2A,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x2B,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x2C,bytes([0x0a]))	# hsync pulse width low
        i2c.writeto_mem(0x2c,0x2D,bytes([0x00]))	# hsync pulse width high -> 0x000a -> 10
        i2c.writeto_mem(0x2c,0x2E,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x2F,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x30,bytes([0x0a]))	# vync pulse width low
        i2c.writeto_mem(0x2c,0x31,bytes([0x00]))	# vsync pulse width high -> 0x000a -> 10
        i2c.writeto_mem(0x2c,0x32,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x33,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x34,bytes([0xa0]))	# horizont back porch -> 160
        i2c.writeto_mem(0x2c,0x35,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x36,bytes([0x17]))	# vertical back porch -> 23
        i2c.writeto_mem(0x2c,0x37,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x38,bytes([0xa0]))	# horizontal front porch -> 160
        i2c.writeto_mem(0x2c,0x39,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x3A,bytes([0x0c]))	# vertical front porch -> 12
        i2c.writeto_mem(0x2c,0x3B,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x3C,bytes([0x10]))	# test pattern active
        i2c.writeto_mem(0x2c,0x3D,bytes([0x00]))	# ----- no register description
        i2c.writeto_mem(0x2c,0x3E,bytes([0x00]))	# ----- no register description
        time.sleep_ms(25)
        i2c.writeto_mem(0x2c,0x0D,bytes([0x01]))	# enable PLL
        time.sleep_ms(25)
        i2c.writeto_mem(0x2c,0x09,bytes([0x00]))	# softreset

    谢谢。

    马克

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

    Marc、

    您需要遵循整个初始化序列以确保器件正常运行并获得测试模式。 执行初始化序列后、您可以将寄存器0x3C 设置为0x10、并获取测试模式。

    初始化序列的一部分是:上电并稳定后、DSI CLK 通道必须处于 HS 状态、并且 DSI 数据通道必须驱动至 LP11状态。  

    至于 CSR 寄存器的差异、我从您提供的数据表中获取了 HFP 和 VFP 的典型值。 我将 VSYNC 提高到了数据表的中间范围。  

    谢谢。

    察赫

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

    大家好、Zach、

    因此、即使我只想使用测试模式、我也必须将 MIPI 信号连接到源吗? 对于 SN65DSI86-EVM、我只是让 MIPI 引脚保持未连接状态、在设置 CSR 后获得测试模式。 我将研究如何将引脚设置为正确的电压电平。  我将在初始化结束时将0x3C 设置为0x10、重写 INIT。

    我 在论坛上找到了 Ikechukwu Anyiam 的这个答案、它解释了它为什么与 SN65DSI86-EVM 一起使用。  

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/991094/sn65dsi84-q1-after-power-is-applied-and-stable-how-can-we-let-the-dsi-clk-lanes-to-be-in-hs-state-and-let-the-dsi-data-lanes-be-driven-to-lp11-state-there-is-anything-we-should-to-do

    Hi Chen,
    
    1. In test pattern mode the device does not use any input DSI data. It only uses the DSI CLK or optionally an external REFCLK. The clock is used to internally generate the pattern and output it to a display
    
    2. Step 2 and step 8 do not need to be followed in test pattern mode
    
    3. You can try this version of the tool instead: tidrive.ext.ti.com/.../DSI Tuner 2.1.zip 
    
    Regards,
    
    I.K.

    感谢您澄清了不同的 CSR 值。

    这是一个很好的例子。 目前我正在家里、我用一个速度较慢的100Mhz 示波器进行测量、明天回到办公室时、我将使用较快的示波器捕获 LVDS、因为我认为我无法看到数据、因为采样率太慢。 我没有捕获 MIPI、因为它是未连接的。 EN 引脚具有极高的电容、我想我会减小使能引脚处的电容、这就是我为什么到处都超过了延迟的原因。 数据表中指出、此处所述的延迟为最小值、超过该值也是可以的。 我尝试了它没有和软复位在开始后的 EN ,没有改变。 读取后0xE5的值为0x01、所以 PLL 似乎有问题(只要 PLL 锁定状态从锁定转换为解锁、就会设置该位)

    我的时钟原理图是否错误?

    谢谢。

    马克

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

    Marc、

    我将查看一下、并很快与您联系。

    谢谢。

    察赫

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

    Marc、  

    我在原理图中没有看到任何明显的问题。

    我想查看您的 DSI-数据和参考时钟的示波器截图。 您在基准时钟上的上升和下降时间是多少?

    谢谢。

    察赫

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

    大家好、Zach、

    我在前面提到过:没有 DSI-Data、也没有 DSI-Clock、我希望首先使测试模式在没有 MIPI-Data 的情况下运行。 对于仅与 MCU-Devboard 附带的显示屏、我们没有工作软件、该显示屏与我们要在此处工作的显示屏之间存在分辨率和计时方面的偏差。

    refclock 如下所示:

    存在相当多的过冲和下冲、但这可能是测量。 探针位于底部、我必须将一根短导线焊接到探针上。 振荡器非常接近 IC (约1cm)、有尖峰的电压约为2、6V、没有尖峰的电压约为1、775V。 我使用的是 HCMOS 振荡器: ECS-2520Q-18-270DPT 振荡器错误吗? 我是否需要具有纯正弦输出的不同解决方案? 我需要以特定方式终止时钟、还是只将石英振荡器的输出直接馈入 IC?

    谢谢。

    马克

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

    您好、Marc、

    您需要遵循整个初始化序列以确保器件正常运行并获得测试模式。 执行初始化序列后、您可以将寄存器0x3C 设置为0x10、并获取测试模式。

    此外、DSI84的 REFCLK 数据表规格如下所示:

     

    您捕获的上升和下降时间将超过 DSI84数据表中指定的1ns 上升和下降时间。

    谢谢。

    察赫

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

    大家好、Zach、

    您能解释一下为什么我不需要遵循 SN65DSI86的初始化吗? 我刚刚将 MIPI 接口保持未连接状态 、它在我配置 CSR 并相应地设置0x3C 寄存器后可以正常工作。

    我现在取出了 SN65DSI83 EVM、然后测量了该 EVM 的参考时钟引脚以及 SN65DSI86 EVM 的参考时钟引脚。 两者都具有大约2.4ns 的上升和下降时间。 我还不能用显示屏测试83EVM、但83芯片的数据表也规定了上升和下降时间为1ns、但 TI 销售的 EVM 是2、4ns、因此它应该起作用。

    该图片显示了通过 SN65DSI83Q1-EVM 上的 CDCEL913PW 的输出生成的 REFCLK。

    谢谢。

    马克

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

    您好、Marc、

    既然您拥有 DSI83 EVM、您是否尝试过按照针对测试图形生成案例在电路板上配置 DSI84的方式对其进行配置?

    是否仍将 E5读数设置为0x01? 只有 REF CLK 才会发生这种情况吗?

    谢谢。

    察赫

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

    大家好、Zach、

    我几天前刚获得 DSI83 EVM、 我需要通过目前正在制作的单独 PCB、将 LVDS 输出调整为适合我的显示屏。 然后我就可以对其进行测试。

    我现在只能测试测试模式、因为我们的 MCU 没有任何源代码可以让 MIPI 部件正常工作、 因此、我只能使用参考时钟而不是 MIPI 时钟对其进行测试、因为此时没有可用的 MIPI 数据和时钟。

    一旦获得 DSI83 EVM 的结果、我就会立即回复您。

    谢谢。

    马克

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

    Marc、

    没问题。 该 EVM 将为 DSI84设计提供基准。

    谢谢。

    察赫

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

    大家好、Zach、

    我正在查找 SN65DSI83Q1-EVM 的原理图和电路板文件、我有蓝色的 PCB 版本。 TI 页面上文档中名为"SN65DSI83、SN65DSI84和 SN65DSI85 EVM 用户手册和实施指南"的原理图对于此 PCB 版本不正确。

    我找到了这个看起来是正确的板级配置文件:

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/990796/sn65dsi83q1-evm-needing-to-design-a-daughter-board-around-2-of-the-connectors?tisearch=e2e-sitesearch&keymatch=sn65dsi83q1#

    您能否核实一下、以及您能否为我提供示意图?

    回答您的最后一个问题:E5读数仍有相同的错误。 我今天将继续测试它、并向您 概要介绍我的设置。

    谢谢。

    马克

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

    Marc、

    我正在研究这个问题、很快会回来与您联系。

    谢谢。

    察赫

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

    马克

    请参阅随附的 DSI85-Q1原理图。

    e2e.ti.com/.../int062A_2D00_001_5F00_SCH.pdf

    您知道  GM8284DD 是否具有内部100 Ω 负载电阻器、还是在其 LVDS 输入端需要外部100 Ω 负载电阻器? 我在它的数据表中找不到该信息。

    谢谢

    大卫

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

    Marc、

    此外、您 是否还可以尝试在定制电路板实现上将寄存器地址0x18从值70编程为50?

    因为这会将 VS 从负极设置更改为正极。

    谢谢。
    察赫

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

    David、您好!

    感谢您提供原理图。 它需要100欧姆的负载电阻器、而这些电阻器存在于显示屏本身的 PCB 上。

    谢谢、我让显示屏现在可以与测试模式配合使用、但 MIPI 器件现在无法工作。

    马克

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

    大家好、Zach、

    很抱歉、我花了很长时间才回答。 我取得了一些进展、现在测试模式可以正常工作。

    问题在于时钟分频器设置错误、因此、出于某种原因、PLL 没有锁定、而且显示屏 PCB 本身也存在一个需要启用的特殊端口问题。
    MIPI 器件仍处于未连接状态、因此我怀疑问题与 MIPI 输入缺失或 MIPI 状态错误无关、而是时钟问题。
    现在、我可以打开和关闭测试模式、显示屏可以正常工作。 我测试了83EVM 和84适配器现在均可与 CSR 配合使用。
    但我仍然无法使 MIPI 部件正常工作。 我有另一个名为 GM8775C 的 MIPI 转 LVDS 适配器、该适配器现在可以完美运行。
    RT1170 NXP 主板将帧缓冲区用完,GM8775C 接受数据。 该芯片具有支持显示屏 EDID 数据的外部 EEPROM、不需要在上电后通过 I2C 进行编程。
    因此、MIPI 信号良好、但83和84无法正常工作。 有时我会在0xE5寄存器中收到 CHA_SYNC_ERR 错误。 有什么建议吗?

    谢谢。
    马克

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

    马克

    您能否测量 MIPI 侧的线路时间、以验证它是否满足 LVDS 时序要求?

    请参阅此 e2e 指南、了解如何在 MIPI DSI 输入上测量线时间、网址为 https://e2e.ti.com/support/interface-group/interface/f/interface-forum/852871/faq-sn65dsi84-no-display-output-with-sn65dsi83-sn65dsi84-sn65dsi85。

    谢谢

    大卫

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

    David、您好!

    我可以这样做、但我会说计时良好、因为同一个显示屏具有来自我们的 RT1170 EVK 的相同数据  、可以正常使用 GM8775C、并能获得完美的画面。 显示屏上有一个带有 GM8775C 芯片的适配器、我们需要为它制作一个备用板、而那个板可以与显示屏一起工作、没有问题。 我们直接在代码中输入显示参数,并使用 DSI 调谐器计算出的参数从 rt1170中生成显示数据,因此我认为它应该起作用。 我将测量 MIPI、以查看是否有其他问题或83EVM 是否有问题。

    谢谢

    马克

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

    快速跟进:

    我读出0xE5寄存器并获得除 PLL 解锁之外的所有错误(我从主板上的27MHz 振荡器获得时钟并乘以2、我应该改用 mipi 时钟吗?) 0xE5寄存器的值为0xFC。

    谢谢

    马克

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

    您好!

    您是否遵循数据表中的初始化顺序?

    谢谢。
    察赫

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

    大家好、Zach、

    这款显示屏可与我构建的84适配器和83-EVM 配合使用。 问题不是初始化。 初始化其实并不重要:您可以打开源并流式传输视频、然后打开 EVM 或适配器并 设置寄存器、便可开始工作。 将 MIPI 置于"空闲"状态、执行初始化并不是真正必要的。

    我发现一个很严重的"问题"是、在数据表中一些寄存器被描述为"保留"和"请勿写入该寄存器"、但 DSI 调谐器生成的 CSR 将写入这些寄存器、当您在 DSI 调谐器中查看寄存器说明时、会看到这些寄存器 寄存器不是"保留"的。 为什么会这样呢? 解决这些不一致之处真的是太令人厌烦了。  0x10中的寄存器 DSI_CHANNEL_MODE 完全未进行描述、例如数据表中未描述、它不知道放置在那里的值。 是否有可能更新数据表? 此外、如果只有 Excel 工作表、则从 DSI 调谐器中删除 SN65DSI86条目。

    现在、我将使用三个 IC 测试不同的显示屏。

    谢谢。

    马克

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

    您好、Marc、

    感谢您告诉我您的建议。

    很高兴这个显示屏能与 EVM 和您的适配器配合使用。

    谢谢。

    察赫

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

    大家好、Zach、

    因此、我让所有的显示屏都能与 SN65DSI86 / 84、83 IC 配合使用。

    感谢您的帮助。

    以下为每个人尝试相同方法的一些提示:

    创建一个包含数据表中所有重要寄存器和 DSI 调谐器的 Excel 工作表、并验证您是否正确设置了它们。 一些寄存器在数据表中被描述为保留、但 DSI 调谐器将写入这些寄存器。

    首先从 testpattern 开始、完全忽略 MIPI-Part 只是保持 MIPI 未连接、初始化的 MIPI-Part 根本无关紧要。 您将需要一个外部时钟源、如25MHz 晶体振荡器、因此如果您计划使用 MIPI 提供的时钟、则可以添加一个用于调试的时钟源、然后将其删除、但如果您从 MIPI 时钟切换到 Crystall 和 Cryvice、则需要对乘法和除法进行不同的时钟设置 反之亦然。 在处理 MIPI 部件问题之前、您将能够验证 LVDS 或 DisplayPort 部件是否正常工作。

    如果您知道、您的 MIPI-Data 是好的、因为您使用不同的 IC 对其进行了测试、并且测试模式从 SN65DSIxx 开始工作、那么您的 MIPI 设置可能会有问题、例如时钟或通道。

    祝大家好运

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

    Marc、

    不用客气。 感谢您从本主题中学到的一些经验教训。

    此致!

    察赫