软硬件介绍
软件
基于Tina5.0 SDK。
板卡
韦东山的T113工业板:
屏幕
韦东山的7寸RGB电容触摸屏:
显示调试
修改内核设备树
打开内核设备树<SDK>/device/config/chips/t113/configs/evb1_auto/linux-5.4/board.dts
,找到lcd0节点:
/* board.dts */
...
...
&lcd0 {
lcd_used = <1>;
lcd_driver_name = "default_lcd";
lcd_backlight = <50>;
lcd_if = <0>;
lcd_x = <1024>;
lcd_y = <600>;
lcd_width = <150>;
lcd_height = <94>;
lcd_dclk_freq = <50>;
lcd_pwm_used = <1>;
lcd_pwm_ch = <7>;
lcd_pwm_freq = <50000>;
lcd_pwm_pol = <1>;
lcd_pwm_max_limit = <255>;
lcd_hbp = <160>;
lcd_ht = <1344>;
lcd_hspw = <20>;
lcd_vbp = <23>;
lcd_vt = <635>;
lcd_vspw = <3>;
lcd_lvds_if = <0>;
lcd_lvds_colordepth = <0>;
lcd_lvds_mode = <0>;
lcd_frm = <1>;
lcd_hv_clk_phase = <0>;
lcd_hv_sync_polarity= <0>;
lcd_gamma_en = <0>;
lcd_bright_curve_en = <0>;
lcd_cmap_en = <0>;
deu_mode = <0>;
lcdgamma4iep = <22>;
smart_color = <90>;
pinctrl-0 = <&rgb24_pins_a>;
pinctrl-1 = <&rgb24_pins_b>;
};
...
...
只需关注以下参数:
lcd_if = <3>; // 0:LCD 3:LVDS
lcd_x = <1024>; // x方向分辨率
lcd_y = <600>; // y方向分辨率
lcd_dclk_freq = <50>; // lcd_ht * lcd_vt * fps(60),单位MHz
lcd_hbp = <160>; // 对应屏厂HBP
lcd_ht = <1344>; // 对应屏厂Width + HSW + HBP + HFP
lcd_hspw = <20>; // 对应屏厂HSW
lcd_vbp = <23>; // 对应屏厂VBP
lcd_vt = <635>; // 对应屏厂Height + VSW + VBP + VFP
lcd_vspw = <3>; // 对应屏厂VSW
lcd_frm = <1>; // 1:rgb666
pinctrl-0 = <&rgb24_pins_a>; //
pinctrl-1 = <&rgb24_pins_b>; //
修改U-Boot设备树
打开内核设备树<SDK>/device/config/chips/t113/configs/evb1_auto/uboot-board.dts
,找到lcd0节点,把刚刚修改过的内核设备树中的lcd0节点复制到U-Boot设备树。
注意:一定要同步修改U-Boot设备树,若只修改内核中的设备树,是点不亮屏幕的。
显示测试
花屏测试:
cat /dev/urandom > /dev/fb0
colorbar测试:
cat /dev/zero > /dev/fb0
echo 8 > /sys/class/disp/disp/attr/colorbar
至此,屏幕已成功点亮。
添加启动logo
正常情况下,当屏幕可以正常驱动后,开机上电,logo就会显示在屏幕中间。在Tina5.0中,logo文件存放在<SDK>/device/config/chips/t113/boot-resource/boot-resource/bootlogo.bmp
,替换bootlogo.bmp为自己的logo后,重新pack打包即可。
关于bootlogo.bmp图片的格式,需要注意以下几点:
1、bootlogo.bmp的名字不能随便起,包括后缀;
2、图片的分辨率不能大于屏幕的分辨率,否则不会显示;
3、若是32位色的图片(即ARGB格式),请注意图片的透明度不能为0,否则不会显示;
若logo图片太大导致打包时出现错误,修改分区表<SDK>/device/config/chips/t113/configs/evb1_auto/buildroot/sys_partition.fex
中的boot-resource分区大小即可:
其它问题
若出现颜色显示错误,请留意数据脚的顺序,LD23-LD0中,高8位为R通道,低8位为B通道,中间的8位为G通道:
触摸调试
修改内核设备树
该屏幕的驱动IC为GT911,通过原理图可以看到是接在TWI2(PE12、PE13),INT脚为PE1,RST脚为PE0:
打开内核设备树<SDK>/device/config/chips/t113/configs/evb1_auto/linux-5.4/board.dts
,将ctp节点挂在TWI2节点下,并启用TWI2和ctp。注意要按实际情况修改INT脚和RST脚:
触摸测试
查看输入节点:
cat /proc/bus/input/devices
查看原始触摸数据:
hexdump /dev/input/event5
查看中断:
cat /proc/interrupts