我在使用带有 iMX RT 117F 的
ti SN65DSI83 DSI 到 LVDS 桥时遇到问题。
我的代码基于“lvgl 演示小部件”示例,但代码已被修改,以便初始化 SN65DSI83 并使用适合我的显示器的参数 - 50MHz LVDS 时钟和 300MHz DSI 时钟。
显示器“工作”,但在设计运行了很长时间后,显示器偶尔会变白,如果反复按下重置按钮,启动时有 5% 的几率发生这种情况。读取 TI 芯片中的错误寄存器 (0xE5) 表明 PLL 正在失去锁定(值为 0x01)。
我添加了一些代码来定期检查此错误寄存器的值,并在返回非零值时重新初始化 SN65DSI83。这会导致屏幕每分钟重新初始化几次,因此会频繁触发此错误位。
我读到 SN65DSI83 对抖动非常敏感,所以我尝试测量它。下面的测量来自 LVDS 输出。
来自 NXP 芯片生成的 DSI 时钟:
我为 24MHz 时钟尝试了三种不同的晶体和振荡器,但都没有任何改进。
我尝试在 TI 芯片的 REFCLK 引脚上使用 25MHz 振荡器来替代使用 DSI 时钟,抖动得到了很大改善,问题似乎已经消失。下面的屏幕截图是 LVDS 输出抖动。
我不明白为什么使用 DSI 时钟时抖动更高。如果我可以减少 DSI 时钟的抖动,我似乎可以放弃必须添加 REFCLK 振荡器,或者抖动可能是“红鲱鱼”,而其他原因在使用 DSI 时钟时引起了问题?最好了解导致此问题的原因,并可能避免必须返工大量
电路板以添加 REFCLK 振荡器。
主 24MHz 振荡器有一些抖动但没有 LVDS 输出那么多:
我没有做任何启用扩频的事情(我认为默认情况下它是禁用的)并且 PLL_528 用作 MIPI DSI 的时钟源。