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.
串行器使用941,解串器948。在941上配置test pattern color bar,使用内部timing、内部时钟:
i2cset -f -y 2 0x0c 0x65 0x04 b // 使用Pattern Generator 内部timing
i2cset -f -y 2 0x0c 0x56 0x02 b // 使用Internal Reference Clock
此时948输出正常,LCD能正常显示color bar画面。
1、在上面的基础上,将0x56寄存器改为0x00,即使用外部DSI输入给941的时钟,color bar也能正常显示。
2、在1的基础上,将0x65寄存器改为0x00,即使用外部DSI的timing,color bar不能显示!!!
看起来问题出在外部DSI的timing上面,但是我们在SOC的MIPI DSI配置的timing参数和在941上PG配置的是一致的。
也就是说,941在PG模式产生的timing屏可以正常工作,而从DSI输入中解析出来的timing无法驱动屏正常工作。请协助分析,提供排查方向。
Thanks!
您好,使用外部DSI timing,除了您提到的0x56和0x65这两个寄存器,还要配置0x4F,bit7= 1. Continuous DSI clock mode(不论使用DSI clock还是PCLK都需要将其配置为1)
另外我看您将0x56寄存器改为0x00,说明使用的是PCLK,另外0x65 bit3配置为1试试,寄存器里描述如果使用外部timing,这bit不会受影响,但是我建议您将0x65 bit3配置为1试试,看屏幕是否能显示?
1、将0x56寄存器改为0x00,应该是DSI Clock吧?
2、0x4F,bit7已经设为1,连续时钟模式。
3、0x65 bit3配置为1还是不行。
从现象看就是使用外部DSI时钟,连续模式下,使用外部timing还是不能显示。
有没有方法能确定941是否从DSI中解析出了timing呢?
您好,参考这篇DS90UB941AS-Q1 DSI Bring up Guide应用手册4.6部分的介绍。
如果 DSI 源配置为事件模式或突发模式,这时候HSYNC和VSYNC则不会透传,也就是DSI_SYNC_PULSES = 0,这种模式下没有利用水平或垂直同步端数据包将 DPI 时序传送到接收器,DS90UB941AS-Q1需要通过器件寄存器配置视频的水平和垂直同步宽度,也就是这几个寄存器重新配置hysnc和Vsync的宽度 DSI_HSW_CFG_HI/DSI_HSW_CFG_LO and DSI_VSW_CFG_HI/DSI_VSW_CFG_LO这几个 寄存器。
https://www.ti.com/lit/an/snla356/snla356.pdf
1、“如果 DSI 源配置为事件模式或突发模式,这时候HSYNC和VSYNC则不会透传,也就是DSI_SYNC_PULSES = 0”
—— 还是没太理解,DSI_SYNC_PULSES = 0 是不重新生成原始时序,那么它给到解串器的信号中的时序是哪里的呢?完全就是DSI的?那岂不是相当于透传?
2、DSI_SYNC_PULSES = 0 是不重新生成原始时序,既然不重新生成,为什么还要配置DSI_HSW_CFG_HI/DSI_HSW_CFG_LO and DSI_VSW_CFG_HI/DSI_VSW_CFG_LO呢?
Thanks!
主机端DSI输出的video mode配置为sync_pulse ro sync_event or burst是根据941来的吗?941默认是什么模式?有无寄存器可以切换video mode?