A40i使用笔记:调用系统自带驱动GT911触摸屏

一、前言

        在一般情况下使用电容触摸屏时,都是使用USB直接驱动,但是在前文中我就提及过遇到的问题,就是USB触摸屏和我是用平台不是特别兼容的问题,问题现象在复述一遍,大概就是使用linux核心板USB接口连接ILTTEK的触摸芯片是没有问题的,而使用GOODIX的GT911触摸芯片配合IIC转USB免驱板时,会出现多指触摸然后触摸屏失灵现象,需要重新插拔以下触摸屏USB,或者重启程序,这两种都是无法忍受的,经过很长时间的调试,身为对于系统底层还是小白的我实在是无力解决这个不兼容问题,后来就全力研究如何使用直接驱动的方式,跳过USB免驱板,直接使用系统资源IIC总线信号和RST以及INT引脚,去调用GT911芯片驱动,控制触摸屏。而经过好几天下班时间的研究和与售后耐心的邮件互传下,终于不负我!

二、环境

全志A40i(飞凌A40i核心板)

linux3.10

2401源码包

三、正文

首先附上我更改的文件资源https://download.csdn.net/download/qq_37603131/86797324

1.硬件修改部分

使用核心板的TWI1接口,在找两个引脚配置RST和INT,配置sys_configFCU2401.fex文件,文件内核心修改的地方如下:

[twi1]
twi1_used        = 1
twi1_scl         = port:PB18<2><default><default><default>
twi1_sda         = port:PB19<2><default><default><default>
;----------------------------------------------------------------------------------
;capacitor tp configuration电容触摸
;external int function
;wakeup output function
;notice ---    tp_int_port &  tp_io_port use the same port
;compatible       设备名字
;ctp_used		  是否使用
;ctp_name		  用作区别gd系列,适配屏幕分辨率
;ctp_twi_id		  用作选择iic的adapter,可选1,2
;ctp_twi_addr     指明iic设备地址,与硬件相关
;ctp_screen_max_x 触摸板x最大坐标
;ctp_screen_max_y 触摸板y最大坐标
;ctp_touch_panel_max_x
;ctp_touch_panel_max_y
;ctp_revert_x_flag是否需要反转x坐标,需要置1,反之置0
;ctp_revert_y_flag是否需要反转y坐标,需要置1,反之置0
;ctp_exchange_x_y_flag是否需要xy坐标对换
;ctp_power_ldo	  触摸屏电源配置
;ctp_power_ldo_vol触摸屏电压配置
;ctp_int_port	  电容屏中断信号GPIO配置
;ctp_wakeup		  电容屏唤醒信号GPIO配置
;----------------------------------------------------------------------------------
[ctp]
compatible          = "allwinner,sun50i-ctp-para"
ctp_used            = 1
ctp_name            = "gt9xx_ts"
ctp_twi_id          = 1
ctp_twi_addr        = 0x14
ctp_screen_max_x    = 800
ctp_screen_max_y    = 480
ctp_touch_panel_max_x  = 800
ctp_touch_panel_max_y  = 480
ctp_revert_x_flag   = 0
ctp_revert_y_flag   = 0
ctp_exchange_x_y_flag = 0
ctp_power_ldo       = "vcc-ctp"
ctp_power_ldo_vol   = 3300

ctp_int_port        = port:PH02<6><default><default><default>
ctp_wakeup          = port:PH05<1><default><default><0>

