4.1 LCD测试

本例程演示对Linux的FrameBuffer设备操作,实现液晶输出显示RGB颜色和颜色合成测试。例程基于Linux FrameBuffer API接口开发。测试前需要把LCD连接至J8接口上。米尔科技提供两种LCD模块,分别是7寸的MY-TFT070CV2和4.3寸的MY-TFT043RV2。提供的prebuilt镜像是默认为4.3寸液晶的。

执行程序后,LCD液晶屏会出现相应颜色,以下是终端输出信息:

./framebuffer_test
The framebuffer device was opened successfully.
vinfo.xres=480
vinfo.yres=272
vinfo.bits_per_bits=16
vinfo.xoffset=0
vinfo.yoffset=0
red.offset=11
green.offset=5
blue.offset=0
transp.offset=0
finfo.line_length=960
finfo.type = PACKED_PIXELS
The framebuffer device was mapped to memory successfully.
color: red   rgb_val: 0000F800
color: green   rgb_val: 000007E0
color: blue   rgb_val: 0000001F
color: r & g   rgb_val: 0000FFE0
color: g & b   rgb_val: 000007FF
color: r & b   rgb_val: 0000F81F
color: white   rgb_val: 0000FFFF
color: black   rgb_val: 00000000

支持MY-TFT070RV2的配置方法

MYS-6ULX开发板中提供的Linux代码已经支持该模块的显示和触摸功能。MY-TFT070RV2的触摸功能是通过ADC采样方式,dts代码中已配置好,只需要启用相应功能即要可。

  • MYS-6ULX-IND 第一步,编辑"arch/arm/boot/dts/mys-imx6ul-14x14-evk.dts"文件,修改tsc的status属性为okay。

    &tsc {
       pinctrl-names = "default";
       pinctrl-0 = <&pinctrl_tsc>;
       xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
       measure-delay-time = <0xfffff>;
       pre-charge-time = <0xffff>;
       status = "okay";
    };
    

    第二步,将默认的4.3寸屏莫的配置注释,并打开7.0寸的配置。找到lcfif节点下的display-timings节点,修改如下:

          display-timings {
              native-mode = <&timing0>;
    /*
               timing0: timing0 {
               clock-frequency = <9200000>
               hsync-len = <41>;
               vback-porch = <2>;
               vfront-porch = <4>;
               vsync-len = <10>;
    
               hsync-active = <0>;
               vsync-active = <0>;
               de-active = <1>;
               pixelclk-active = <0>;
               };
    */
               timing0: timing0 {
               clock-frequency = <33000000>;
               hactive = <800>;
               vactive = <480>;
               hfront-porch = <210>;
               hback-porch = <46>;
               hsync-len = <1>;
               vback-porch = <22>;
               vfront-porch = <23>;
               vsync-len = <20>;
    
               hsync-active = <0>;
               vsync-active = <0>;
               de-active = <1>;
               pixelclk-active = <1>;
               };
    
          };
    
  • MYS-6ULX-IoT MYS-6ULX-IoT的修改方法和MYS-6ULX-IND的相同,编辑的文件为"arch/arm/boot/dts/mys-imx6ull-14x14-evk.dts"。

支持MY-TFT070CV2的配置方法

MY-TFT070CV2模块的触摸使用的是I2C方式通讯,丛设备已添加到i2c2控制器上。使用前禁用tsc控制器,再启用7寸屏的配置参数即可。

  • MYS-6ULX-IND 第一步,编辑"arch/arm/boot/dts/mys-imx6ul-14x14-evk.dts"文件,修改tsc的status属性为disabled。

    &tsc {
       pinctrl-names = "default";
       pinctrl-0 = <&pinctrl_tsc>;
       xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
       measure-delay-time = <0xfffff>;
       pre-charge-time = <0xffff>;
       status = "disabled";
    };
    

    第二步,将默认的4.3寸屏莫的配置注释,并打开7.0寸的配置。找到lcfif节点下的display-timings节点,修改如下:

          display-timings {
              native-mode = <&timing0>;
    /*
               timing0: timing0 {
               clock-frequency = <9200000>
               hsync-len = <41>;
               vback-porch = <2>;
               vfront-porch = <4>;
               vsync-len = <10>;
    
               hsync-active = <0>;
               vsync-active = <0>;
               de-active = <1>;
               pixelclk-active = <0>;
               };
    */
               timing0: timing0 {
               clock-frequency = <33000000>;
               hactive = <800>;
               vactive = <480>;
               hfront-porch = <210>;
               hback-porch = <46>;
               hsync-len = <1>;
               vback-porch = <22>;
               vfront-porch = <23>;
               vsync-len = <20>;
    
               hsync-active = <0>;
               vsync-active = <0>;
               de-active = <1>;
               pixelclk-active = <1>;
               };
    
          };
    
  • MYS-6ULX-IoT MYS-6ULX-IoT的修改方法和MYS-6ULX-IND的相同,编辑的文件为"arch/arm/boot/dts/mys-imx6ull-14x14-evk.dts"。