Linux-笔记 全志T113移植正点4.3寸RGB屏幕笔记

目录

前言

线序整理

软件

显示调试

触摸调试

背光调试


前言

        由于手头有一块4.3寸的RGB屏幕(触摸IC为GT1151),正好开发板上也有40Pin的RGB接口,就想着给移植一下,前期准备工作主要是整理好线序,然后用转接板与杜邦线连接验证好后期再画转接板也是可以的。SDK使用的tina5.0。

线序整理

        由于开发平台只支持RGB666(低位屏蔽),而RGB屏幕支持RGB888,所以特别注意在接R\G\B线序的时候,要从RGB屏幕的R2\B2\B2开始接起,也就说,屏幕的R2要接开发平台的R0,以此类推最后是屏幕的R7接开放平台的R5。其他接口对着接就行了,同时还要注意线序中,        LD23-LD0,高位为R通道,低位为G通道,接反可能导致颜色显示有问题。

        这里直接给出整理好的线序以及说明,也可以去看官方的说明手册。

        RGB屏幕:

        

序号定义描述
15V
25V
3R0NC
4R1NC
5R2
6R3
7R4
8R5
9R6
10R7
11GND
12G0NC
13G1NC
14G2
15G3
16G4
17G5
18G6
19G7
20GND
21B0NC
22B1NC
23B2
24B3
25B4
26B5
27B6
28B7
29GND
30CLKLCD时钟
31HSYNCHSYNC
32VSYNCVSYNC
33DE控制信号DE
34BL背光
35CS电容触摸屏复位信号
36SDA电容触摸屏 IIC 通讯 SDA 信号
37NCNC
38SCL电容触摸屏 IIC 通讯 SCL 信号
39PEN电容触摸屏中断信号
40RESETNC

开发平台:

序号定义描述
15V
25V
3NC
4NC
5B0
6B1
7B2
8B3
9B4
10B5
11GND
12NC
13NC
14G0
15G1
16G2
17G3
18G4
19G5
20GND
21NC
22NC
23R0
24R1
25R2
26R3
27R4
28R5
29GND
30BL-PWD背光
31CTP-SDASDA
32CTP-SCKSCK
33DE控制信号DE
34LCD0-VSYNCVSYNC
35LCD0-HSYNCHSYNC
36LCD0-CLKLCD时钟
37NCNC
38NCNC
39CTP-INT电容触摸中断
40CTP-RST电容触摸复位

软件

显示调试

1、修改内核设备树:<SDK>/kernel/linux-5.4/arch/arm/boot/dts/board.dts,修改lcd0节点各项参数,这里需要去查询所要移植屏幕的参数,但是只需要修改lcd0节点的以下部分即可:

/*part 3*/lcd_dclk_freq       = <31>;     // lcd_ht * lcd_vt * fps(60),单位MHzlcd_ht              = <976>;   // 对应屏厂Width + HSW + HBP + HFPlcd_hbp             = <88>;     //对应屏厂HBPlcd_hspw            = <48>;      // 对应屏厂HSWlcd_vbp             = <32>;     // 对应屏厂VBPlcd_vt              = <528>;    // 对应屏厂Height + VSW + VBP + VFPlcd_vspw            = <3>;      // 对应屏厂VSW

通过屏幕官方手册等手册最终修改版如下:

&lcd0 {lcd_used            = <1>;lcd_driver_name     = "default_lcd";lcd_backlight       = <50>;lcd_if              = <0>;/*part 1*/lcd_x               = <800>;lcd_y               = <480>;lcd_width           = <154>;lcd_height          = <86>;/*part 2*/lcd_pwm_used        = <0>;lcd_pwm_ch          = <7>;lcd_pwm_freq        = <50000>;lcd_pwm_pol         = <0>;lcd_pwm_max_limit   = <255>;/*part 3*/lcd_dclk_freq       = <31>;     // lcd_ht * lcd_vt * fps(60),单位MHzlcd_ht              = <976>;   // 对应屏厂Width + HSW + HBP + HFPlcd_hbp             = <88>;     //对应屏厂HBPlcd_hspw            = <48>;      // 对应屏厂HSWlcd_vbp             = <32>;     // 对应屏厂VBPlcd_vt              = <528>;    // 对应屏厂Height + VSW + VBP + VFPlcd_vspw            = <3>;      // 对应屏厂VSWlcd_lvds_if         = <0>;lcd_lvds_colordepth = <1>;lcd_lvds_mode       = <0>;lcd_frm             = <1>;lcd_io_phase        = <0x0000>;lcd_gamma_en        = <0>;lcd_bright_curve_en = <0>;lcd_cmap_en         = <0>;deu_mode            = <0>;lcdgamma4iep        = <22>;smart_color         = <90>;pinctrl-0 = <&rgb18_pins_a>;pinctrl-1 = <&rgb18_pins_b>;
};

