Firefly开源社区

咨询:lvds时钟引脚频率比实际设置的值低

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-16 16:41:00     
问题描述如下:
设备树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         }; 6c23b8392736627648bc1ede6c93705.png

回复

使用道具 举报

3050

积分

17

威望

18

贡献

高级创客

Rank: 6Rank: 6

积分
3050
QQ
发表于 2020-1-16 16:56:20     
请先确认屏是单LVDS还是双LVDS,如果是双LVDS,clock-frequency需要乘以2
回复

使用道具 举报

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-16 18:23:53     
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         };
回复

使用道具 举报

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-16 18:27:51     
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>;
回复

使用道具 举报

3050

积分

17

威望

18

贡献

高级创客

Rank: 6Rank: 6

积分
3050
QQ
发表于 2020-1-17 09:15:12     
jshunwang 发表于 2020-1-16 18:27
补充一下,我用的板子是aio-3288j。用的linux-ubuntu的sdk。dts文件用的是rk3288-firefly-ai0-lvds.dts。 ...

具体你可以看log打印,看输出的帧率是多少,一般lvds屏就配置这些参数,还有供电那些没问题,就可以正常显示
回复

使用道具 举报

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-17 10:13:10     
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图片,然后显示横条纹,然后黑屏,移动鼠标,显示屏有闪烁。

继续调试中。。。
回复

使用道具 举报

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-17 14:05:59     
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
回复

使用道具 举报

3050

积分

17

威望

18

贡献

高级创客

Rank: 6Rank: 6

积分
3050
QQ
发表于 2020-1-17 15:23:21     
jshunwang 发表于 2020-1-17 14:05
调试出来了,应该还是和屏本身的参数有关。手册显示频率58MHz~78MHz。duallvds接口clock-frequency=,这种 ...

你不是把HDMI和lcd都配置为主显吧??
回复

使用道具 举报

82

积分

0

威望

0

贡献

技术小白

积分
82
发表于 2020-1-17 17:34:24     
jpchen 发表于 2020-1-17 15:23
你不是把HDMI和lcd都配置为主显吧??

嗯,实际是不能同时显示。另一个不刷新了。
回复

使用道具 举报

49

积分

0

威望

0

贡献

技术小白

积分
49
发表于 2021-6-3 18:25:57     
jshunwang 发表于 2020-1-17 14:05
调试出来了,应该还是和屏本身的参数有关。手册显示频率58MHz~78MHz。duallvds接口clock-frequency=,这种 ...

您好
請問為啥最後把那四行註釋掉了呢?
這樣的話是有別的參數設定能讓系統知道是dual LVDS屏而不是single LVDS屏嗎?
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表