咨询:lvds时钟引脚频率比实际设置的值低
问题描述如下:设备树lvds_panel节点的时间参数的频率我设置的是65000000,屏红绿蓝交替显示,应该只是上电了,信号没穿过去。按照手册调试了多次参数,没顶用。现在上示波器,测时钟引脚周期是60ns。65Mhz时钟,周期应该是15ns左右。此处明显不对,想咨询一下可能是什么原因引起的。此外改动频率设置时,该时钟引脚周期会响应增加或减小。示波器也没有问题,有其他板子能点亮该屏。设备树节点设置、lcd手册时间参如下:
native-mode = <&timing0>;
436 timing0: timing0 {
437 screen-type = <SCREEN_DUAL_LVDS>;
438 lvds-format = <LVDS_8BIT_1>;
439 color-mode = <COLOR_RGB>;
440 out-face = <OUT_P888>;
441
442 clock-frequency = <65000000>;
443
444 hactive = <960>;
445 vactive = <1080>;
446
447 hback-porch = <35>;
448 hfront-porch = <100>;
449
450 vback-porch = <15>;
451 vfront-porch = <20>;
452
453 hsync-len = <5>;
454 vsync-len = <10>;
455
456 hsync-active = <0>;
457 vsync-active = <0>;
458
459 de-active = <0>;
460 pixelclk-active = <1>;
461 };
请先确认屏是单LVDS还是双LVDS,如果是双LVDS,clock-frequency需要乘以2 jpchen 发表于 2020-1-16 16:56
请先确认屏是单LVDS还是双LVDS,如果是双LVDS,clock-frequency需要乘以2
感谢你的回复,可是我频率乘2后,周期在30ns左右,这种情况正常么?
display-timings {
435 native-mode = <&timing0>;
436 timing0: timing0 {
437 screen-type = <SCREEN_DUAL_LVDS>;
438 lvds-format = <LVDS_8BIT_1>;
439 color-mode = <COLOR_RGB>;
440 out-face = <OUT_P888>;
441
442 clock-frequency = <148000000>;
443
444 hactive = <1920>;
445 vactive = <1080>;
446
447 hback-porch = <35>;
448 hfront-porch = <100>;
449
450 vback-porch = <15>;
451 vfront-porch = <20>;
452
453 hsync-len = <5>;
454 vsync-len = <10>;
455
456 hsync-active = <0>;
457 vsync-active = <0>;
458
459 de-active = <0>;
460 pixelclk-active = <1>;
461 };
jpchen 发表于 2020-1-16 16:56
请先确认屏是单LVDS还是双LVDS,如果是双LVDS,clock-frequency需要乘以2
补充一下,我用的板子是aio-3288j。用的linux-ubuntu的sdk。dts文件用的是rk3288-firefly-ai0-lvds.dts。这个文件中一开始没有以下四句,是我添加头文件后才编译过的。
437 screen-type = <SCREEN_DUAL_LVDS>;
438 lvds-format = <LVDS_8BIT_1>;
439 color-mode = <COLOR_RGB>;
440 out-face = <OUT_P888>; jshunwang 发表于 2020-1-16 18:27
补充一下,我用的板子是aio-3288j。用的linux-ubuntu的sdk。dts文件用的是rk3288-firefly-ai0-lvds.dts。 ...
具体你可以看log打印,看输出的帧率是多少,一般lvds屏就配置这些参数,还有供电那些没问题,就可以正常显示 jpchen 发表于 2020-1-17 09:15
具体你可以看log打印,看输出的帧率是多少,一般lvds屏就配置这些参数,还有供电那些没问题,就可以正常 ...
感谢你的及时回复,
1)昨天晚上又查了一下屏的手册,pixelclk-active = <1>;改为pixelclk-active = <0>;,然后时钟的频率就对了。这时屏幕不是红绿蓝交替显示了,显示黑色。按照网上说的经验这应该是显示屏与板子信号通了。测试数据引脚,当我的一端鼠标时有波形,说明是有信号传输的,但是还是一直黑屏。
2)我怀疑是duallvsd的原因,水平时间参数都成了2,
hback-porch = <35>;
hfront-porch = <100>;
hsync-len = <5>;
改成了:
hback-porch = <70>;
hfront-porch = <200>;
hsync-len = <10>;
改完后的现象是:开机可以显示logo图片,然后显示横条纹,然后黑屏,移动鼠标,显示屏有闪烁。
继续调试中。。。 jshunwang 发表于 2020-1-17 10:13
感谢你的及时回复,
1)昨天晚上又查了一下屏的手册,pixelclk-active = ;改为pixelclk-active = ;,然 ...
调试出来了,应该还是和屏本身的参数有关。手册显示频率58MHz~78MHz。duallvds接口clock-frequency=<148000000>,这种条件下只显示开机logo,后面的就不显示了,移动鼠标串口中断提示“rockchip-vop ff940000.vop: Failed to attach iommu device”。频率改成clock-frequency=<130000000>,图像正常显示。插上HDMI接口,两个显示器能够同时显示。最后设置如下
436 timing0: timing0 {
437 //screen-type = <SCREEN_DUAL_LVDS>;
438 //lvds-format = <LVDS_8BIT_1>;
439 //color-mode = <COLOR_RGB>;
440 //out-face = <OUT_P888>;
441
442 //freq set 65M*2, used to hdmi and duallvds
443 clock-frequency = <130000000>;//duallvds,freq*2
444
445 hactive = <1920>;
446 vactive = <1080>;
447
448 hback-porch = <70>;
449 hfront-porch = <200>;
450
451 vback-porch = <30>;
452 vfront-porch = <40>;
453
454 hsync-len = <10>;
455 vsync-len = <20>;
456
457 hsync-active = <0>;
458 vsync-active = <0>;
459
460 de-active = <1>;
461 pixelclk-active = <0>;//if set 1,period double
462 };
屏是京东方的32寸双lvds反射屏(没有背光),型号GP320FHB-N10-6MP0/1
jshunwang 发表于 2020-1-17 14:05
调试出来了,应该还是和屏本身的参数有关。手册显示频率58MHz~78MHz。duallvds接口clock-frequency=,这种 ...
你不是把HDMI和lcd都配置为主显吧?? jpchen 发表于 2020-1-17 15:23
你不是把HDMI和lcd都配置为主显吧??
嗯,实际是不能同时显示。另一个不刷新了。 jshunwang 发表于 2020-1-17 14:05
调试出来了,应该还是和屏本身的参数有关。手册显示频率58MHz~78MHz。duallvds接口clock-frequency=,这种 ...
您好
請問為啥最後把那四行註釋掉了呢?
這樣的話是有別的參數設定能讓系統知道是dual LVDS屏而不是single LVDS屏嗎?
页:
[1]