2、修改uboot设备树:<SDK>/brandy/brandy-2.0/u-boot-2018/arch/arm/dts/board-uboot.dts

同样找到lcd0节点,将内核设备树修改的节点参数都复制过去。

3、保存编译后烧录镜像,然后进行测试验证屏幕显示是否可行

4、花屏测试

cat /dev/urandom > /dev/fb0

                                ​​​​​​​        

5、颜色测试

cat /dev/zero > /dev/fb0
echo 8 > /sys/class/disp/disp/attr/colorbar

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

6、移植显示成功。

触摸调试

1、触摸采用I2C接口,通过查看开发板原理图可知屏幕接口的i2c引脚为PE0、PE1,修改内核设备树:

        ​​​​​​​        

2、修改内核设备树twi1节点:

&twi1 {clock-frequency = <400000>;pinctrl-0 = <&twi1_pins_a>;pinctrl-1 = <&twi1_pins_b>;pinctrl-names = "default", "sleep";status = "okay";ctp@14 {compatible = "allwinner,goodix";device_type = "ctp";reg = <0x14>;status = "okay";ctp_name = "gt9xxnew_ts";ctp_twi_id = <0x2>;ctp_twi_addr = <0x14>;ctp_screen_max_x = <0x320>;ctp_screen_max_y = <0x1e0>;ctp_revert_x_flag = <0x0>;ctp_revert_y_flag = <0x0>;ctp_exchange_x_y_flag = <0x0>;ctp_int_port = <&pio PE 11 GPIO_ACTIVE_HIGH>;ctp_wakeup = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;/*ctp-supply = <&reg_aldo2>;*//*ctp_power_ldo = <&reg_aldo2>;*//*ctp_power_ldo_vol = <3300>;*/};
};

3、由于官方的触摸驱动goodix已经默认支持GT1151触摸IC,记得开启内核配置:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

所以我们不用重新写驱动,如果官方的不行,可以参考以下文章:

参考文章1

参考文章2

4、触摸测试

        1)查看触摸节点

cat /proc/bus/input/devices

        ​​​​​​​        

        2)  查看原始触摸数据(可以通过此测试最最简单判断触摸是否可行)

cat /proc/bus/input/devices

        ​​​​​​​        

        3)使用tslib触摸库进行测试,先初始化

fbinit 0 //初始化屏幕export TSLIB_TSDEVICE=/dev/input/event1 #这⾥的eventX填写⾃⼰实际的
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

        4)ts_calibrate触摸校准,依次点击四个⻆落进⾏校准:

ts_calibrate

        5)ts_test触摸测试

ts_test

点击“Drag”,开始拖拽测试: 在触摸屏上滑动,屏幕上的⼗字光标会跟随移动。

点击“Draw”,开始描绘测试: 在触摸屏上滑动,屏幕上会有对应线条出现。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

测试完成点击“Quit”退出测试。

背光调试

1、内核配置开启PWM


> Device Drivers> Pulse-Width Modulation (PWM) Support<*>   Allwinner PWM support

2、开启背光驱动


> Device Drivers> Graphics support> Backlight & LCD device support<*> Lowlevel Backlight controls                                                                                 <*>   Generic (aka Sharp Corgi) Backlight Driver                                                                <*>   Generic PWM based Backlight Driver                                                                        

3、修改内核设备树:<SDK>/kernel/linux-5.4/arch/arm/boot/dts/sun8iw20p1.dtsi

