Part Number:DS90UB940-Q1
940设置的pattern配置如下:
{0x66, 0x00}, // 自定义颜色_红色 {0x67, 0x78},
{0x66, 0x01}, // 自定义颜色_绿色
{0x67, 0x12},
{0x66, 0x02}, // 自定义颜色_蓝色
{0x67, 0x22},
{0x66, 0x03}, // Pattern模式内部像素时钟分配器控制
{0x67, 0x04}, // 内部设置4分频:140*(1/4)
{0x66, 0x04}, // Total Horizontal Width
{0x67, 0x12}, // 530
{0x66, 0x05}, // Total Vertical and Horizontal Widths
{0x67, 0x02}, // 944 & 530
{0x66, 0x06}, // Total Vertical Width
{0x67, 0x3b}, // 944
{0x66, 0x07}, // Active Horizontal Width
{0x67, 0xe0}, // 480
{0x66, 0x08}, // Active Vertical and Horizontal Widths
{0x67, 0x61}, // 854 & 480
{0x66, 0x09}, // Active Vertical Width
{0x67, 0x35}, // 854
{0x66, 0x0a}, // Horizontal Sync Width
{0x67, 0x0a}, // 10
{0x66, 0x0b}, // Vertical Sync Width
{0x67, 0x0a}, // 10
{0x66, 0x0c}, // Horizontal Back Porch Width
{0x67, 0x14}, // 20
{0x66, 0x0d}, // Vertical Back Porch Width {0x67, 0x28}, // 40
{0x66, 0x0e}, // Set Sync Polarities ,可配置水平和垂直同步信号发生器
{0x67, 0x00}, // 水平和垂直同步极性设置为“正”
{0x6a, 0x22}, // 连续时钟模式 ,2 data lanes
{0x6b, 0x50}, // CSI_YUV422格式输出
{0x65, 0x04}, // 禁用自动滚动 // 0x05 是启用自动滚动
{0x64, 0xe5}, // 0xe1 Pattern模式选择自定义颜色,禁用色条,启用图形发生器;0xe5 Pattern模式选择自定义颜色,启用色条,启用图形发生器;0x55 Pattern模式选择蓝黄,启用色条,启用图形发生器
但是根据datasheet上看读69寄存器读到的是20;是不是pattern模式配置不对?请您帮忙看一下。
还有想知道关于pattern模式的时钟除了0x66的offest设置03寄存器设置分频时钟外,还有哪个地方能设置内部时钟的地方?谢谢
Kailyn Chen:
您好,首先,对于940来说,分频系数M=1是不需要配置的,只需要配置N就可以了。
我看您配置的N=4,这样计算下来140/4=35Mhz。
分辨率是854*480是吗?30还是60帧率? 如果是60帧率,算上消隐时间的话,计算下来至少需要约37Mhz的PCLK。
抛开您读取的BIST error问题,那现在是否能正常显示?
这里有一篇关于pattern test的应用手册,4.3部分给出了详细的配置示例,您可以参考下:
https://www.ti.com/lit/an/snla132g/snla132g.pdf
,
jie liu:
对,分辨率是854*480,帧率为60fps,您的意思是内部时钟要大于37MHz,那就得需要3分屏。关于pattern test的4.3部分,我觉得这个上面所写到的寄存器我都有设置,是在不清楚还需要设置哪里。
,
Kailyn Chen:
是的,算上消隐时间,计算需要37Mhz的PCLK。
而内部时钟和PCLK的关系式:fCLK=fosc*(M/N).
940内部晶振OSC=140Mhz,N可以配置为3或者2, 要保证PCLK能够支持854*480@60fps的分辨率才行。
,
jie liu:
下图是屏的属性
算上消隐pclk=944*530*60=30M,那我理解N应该也配置为4,但是我们有尝试过配置2,3, 4几个值但是从9211上的log上看都捕获不到940的输出
,
Kailyn Chen:
嗯,我计算的时候854*480@60fps加上了15%的blanking time,所以计算下来大概37Mhz。
我看了下您最后的配置,还落下一个寄存器需要配置,即0x63bit0=1:CML TX power down。
,
jie liu:
这个寄存器主要是来做什么的?
,
Kailyn Chen:
CMLOUT是一个monitor端,比如用它来monitor 来自于RIN0和RIN1的数据,或者说RIN0或者RIN1的数据从CMLOUT端输出。
如果做pattern test,需要将其power down。