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:如何通过寄存器设置 LVDS 的输出波形

Guru**** 2537330 points
Other Parts Discussed in Thread: SN65DSI84

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1069152/sn65dsi84-how-to-set-the-output-waveform-of-lvds-through-registers

部件号:SN65DSI84
“线程: 测试”中讨论的其它部件

主席先生,你好,

我们的客户对 SN65DSI84的使用有疑问,即如何通过寄存器设置 LVDS 的输出波形。 他们测试了屏幕亮起时 LCM 上的点,通道 A 的测量输出波形如下:

从波形中我们可以了解到测试数据的输出波形是三角形的。 因此,我们的客户希望了解是否可以通过修改 SN65DSI84的相关寄存器参数来优化输出波形。 你能帮我们就这个问题提出一些建议吗?

谢谢,

此致

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

    您好,

    您无法更改输出波形,只能配置 DSI84 LVDS 输出共模和摆动电压。

    谢谢

    大卫  

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

    大卫,你好。

    感谢您的回答,但 我们还有两个问题,如下所示:

    1) 需要设置哪些寄存器才能修改 DSI84 LVDS 以退出公共模式?

    2) 需要设置哪些寄存器来修改摆动电压?

    此致,

    卢米纳

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

    卢米纳

    共模和回转电压均通过寄存器0x19设置,您可以通过寄存器0x1B 进一步调整共模电压。

    谢谢

    大卫

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

    大卫,你好。

    非常感谢您的回复。 但我们的客户仍 有一些问题,如下所示:

    0x1B 寄存器是否 可以写入? 如果是,你能否就此提出一些建议? 我们尝试设置 0x1b 寄存器的值,但失败。 绕道如下所示。

    要修改 void sn65dsi84_on(void)函数,该代码如下所示:

    if (cmds && cmd_cnt > 0) {
    int i, ret;
    pr_err("====cmds && cmd_cnt > 0====\n");
    for (i = 0; i < cmd_cnt; ++i) {
        struct sn65dsi_reg_hdr cmd = cmds[i];
        if(cmd.addr == 0x19)
            ret = sn65dsi84_reg_write(client, 0x19, 0x4f);
        else if(cmd.addr == 0x1b){
            ret = sn65dsi84_reg_write(client, 0x1b, 0x40);
            if (ret <= 0)
            pr_err("====%s: fail to write addr: 0x1b value: 0x40\n", __func__);
        else
            pr_err("====%s: success to write addr: 0x1b value: 0x40\n", __func__);
            }
    else
        ret = sn65dsi84_reg_write(client, cmd.addr, cmd.value);
    pr_err("====cmd.addr:0x%x cmd.value:0x%x====\n",cmd.addr,cmd.value);
    

    从打印的日志信息中,显示0x1b 寄存器的值已成功修改。

    01-16 19:41:38.186     0     0 E ====sn65dsi84_on: success to write addr: 0x1b value: 0x40

    但是,当我们使用 i2c dump 命令验证结果并 注意到0x19寄存器值已更改,但0x1b 寄存器值仍为0x00,这表明0x1b 寄存器写入失败。

    谢谢,

    此致

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

    您好,

    它们能否测量实际输出共模电压以查看写入寄存器0x1B 是否生效?  

    当0x19.6 = 1和0x1B.5:4 = 11时,共模电压将为~1V,当0x19.6 = 0和0x1B.5:4 = 11时,共模电压将为~1.3V。

    谢谢

    大卫