backlight: backlight {compatible = "pwm-backlight"; pwms = <&pwm 7 500000 0>;pwm-names = "backlight";brightness-levels = <0   1   2   3   4   5   6   78   9  10  11  12  13  14  1516  17  18  19  20  21  22  2324  25  26  27  28  29  30  3132  33  34  35  36  37  38  3940  41  42  43  44  45  46  4748  49  50  51  52  53  54  5556  57  58  59  60  61  62  6364  65  66  67  68  69  70  7172  73  74  75  76  77  78  7980  81  82  83  84  85  86  8788  89  90  91  92  93  94  9596  97  98  99 100 101 102 103104 105 106 107 108 109 110 111112 113 114 115 116 117 118 119120 121 122 123 124 125 126 127128 129 130 131 132 133 134 135136 137 138 139 140 141 142 143144 145 146 147 148 149 150 151152 153 154 155 156 157 158 159160 161 162 163 164 165 166 167168 169 170 171 172 173 174 175176 177 178 179 180 181 182 183184 185 186 187 188 189 190 191192 193 194 195 196 197 198 199200 201 202 203 204 205 206 207208 209 210 211 212 213 214 215216 217 218 219 220 221 222 223224 225 226 227 228 229 230 231232 233 234 235 236 237 238 239240 241 242 243 244 245 246 247248 249 250 251 252 253 254 255 >;default-brightness-level = <200>;status = "okay";};

1)查看背光

cat /sys/class/backlight/backlight/brightness

2)修改背光

echo 20 > /sys/class/backlight/backlight/brightness

3)再次修改

echo 200 > /sys/class/backlight/backlight/brightness

至此,移植成功。​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360592.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型该如何和医疗方面结合创造出更大的价值?

前言 在数字化与智能化浪潮的推动下&#xff0c;大模型技术正以其强大的数据处理和学习能力&#xff0c;成为引领新一轮科技革命的重要力量。而医疗领域&#xff0c;作为与人类健康息息相关的重要领域&#xff0c;与大模型的结合无疑将释放出巨大的价值&#xff0c;为人类的健…

Java三层框架的解析

引言&#xff1a;欢迎各位点击收看本篇博客&#xff0c;在历经很多的艰辛&#xff0c;我也是成功由小白浅浅进入了入门行列&#xff0c;也是收货到很多的知识&#xff0c;每次看黑马的JavaWeb课程视频&#xff0c;才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…

游戏服务器研究二:大世界的 scale 问题

这是一个非常陈旧的话题了&#xff0c;没什么新鲜的&#xff0c;但本人对 scale 比较感兴趣&#xff0c;所以研究得比较多。 本文不会探讨 MMO 类的网游提升单服承载人数有没有意义&#xff0c;只单纯讨论技术上如何实现。 像 moba、fps、棋牌、体育竞技等 “开房间类型的游戏…

如何挑选洗地机?盘点口碑最好的四大洗地机

在购买洗地机这种智能家电时&#xff0c;大家都应该格外谨慎。毕竟&#xff0c;洗地机价格不菲&#xff0c;精打细算&#xff0c;确保物尽其用才是最重要的。谁都不想花了高价买回来却让它闲置在墙角落灰尘。买之前我们还是需要对自己的需求做一个清晰的判断&#xff0c;实用性…

gitee添加别人的仓库后,在该仓库里添加文件夹/文件

一、在指定分支里添加文件夹&#xff08;如果库主没有创建分支&#xff0c;自己还要先创建分支&#xff09; eg:以在一个项目里添加视图文件为例&#xff0c;用Echarts分支在usr/views目录下添加Echarts文件夹&#xff0c;usr/views/Echarts目录下添加index.vue 1.切换为本地仓…

基于PHP的奶茶商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的奶茶商城系统 一 介绍 此奶茶商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;ajax实现数据交换。系统角色分为用户和管理员。系统在原有基础上添加了糖度的选择。 技术栈 phpmysqlajaxphpstudyvscode 二 功能 用户…

[20] Opencv_CUDA应用之 关键点检测器和描述符

Opencv_CUDA应用之 关键点检测器和描述符 本节中会介绍找到局部特征的各种方法&#xff0c;也被称为关键点检测器关键点(key-point)是表征图像的特征点&#xff0c;可用于准确定义对象 1. 加速段测试特征功能检测器 FAST算法用于检测角点作为图像的关键点&#xff0c;通过对…

2-16 基于matlab的动载荷简支梁模态分析程序

基于matlab的动载荷简支梁模态分析程序&#xff0c;可调节简支梁参数&#xff0c;包括截面宽、截面高、梁长度、截面惯性矩、弹性模量、密度。输出前四阶固有频率&#xff0c;任意时刻、位置的响应结果。程序已调通&#xff0c;可直接运行。 2-16 matlab 动载荷简支梁模态分析 …

什么是营销翻译?为什么要使用它?

