跳过正文

A133平台 gsl5680芯片调试总结

·58 字·
Huang JY
作者
Huang JY
记录全志 SoC、驱动开发、显示调试与智能硬件项目实践
目录

1. 环境
#

  • 平台:A133
  • 系统环境:Android 11
  • 芯片:gsl5680

2. 调试背景
#

gs5680是一款思立微TP触摸芯片,支持16寸的电容屏,同时向下兼容小尺寸屏幕,主要看通道数,比如一般来说16寸屏幕通道数是大于14寸,所以能支持16寸就可以支持14寸,大于16寸是否支持需要询问fae。

3. 调试过程
#

3.1 底层驱动
#

事先要配置好驱动文件(gslx680new),最终实现效果是能使用i2cdetect查看到对应地址,并且成功加载驱动注册ipnut_dev即可,这时候一般触摸效果是不行的,触摸芯片工作异常,所以要让fae现场调效。

3.2 现场调效
#

现场调效的话主要是fae负责,我们重点说明一下如何使用这个fae提供的效果文件。

(1) 文件格式转换
#

一般fae提供的效果文件为xxxx.h,而全志内置gs65680驱动使用的是xxxx.bin文件,我们需要使用工作将.h转换成.bin文件。

工具目录:vendor/aw/public/package/bin/gsltool

image-20260805093557927

通过mm编译工具,然后执行gsltool gslX680_3676_10inch firmware/将gslX680_3676_10inch.h转换成gslX680_3676_10inch.bin并放在firmware目录下

(2) 指定使用的效果文件
#

image-20260805093852909

例如上面就指定驱动使用的效果文件为gslX680_3676_10inch.bin

(3) 打包效果文件
#

路径:device/softwinner/ceres/ceres-b6/input/config.mk

GSLFIRMWARELIST指定打包具体的效果文件:

image-20260805094128761

指定打包的效果文件为gslX680_3676_8inch.bin 和 gslX680_3676_10inch.bin

打包脚本:gsl_firmware.mk

image-20260805094819172

具体逻辑是如果GSLFIRMWARELIST为空就打包所有.bin文件,如果GSLFIRMWARELIST有指定就只打包指定的。

4. 问题分析
#

4.1 y轴触不到边
#

实测发现y轴触不到变,上报数据范围只有19~1178,上下都差20

解决方法有两种:

(1)让fae再次现场调优

​ 注意后面验收的时候要看能不能触摸到边

(2)修改驱动

image-20260805095503899

如上处理上报的数据,touch_min_y为实测的最小上报数据19,touch_max_y为实测的最大上报数据为1178,SCREEN_MAX_Y屏幕实测的分辨率1200,上面代码逻辑就是将[19, 1178]映射[0,1200]范围内,这样处理的好处是,提高精准度并且不损失连续性,如果是直接将y轴全部减10或者上半部分屏幕减10,下半屏幕加10,这样都会出现无效区域