嵌入式爱好者

查看: 3237|回复: 7

[Linux] 急问,修改设备树LCD参数的时钟没有生效

[复制链接]

1

主题

6

帖子

20

积分

i.MX6UL通行证

扫一扫,手机访问本帖
发表于 2022-6-14 17:07:42 | 显示全部楼层 |阅读模式
1、原默7寸LCD的时钟频率是33Mhz,但由于EMC辐射33Mhz有点超标,想把LCD时钟频率降低到28Mhz。
2、修改了设备树原默7寸认配置的两个参数,下面红色部分,但是实际运行时钟并没有改变,用示波器测出来还是33Mhz。
=======================================
timing0: 7_800x480 {
                        clock-frequency = <28000000>;
                        hactive = <800>;
                        vactive = <480>;
                        hfront-porch = <100>;
                        hback-porch = <26>;
                        hsync-len = <20>;
                        vback-porch = <20>;
                        vfront-porch = <21>;
                        vsync-len = <3>;

                        hsync-active = <0>;
                        vsync-active = <0>;
                        de-active = <1>;
                        pixelclk-active = <0>;
                        };
=======================================

3、进入系统后用指令fbset打印出来确实是28Mhz,说明设备树是修改成功的
=======================================
root@FD ~$ fbset

mode "800x480-56"
        # D: 28.000 MHz, H: 29.289 kHz, V: 55.895 Hz
        geometry 800 480 800 960 32
        timings 35714 26 110 20 21 20 3
        accel false
        rgba 8/16,8/8,8/0,0/0
endmode
=======================================

4、在uboot菜单直接选择是7寸分辨率1024*768的屏幕,对应时钟频率是50Mhz,则示波器实测频率是50Mhz没问题。


5、总结下来是屏幕的初始化已经在uboot阶段固定了,进入系统后没有再次初始化。请问这是设计成这样的?还是bug?我该如何改成我需要的时钟频率?



回复

使用道具 举报

0

主题

8

帖子

90

积分

i.MX6UL通行证FCU11xx通行证i.MX9352通行证

发表于 2022-6-15 14:05:17 | 显示全部楼层
本帖最后由 Espoir 于 2022-6-15 14:19 编辑

您好,这边按照您提供的信息修改了设备树,在uboot阶段LCD时钟为32.5M,但是进入内核阶段,LCD时钟降到27.1M。这边分析有两种可能:
1.您测量的时候内核还没有完全起来,内核还没有接管LCD时钟,建议您等几秒再测;
2.我们手册中单独更新设备树部分的命令是nandwrite -p /dev/mtd3 -s 0x140000 /root/ imx6ul-14x14-evk-gpmi-c-256m-7-1024x600.dtb,这里-s后面是设备树链接的内存地址,使用800*480的设备树是不需要加这个参数的:nandwrite -p /dev/mtd3  /root/ imx6ul-14x14-evk-gpmi-c-256m-7-800x480.dtb,替换设备树后在uboot阶段选择屏幕分辨率为800*480就可以读取这个设备树。
   TEK00000.PNG Image_20220615140153.png C:\Users\forlinx\Downloads\Image_20220615140153.png
点评回复 支持 1 反对 0

使用道具 举报

1

主题

6

帖子

20

积分

i.MX6UL通行证

 楼主| 发表于 2022-6-14 17:11:51 | 显示全部楼层
核心板:FETMX6UL-C
环境:Qt4.8+Linux3.14.38(20190905版本)
uboot:下载最新的(20210608版本)
点评回复 支持 反对

使用道具 举报

1

主题

6

帖子

20

积分

i.MX6UL通行证

 楼主| 发表于 2022-6-14 17:13:44 | 显示全部楼层
设备树:imx6ul-14x14-evk-gpmi-c-256m-7-800x480.dtb
点评回复 支持 反对

使用道具 举报

0

主题

41

帖子

221

积分

i.MX6Q通行证i.MX6UL通行证RK3588通行证FCU11xx通行证

发表于 2022-6-15 09:27:45 | 显示全部楼层
你使用的是1024x600的屏幕还是800x480的屏幕,是不是因为你在uboot阶段选的1024的,修改的设备树却是800x480的,所以导致修改不成功啊

点评

我操作没问题。屏幕是7寸的800*480。uboot选的也是7寸800*480,设备树也是烧的7寸800*480,显示都一切正常,就是改不了时钟频率。 我提1024*600只是为了强调 谢谢你的回答。  详情 回复 发表于 2022-6-15 11:00
点评回复 支持 反对

使用道具 举报

1

主题

6

帖子

20

积分

i.MX6UL通行证

 楼主| 发表于 2022-6-15 11:00:54 | 显示全部楼层
whl 发表于 2022-6-15 09:27
你使用的是1024x600的屏幕还是800x480的屏幕,是不是因为你在uboot阶段选的1024的,修改的设备树却是800x48 ...

我操作没问题。屏幕是7寸的800*480。uboot选的也是7寸800*480,设备树也是烧的7寸800*480,显示都一切正常,就是改不了时钟频率。

我提1024*600只是为了强调<只要在Uboot选择了不同的屏幕参数,那么进入内核系统后并不会再根据设备树再次初始化时钟频率>

谢谢你的回答。
点评回复 支持 反对

使用道具 举报

0

主题

8

帖子

90

积分

i.MX6UL通行证FCU11xx通行证i.MX9352通行证

发表于 2022-6-15 11:51:11 | 显示全部楼层
您好,LCD时钟的计算公式为:(800+20+100+26)*(480+20+21+3)*帧率,如果帧率为60的话,计算结果是297,422,400,建议设置为30M,或者把前肩后肩参数改小。我们这边没有单独修改过LCD时钟,需要一点时间测试一下。
点评回复 支持 反对

使用道具 举报

1

主题

6

帖子

20

积分

i.MX6UL通行证

 楼主| 发表于 2022-6-15 15:59:09 | 显示全部楼层
本帖最后由 飞凌-chongzi 于 2022-6-15 16:03 编辑

好的。谢谢小哥。我用现在这个环境怎么试都不行,2019年开始我们产品量产用到现在了。
我刚下载了整一套最新没有改动的环境试了一下居然可以了。我再找一找哪里问题吧,有可能是内核或者文件系统裁剪的时候改了。

点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-3-29 04:38

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表