营销翻译是将营销活动和宣传品翻译成不同语言的过程。它可能涉及翻译您的&#xff1a; 网站营销文案&#xff0c;社交媒体帖子&#xff0c;演示文稿&#xff0c;新闻稿&#xff0c;产品包装&#xff0c;产品说明&#xff0c;海报&#xff0c;宣传册&#xff0c;以及 虽然企业…

关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法

在使用threejs的WebGPURenderer渲染器时&#xff0c;发现localhost以及127.0.0.1才能访问到navigator.gpu&#xff0c;直接使用ip会变成undefined,原因是为了用户的隐私安全&#xff0c;只能在安全的上下文中使用&#xff0c;非安全的上下文就会是undefined&#xff0c;安全上下…

第28课 绘制原理图——绘制导线

概述 放置完元器件之后&#xff0c;接着就要用导线将元器件的管脚一个一个连起来了。 绘制导线的方法 点击快速工具条上的“线”命令&#xff0c;进入绘制导线的过程。 点击选择某个管脚或电源端口&#xff0c;作为导线的起始端。 再点击选择另一个管脚或电源端口&#xff0c…

Spring Cloud - 开发环境搭建

1、JDK环境安装 1、下载jdk17&#xff1a;下载地址&#xff0c;在下图中红色框部分进行下载 2、双击安装&#xff0c;基本都是下一步直到完成。 3、设置系统环境变量&#xff1a;参考 4、设置JAVA_HOME环境变量 5、在PATH中添加%JAVA_HOME%/bin 6、在命令行中执行&#xff1a;j…

正版软件 | Copywhiz 6:革新您的文件复制、备份与管理体验

在数字化时代&#xff0c;文件管理的效率直接影响到我们的生产力。Copywhiz 6 最新版本&#xff0c;带来了前所未有的文件处理能力&#xff0c;让复制、备份和组织文件变得轻而易举。 智能选择&#xff0c;只复制更新内容 Copywhiz 6 的智能选择功能&#xff0c;让您只需几次点…

都2024年了,现在互联网行情怎样?

都2024年了&#xff0c;互联网行情是怎样的&#xff1f; 很直白的说&#xff0c;依旧是差得很&#xff0c;怎么说&#xff1f; 我刚在掘金上看到一个掘友写的文章&#xff0c;他是四月领了大礼包&#xff0c;据他的描述如下&#xff1a; 互联网行情依旧是差得很&#xff0c;很…

为什么要选择华为 HCIE-Security 课程?

2020 年我国网络安全市场规模达到 680 亿元&#xff0c;同比增长 25%。随着对网络安全的愈加重视及布局&#xff0c;市场规模将持续扩大。 近年来&#xff0c;随着“云大物工移智”等新兴技术的快速发展和普及应用&#xff0c;数字化已经融入社会经济生活的方方面面&#xff0c…

【Redis】基于Redission实现分布式锁(代码实现)

目录 基于Redission实现分布式锁解决商品秒杀超卖的场景&#xff1a; 1.引入依赖&#xff1a; 2.加上redis的配置&#xff1a; 3.添加配置类&#xff1a; 4.编写代码实现&#xff1a; 5.模拟服务器分布式集群的情况&#xff1a; 1.右键点击Copy Configuration 2.点击Modi…

PS系统教程27

Photoshop与Camera Raw Camera本身是作为插件存在的&#xff0c;处理对象Raw格式&#xff08;高清格式的图片标准&#xff09; JPG是压缩格式 Camera是源数据包&#xff0c;无损高清数据包 通道 通道只有黑白灰三种颜色&#xff0c;图层类似于前台&#xff0c;通道就是后台…

免费领!系统学习上位机编程的流程与基础教程

上位机电气自动化plc编程全套入门教程工具 华山编程导师根据当前招聘需求的关键点&#xff0c;原创录制了一套系统的学习流程和基础教程&#xff0c;帮助你从快速入门到掌握上位机编程的技能。 二. 学习准备 为了更好地学习并实现80%以上的代码运行&#xff0c;建议准备一个工…

label studio数据标注平台的自动化标注使用

&#xff08;作者&#xff1a;陈玓玏&#xff09; 开源项目&#xff0c;欢迎star哦&#xff0c;https://github.com/tencentmusic/cube-studio 做图文音项目过程中&#xff0c;我们通常会需要进行数据标注。label studio是一个比较好上手的标注平台&#xff0c;可以直接搜…