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.
大家好!
我们正在开发基于 i.MX8M-MINI Android 11的定制器件、该器件使用 SN65DSI83 MIPI DSI 转 LVDS 桥接器。
一般而言、我们的设备工作正常、但是我们注意到一个很少见的问题、需要多次打开/关闭设备屏幕才能发生。 如您所见 附加的 f1.png 图像、当问题发生时、屏幕上半部分损坏、同时屏幕下半部分仍正常工作。
e2e.ti.com/.../TI_2D00_images.zip
通常可以通过锁定和解锁器件屏幕来解决此问题、以便重新初始化 LCD、但我们需要了解相应的根本原因。
我们已根据显示屏数据表在 Linux LCD 驱动器上尝试了许多显示时序、并在 DSI83驱动器上设置了额外延迟、但没有成功。
我们注意到、发生该问题时、如果我们从 DSI83 (0x3C = 0x10)发送测试模式、则干扰不可见、 但当返回到正常视频流(0x3C = 0x00)时、屏幕问题再次出现、这使我们认为问题出在 i.MX CPU 的 MIPI DSI 部分、 但是、我们想让您从 DSI83的角度了解您是否可以为我们提供任何调试步骤。
非常感谢您提出任何建议、
谢谢。此致、
埃斯特班五世
埃斯特班五世
在打开/关闭器件屏幕时、是否正在对 MIPI SOC 或 DSI83进行下电上电?
如果通过写入0xFF 清除寄存器0xE5、然后在发生此特定问题时再次读取寄存器、您是否看到寄存器0xE5中的任何位已设置好?
如果 在发生该问题时设置了 SOFT_RESET 位、这也能解决问题吗?
谢谢
大卫
David、您好!
感谢您的快速回复、关于您的问题、请在下面找到我的评论。
1.-关闭我们的器件屏幕时、Linux/Android 关闭 MIPI DSI 部分、从 DSI83角度、OS 将 EN 信号设为低电平、然后清除 RESET (0x9寄存器)、并禁用 PLL (0xD 寄存器)。
2.-我们使用的驱动程序版本稍有不同。
https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/bridge/ti-sn65dsi83.c#L487
目前我注释出了488和489行、这些行在初始化后清除了错误。
我重复了这个问题的两次、第一次读取0xE5=0x89、第二次读取0xE5=0x49、但是从下面可以看出、手动清除错误寄存器时、没有错误仍然存在。
#First time. ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5 0x89 ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0xe5 0xFF b ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5 0x00 #Second time. ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5 0x49 ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0xe5 0xFF b ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5 0x00
3.-如果我在运行时设置软重置,用下面的命令,屏幕会闪烁一点,然后返回正常操作,但当出现问题时,执行命令前后视觉上的不一致之处都存在。
ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0x9 0x00 ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0x9 0x1 b
期待您的评论、
谢谢。此致、
埃斯特班五世
尊敬的 Esteban:
您是否按照数据表中的表7-2中的初始化顺序进行了操作? 当 EN 引脚从低电平变为高电平时、您是否可以使用示波器确保 CLK 处于 HS 状态、数据处于 LP11状态?
谢谢 Allison
您好 Allison:
很抱歉这么晚才回复、我们正在审核您关于测量的建议、代码似乎遵循了正确的顺序、 但我们需要仔细检查示波器上的信号、因为我们的 i.MX8器件是带有外壳的平板电脑、测量请求的信号相当困难、但我们正在努力解决。
我们会向您发布我们的调查结果、
此致、
埃斯特班五世
尊敬的 Allison 和 David:
我们获得了所请求的测量值,请查看以下所附每张图片的说明。
1.- NOKStart.bmp: 显示了当 EN 引脚从低电平变为高电平时的 CLK、DATA 和 EN 信号、在这种情况下、发现了 LCD 损坏问题。
2.- nok01.bmp: 显示了视频传输期间的 CLK、数据和 EN 信号、在这种情况下、观察到 LCD 损坏问题。
3.- OKStart.bmp: 显示了当 EN 引脚从低电平变为高电平时的 CLK、DATA 和 EN 信号、在这种情况下、未发现 LCD 损坏问题。
4.- OK01.bmp: 显示了视频传输期间的 CLK、数据和 EN 信号、在这种情况下、未发现 LCD 损坏问题。
e2e.ti.com/.../InitSequence.zip
您能否告诉我们、所涉及的信号在初始化序列方面是否按预期行为?
期待您的评论、
谢谢。此致、
埃斯特班五世
尊敬的 Esteban:
在 EN 引脚从低电平切换到高电平之前、DSI 数据通道应处于 LP11状态、如下所示:
在示波器屏幕截图中、EN 引脚在数据处于 LP11状态之前开始斜升。 您还可以在 EN 引脚上添加一个外部电容器以延迟斜坡。
最好的,Allison
您好 Allison:
感谢您的意见和建议、需要指出的是、目前我们的硬件通过电容器控制 DSI83 EN 信号、如 图8 信息。
我们之前共享的测量是通过对 EN 信号进行硬件返工完成的、以便由 GPIO 控制、如所示 图9 。
但是、首先我们想了解 图8 是有效的设置以及在这种情况下的正确初始化顺序、因为在待机(即锁定和解锁我们的平板电脑显示屏)情况下、它不会延迟、因为它在上电后始终处于高电平。
期待您的评论、
谢谢。此致、
埃斯特班五世
尊敬的 Esteban:
两种配置都是有效设置、它们都需要遵循我之前提供的相同初始化序列。
在锁定/解锁平板电脑显示屏期间、Vcc 是否保持高电平? 如果是、DSI83仍需要复位、这可以通过按照相同的初始化序列来完成。 如果在 Vcc 为高电平时复位 DSI83、EN 引脚必须保持低电平至少10ms、然后才能置为高电平、以确保器件正确复位。 当器件处于复位状态时、DSI CLK 通道必须处于 HS 模式、并且必须将 DSI 数据通道驱动至 LP11、然后 EN 引脚才会置位为高电平。
最好的,Allison
您好 Allison:
感谢您的答复。 关于您的问题、请在下面查找我的评论。
是的、我们测量了 VCC、它在给器件上电后始终处于高电平。
2.-我们正在处理相应的初始化序列、目前我们正在通过 GPIO 控制 EN 信号、请找到下图所示的相应初始化序列。
我在前面展示的测量中看到、DSI 时钟和 DSI 数据信号处于 LP11状态2.28ms、但之后它们进入 HS、这在 EN 信号从低电平变为高电平之前发生、我的理解是否正确?
期待您的评论、
谢谢。此致、
埃斯特班五世
尊敬的 Esteban:
感谢您的评论。 请在下方查看我的回答。
1.感谢您的观看。 再次、请确保在平板电脑锁定/解锁时重置 DSI83。
时钟和数据通道是单端测量还是差动测量? 如果是差分电压、则 HS 模式峰峰值电压最小值为140mV、标称值为200mV、最大值为270mV。 如果它们是单端的、则 HS 模式峰峰值电压为最小值280mV、标称值400mV、最大值540mV。 LP11模式在1.2V 时保持恒定的高电平。 您能否确认这是否是您所读的内容? DSI CLK 在上电后必须处于 HS 模式、数据通道必须保持 LP11模式、同时 EN 引脚从低电平斜升至高电平。
最好的,Allison
您好 Allison:
感谢您的答复、我们会测量请求的信号、请查看此帖子随附的结果。
e2e.ti.com/.../Approach-1-_2800_12.07.2023_2900_.pdfe2e.ti.com/.../Approach-3-_2800_10.07.2023_2900_.pdf
根据我们的了解、在 DSI83 EN 引脚生效之前时钟处于 HS 状态、我们使用的以下驱动器版本略有不同、实际上是 方法#1 和 方法#3 PDF 文件上的名称是指我们尝试在正确的时间将 EN 信号置位的两种不同源代码修改。
https://elixir.bootlin.com/linux/v5.15/source/drivers/gpu/drm/bridge/ti-sn65dsi83.c
1.-您是否使用过前面显示的内核驱动程序?
2.-您是否针对此驱动器实施了任何权变措施来实现预期的上电序列?
3.-上电顺序是否会影响显示的图像、从而导致偶发问题? (需要注意的是、如果我们从 DSI83发送测试图形、干扰不可见、但当 IC 恢复正常运行时、问题再次出现)。
期待您的评论、
谢谢。此致、
Esteban V:
尊敬的 Esteban:
我们使用 I2C 来 初始化 DSI83、因此我们没有 特定的 DSI 驱动程序。 是否有办法可以尝试使用 I2C 控制器初始化器件? 如果未遵循初始化序列、我们无法保证器件正常工作。
话虽如此、我们在此有一个旧的参考代码: https://e2e.ti.com/support/interface/f/138/p/549283/2006135#2006135。它可能会实现较旧版本的初始化序列。 您仍需要遵循数据表中初始化序列的最新版本。
最好的,Allison
您好 Allison:
感谢您的意见和参考代码、在测试我们最新的软件修改时、上电序列由如下所示的测量结果决定。
正如我所看到的、当 DSI CLK 处于 HS 模式且 DSI 数据通道处于 LP-11模式时、EN 信号设置为高电平、我认为这涵盖了预期的上电序列、电压似乎在预期范围内。
不过、仍然会出现干扰(即屏幕上显示的图像有一半偶尔损坏)、您是否对我们从 SN65DSI83的角度进行测试有任何其他建议?
期待您的评论、
谢谢。此致、
埃斯特班五世
尊敬的 Esteban:
使用差动时钟测量时、HS 模式的峰峰值电压要求 最小值为140mV、标称值为200mV、最大值为270mV。 您是否可以验证示波器上的时钟读数是差分读数? 所示的峰峰值电压似乎为单端电压。 此外、时钟必须在 EN 引脚开始斜升至高电平之前至少处于 HS 模式10ms。
最好的,Allison