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.mzph.cn/web/34102.shtml

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

相关文章

vue3+ts:监听dom宽高变化函数

一、效果展示 二、代码 getSize.ts import { ref, Ref, watchEffect } from "vue";export const getWidth (domRef: Ref<HTMLElement | null>) > {const width ref<number>(0);const height ref<number>(0);const observer new ResizeObs…

Qt事件传递顺序是怎样的?

1、事件传递顺序规则 在Qt中&#xff0c;事件传递的顺序事件首先传递到目标对象的事件过滤器&#xff0c;然后传递到事件处理函数&#xff0c;最后传递到父对象的事件过滤器和事件处理函数。 为了更好地理解这一过程&#xff0c;下面将通过一个示例来展示事件在父窗口和子窗口…

投票多功能小程序(ThinkPHP+Uniapp+FastAdmin)

&#x1f389;你的决策小助手&#xff01; 支持图文投票、自定义选手报名内容、自定义主题色、礼物功能(高级授权)、弹幕功能(高级授权)、会员发布、支持数据库私有化部署&#xff0c;Uniapp提供全部无加密源码。​ 一、引言&#xff1a;为什么我们需要多功能投票小程序&#…

小程序的基本使用

【 0 】前言 【 0 】 这个就是js代码的存放地方 app.json // pages/banner/banner.js Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示…

【安卓13 源码】RescueParty救援机制

RescueParty机制正是在这个背景下诞生的&#xff0c;当它注意到系统或系统核心组件陷入循环崩溃状态时&#xff0c;就会根据崩溃的程度执行不同的救援行动&#xff0c;以期望让设备恢复到正常使用的状态。 开机后会自动重启&#xff0c;进入Recovery界面。经查找&#xff0c;是…

代码随想录-Day39

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

线程安全问题(一)——锁的简单使用

多线程安全问题 线程安全问题的引入案例引入多线程指令排序问题 线程不安全的原因解决线程不安全的方法锁的引入上锁和解锁过程一个简单的锁Demo对这个案例进行几次修改 总结 线程安全问题的引入 在前面的博文中&#xff0c;我们了解到通过Thread.join()的方法让线程进入等待&…

统信UOS系统忘记登录密码怎么办

在使用统信操作系统UOS的时候有可能会出现忘记密码的情况&#xff0c;当遇到了用户登录密码忘记时如何修改&#xff1f;今天分享一下忘记超级系统管理员Root以及普通密码时的解决方法。 因为UOS系统版本的原因&#xff0c;UOS 1031操作系统取消了单用户更改密码的方法&#xff…

jupyter notebook的markdown语法不起作用

在这个界面编辑&#xff0c;发现markdown你编辑的是什么就是什么&#xff0c;不起作用&#xff0c;然而点一下&#xff1a; 右上角“Notebook转发”&#xff0c;就会单独跳出一个jupyter notebook的界面&#xff0c;此时就会奏效&#xff1a;

【CT】LeetCode手撕—72. 编辑距离

目录 题目1- 思路动规五部曲 2- 实现⭐72. 编辑距离——题解思路 3- ACM 实现 题目 原题连接&#xff1a;72. 编辑距离 1- 思路 模式识别&#xff1a;编辑举例 ——> 动态规划 动规五部曲 1.dp数组的含义 int[][] dp new int[word1.length()][word2.length()];以 i-1 …

6-47选择整数计算

整数计算&#xff1a; 用swing组件来实现整数计算&#xff0c;需要对整数计算的值进行校验。 import javax.swing.*; import java.awt.*; import java.awt.event.*;public class IntegerCalculator extends JFrame implements ActionListener {private JCheckBox[] checkBoxe…

【分布式文件系统HDFS】文件操作基本命令的使用

目录 一、按照下述要求写出相应的文件操作命令&#xff0c;执行并观察结果 1. 新建目录 1.1 在本地文件系统按要求创建如下的文件夹 1.2 在HDFS文件系统按要求创建如下的文件夹 2. 编辑文件test1.txt&#xff0c;放入本地文件夹 /opt/user/myfile 3. 使用moveFromLocal命令…

本地部署大模型的简单方法

https://ollama.com/https://ollama.com/ 在本地安装ollama windows版本。安装好后&#xff0c;就可以验证大模型了。 可以先测试一下qwen 0.5b&#xff0c;打开cmd&#xff0c;执行ollama run qwen:0.5b&#xff0c;首次会下载大模型的模型资源。 模型下好后就可以交互…

H5、Vue3、UniApp实现抖音短视频功能

H5、Vue3、UniApp实现抖音短视频功能 ml-swiper https://ext.dcloud.net.cn/plugin?id18973 可 0 配置&#xff0c;高性能、低代码、全端兼容 APP端效果图 微信小程序端效果图 Vue网页端效果图 ml-swiper 可 0 配置&#xff0c;高性能、低代码、全端兼容 APP端效果图 …

扩散模型 GLIDE:35 亿参数的情况下优于 120 亿参数的 DALL-E 模型

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

媒体邀约中媒体采访应该如何做?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 在媒体邀约中&#xff0c;媒体采访应该遵循以下几个步骤和…

Python读取中文路径,出现乱码问题解决方案

Python读取中文路径&#xff0c;出现乱码问题解决方案 一、问题描述二、问题解决 欢迎学习交流&#xff01; 邮箱&#xff1a; z…1…6.com 网站&#xff1a; https://zephyrhours.github.io/ 一、问题描述 笔者在使用opencv读取带有中文路径的图片时&#xff0c;发现会出现乱…

C++ 模板:全特化和偏特化

目录 全特化&#xff08;Full Specialization&#xff09; 偏特化&#xff08;Partial Specialization&#xff09; 特点和使用场景 注意事项 在C中&#xff0c;模板特化&#xff08;template specialization&#xff09;是一种强大的功能&#xff0c;允许对模板进行特定情…

2024最新算法:鳗鱼和石斑鱼优化(Eel and grouper optimizer,EGO)算法求解23个函数,MATLAB代码

一、算法介绍 鳗鱼和石斑鱼优化器&#xff08;Eel and grouper optimizer&#xff0c;EGO&#xff09;是2024年提出的一种智能优化算法&#xff0c;EGO算法的灵感来自海洋生态系统中鳗鱼和石斑鱼的共生相互作用和觅食策略。 参考文献&#xff1a; [1]A. Mohammadzadeh, S. Mi…

玩转数据库索引

1、概述 通常我们要对数据库进行优化&#xff0c;主要可以通过以下五种方法。 计算机硬件调优应用程序调优数据库索引优化SQL语句优化事务处理调优 本篇文章将向大家介绍数据库中索引类型和使用场合&#xff0c;本文以SQL Server为例&#xff0c;对于其他技术平台的朋友也是有…