;----------------------------------------------------------------------------------
;compatible配置名称
;ctp_list_used 支持触摸屏list
;ft5x_ts       是否支持ft5x_ts模组
;gt82x	       同上
;gt9xx_ts      同上
;gt9xxnew_ts   同上
;gt811	       同上
;zet622x       同上
;aw5306_ts     同上
;----------------------------------------------------------------------------------
[ctp_list]
compatible          = "allwinner,sun50i-ctp-list"
ctp_list_used	    = 1
ft5x_ts             = 1
gt82x               = 1
gt9xx_ts            = 1
gt9xxnew_ts         = 1
gt811               = 1
zet622x             = 1
aw5306_ts	    = 1

        需要注意引脚配置模式,还有TWI的id要对应,我之前就是默认的TWI3,id默认是3,更换TWI1一直没修改ID,后来有糊涂把TWI引脚的模式修改了,这里就是配置资源部分,不得不说,飞凌独立开发的这个config文件针对于不需要深入学习和专业搞linux的人上手还挺快的,无需特别深入的学习设备树,大部分功能只需要修改这个配置文件,就可以了,目前我使用这个配置文件修改了诸多接口,比如SATA,CAN,485,232,双网口,电阻触摸,电容触摸,LVDS,LCD,双LVDS1080P,GPIO等等。

接下来还需要修改的就是系统配置部分,sun8iw11p1smp_oka40i_c_defconfig这个文件,需要将文件内的链接到GT911驱动的部分打开,GT911源码在系统自带的驱动文件中,一层一层查看Makefile文件,并将对应的宏全部在系统配置文件中选择,其中可以设置m和y,m的含义就是编译出ko文件,加载驱动需要手动加载,y的含义就是不编译ko文件,集成在系统驱动中自动加载,一遍调试驱动时需要发现哪里有问题, 选择m编译,当确定之后使用y自动加载即可,也不用在学一段程序调用驱动,直接开机默认执行驱动。 

        这里我将系统配置文件的宏CONFIG_TOUCHSCREEN_GT9XXNEW_TS=y打开,在执行build.sh时就会带着GT911驱动一起编译了。

        之后编译系统镜像包,更新镜像文件到板卡中即可,目前唯一美中不足的就是触摸屏识别成为了鼠标,在点击屏幕时会出现鼠标指针,后续继续研究如何识别为触摸屏,将鼠标指针去掉,插上真正的鼠标之后才会出现鼠标。


凌晨翻来覆去睡不着,看了一下邮箱,飞凌技术发给一个在qt去除鼠标指针的方法,看了一下方法,有了一些灵感,可能不通过qt去除,而是在环境变量删除一些东西也可以,于是乎就开始了起床测试之路。

修改如下:

删除资源中qt5.9.sh环境变量中 evdevmouse部分,于是乎触摸就正常了,不在显示鼠标指针。但是这时候接入有线鼠标大概率是不能用的,于是乎这个环境变量又得特殊标记一下了,仅用于gt911触摸屏使用不持支有限鼠标,实际我并灭有接入鼠标测试,因为家里没有有线鼠标,呜呜呜~

四、结语

坚持,就是胜利!怀揣梦想,树立目标,才不会停止前进的步伐。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据引用\[1\]中提到的系统配置部分,要修改GT911的分辨率,需要打开sun8iw11p1smp_oka40i_c_defconfig文件,并在其中选择对应的宏。具体来说,可以设置m和y,其中m表示编译出ko文件,需要手动加载驱动,y表示不编译ko文件,集成在系统驱动中自动加载。如果需要调试驱动并发现问题,可以选择m编译,确定之后再使用y自动加载。这样就不需要学习一段程序来调用驱动,直接开机默认执行驱动。\[1\] 至于GT911的分辨率本身,根据引用\[2\]中提到的,GT911是专为7"~8"设计的新一代5点电容触控方案,可以同时识别5个触摸点位的实时准确位置、移动轨迹和触摸面积。它可以根据主控需要读取相应点数的触摸信息。所以GT911的分辨率是根据触摸点位的数量和精度要求来确定的。\[2\] 需要注意的是,GT911通过标准的I2C通讯接口与主CPU进行通讯,作为从设备,所有通讯都是由主CPU发起。建议通讯速度为400Kbps或以下。\[3\] #### 引用[.reference_title] - *1* [A40i使用笔记调用系统自带驱动GT911触摸屏](https://blog.csdn.net/qq_37603131/article/details/127454157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [野火STM32F103驱动GT911触摸芯片](https://blog.csdn.net/wfm700305/article/details/129664019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大桶矿泉水

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值