dalu22 发表于 2022-6-14 17:07:42

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

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?我该如何改成我需要的时钟频率?


Espoir 发表于 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就可以读取这个设备树。
‪C:\Users\forlinx\Downloads\TEK00000.PNGC:\Users\forlinx\Downloads\Image_20220615140153.png

dalu22 发表于 2022-6-14 17:11:51

核心板:FETMX6UL-C
环境:Qt4.8+Linux3.14.38(20190905版本)
uboot:下载最新的(20210608版本)

dalu22 发表于 2022-6-14 17:13:44

设备树:imx6ul-14x14-evk-gpmi-c-256m-7-800x480.dtb

whl 发表于 2022-6-15 09:27:45

你使用的是1024x600的屏幕还是800x480的屏幕,是不是因为你在uboot阶段选的1024的,修改的设备树却是800x480的,所以导致修改不成功啊

dalu22 发表于 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选择了不同的屏幕参数,那么进入内核系统后并不会再根据设备树再次初始化时钟频率>

谢谢你的回答。

Espoir 发表于 2022-6-15 11:51:11

您好,LCD时钟的计算公式为:(800+20+100+26)*(480+20+21+3)*帧率,如果帧率为60的话,计算结果是297,422,400,建议设置为30M,或者把前肩后肩参数改小。我们这边没有单独修改过LCD时钟,需要一点时间测试一下。

dalu22 发表于 2022-6-15 15:59:09

本帖最后由 飞凌-chongzi 于 2022-6-15 16:03 编辑

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

页: [1]
查看完整版本: 急问,修改设备树LCD参数的时钟没有生效