一、值的意义
下面是一组参考的timing设置:
/ {
fragment {
target-path = "/";
__overlay__ {
lcds {
xxxxxx: xxxxxx { // 这里的xx表示LCD节点名,必须和kernel中的lcd DTS节点名称保持一致,
// 否则kernel无法匹配到正确的LCD驱动
qcom,dsi-work-mode = <1>; /* burst mode */ // lcd 传输图像采用DSI模式,后面的数值表示支持和的模式
//qcom,dsi-work-mode = <2>; /* sync pulse mode */
//qcom,dsi-work-mode = <3>; /* sync event mode */
qcom,dsi-lane-number = <4>; // LCD在接收video数据传输时的data lane总条数
qcom,dsi-color-format = "rgb888"; // 配置bpp的位数,当前是24位
qcom,dpi-clk-div = <6>; // LCD分频系数
qcom,phy-bit-clock = <1188000>; /* kbps */ // high speed模式下数据传输时,clock lane的传输速率,即物理时钟
qcom,phy-escape-clock = <20000>;/* kHz */ // low power模式下数据传输的速率
qcom,power-gpio-delay = <20>;/* ms */
qcom,video-lp-cmd-enable = <1>; // 采用6分频模式下面两个必须要添加
qcom,hporch-lp-disable = <1>;
qcom,width-mm = <68>;
qcom,height-mm = <152>;
qcom,esd-check-enable = <0>;
qcom,esd-check-mode = <0>;
qcom,esd-check-period = <2000>;
qcom,esd-check-regs = <0xA>;
qcom,esd-return-code = <0x9c>;
qcom,reset-on-sequence = <1 5>, <0 5>, <1 20>;
qcom,reset-off-sequence = <0 5>;
qcom,use-dcs-write;
qcom,initial-command = [
];
qcom,sleep-in-command = [
];
qcom,sleep-out-command = [
];
display-timings {
native-mode = <&xxxxxx>;
xxxxxx: timing0 {
clock-frequency = <198000000>; // pixel clock,单位Hz
hactive = <1920>;
vactive = <2880>;
hback-porch = <80>;
hfront-porch = <120>;
vback-porch = <56>;
vfront-porch = <40>;
hsync-len = <80>;
vsync-len = <24>;
};
};
};
};
};
};
};
这里面主要有几个值需要注意:像素之中pixel clock,也就是timing中的clock-frequency,该值是通过下面h和v开头的参数计算出来的,hactive、vactive这些参数可以通过屏的参考手册找到。通常适配一款屏幕这些参数需要做相应的调整。
二、计算公式
2.1 像素时钟计算
pixel-clock = h * v * fps
按照上面给出的参数做如下计算:
h = hactive + hback-porch + hfront-porch + hsync-len = 1920 + 80 + 120 + 80 = 2200
v = vactive + vbach-porch + vfront-porch + vsync-len = 2880 + 56 + 40 + 24 = 3000
fps假设是30帧,则计算如下:
pixel-clock = 2200 * 3000 * 30 = 198 000 000(Hz)
2.2 物理时钟
通过像素时钟计算出前面的phy-bit-clock,这里计算出来的是每一lane的传输速率应该是多少
phy-bit-clock = 位时钟 / MIPI lane数位时钟 = pixel-clock * 每像素位数
前面的配置可以看到每像素的配置是RGB888,也就是24位,因此这里计算如下:
位时钟 = 198 000 000 * 24 = 4752 000 000;
phy-bit-clock = 4752 000 000 / 4 = 1188 000 000(Hz) = 1188 000(Kbps)文章来源:https://www.toymoban.com/news/detail-679442.html
三、多屏扩展
如果外部同时支持多个屏幕,如两个屏幕,此时h和v的那些参数不能直接按照屏的手册来填写,而需要考虑两个屏幕在输出的时候是如何进行拼接的, 假设是两个1920 x 720分辨率的屏幕,有如下两种拼接方式:
从SOC中给出图片数据的时候可以横向拼接也可以纵向拼接,如果横向拼接则所有h相关的参数都应该*2,如果是纵向拼接则所有v相关的参数都要*2。
例:
屏给的参考hback-porch是40,则横向拼接的时候就需要改成80,纵向拼接不需要修改该参数,vback-porch是28则纵向拼接需要改成56,横向拼接不需要修改该参数文章来源地址https://www.toymoban.com/news/detail-679442.html
到了这里,关于display timing值的计算与修改的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!