全志A33驱动GT911触摸屏

摘要:
0x00环境描述:使用的开发板是Ruilview_ Vstar触摸屏驱动IC的引脚版本A33,是GT911布线。参考开发板的TP行0x01修改系统配置文件。作者使用的A33开发板的系统配置文件路径为:/root/a3_linux/dragboard/tools/pack/chips/sun8iw5p1/configs/vstar/sys_Config。fex在配置文件中搜索[twi0]和[twi_p
0x00 环境说明:

所使用的开发板为锐尔威视的插针版A33_Vstar

触摸屏驱动IC为GT911

接线参照开发板的TP线路

0x01 修改系统配置文件:

笔者所使用的A33开发板的系统配置文件路径为:

/root/a33_linux/dragonboard/tools/pack/chips/sun8iw5p1/configs/vstar/sys_config.fex

1

在配置文件中搜索 [twi0] 以及 [twi_para] 确保IIC0是开启的:

2

3

然后搜索 [ctp_para] ,修改TP配置:(注意屏幕分辨率按实际屏幕设置)

[ctp_para]
ctp_used            = 1
ctp_name            = "gt9xx_ts"
ctp_twi_id          = 0
ctp_twi_addr        = 0x5d
ctp_screen_max_x    = 480
ctp_screen_max_y    = 854
ctp_revert_x_flag   = 0
ctp_revert_y_flag   = 0
ctp_exchange_x_y_flag = 0

ctp_int_port        = port:PB05<0><0><default><default>
ctp_wakeup          = port:PH01<1><default><default><1>
ctp_power_ldo       = "axp22_eldo1"
ctp_power_ldo_vol   = 3000
ctp_power_io        =

0x02 修改初始化脚本:

初始化脚本路径为:

/root/a33_linux/dragonboard/buildroot/target/dragonboard/extra/autorun.sh

4

在文件中找到安装TP驱动的位置,将:

insmod "$tp_module_path"

修改为:

insmod /system/vendor/modules/gt9xx_ts.ko

5

找到 tslib config:

6

将其中的 ft5x_ts 修改为 gt9xx_ts :

7

修改完毕之后保存退出

0x03 修改驱动代码:

驱动代码路径为:

/root/a33_linux/dragonboard/linux-3.4/drivers/input/touchscreen/gt9xx/

修改 gt9xx_ts.h :

修改相关配置选项:

//***************************PART1:ON/OFF define*******************************
#define GTP_CUSTOM_CFG        1
#define GTP_DRIVER_SEND_CFG   1
#define GTP_HAVE_TOUCH_KEY    0
#define GTP_POWER_CTRL_SLEEP  0
#define GTP_AUTO_UPDATE       0
#define GTP_CHANGE_X2Y        0
#define GTP_ESD_PROTECT       0
#define GTP_CREATE_WR_NODE    0
#define GTP_ICS_SLOT_REPORT   0

#define GTP_HEADER_FW_UPDATE  0    
#define GTP_SLIDING_WAKEUP    0    

//TP的调试输出控制(调试完毕之后建议关闭)

#define GTP_DEBUG_ON          1
#define GTP_DEBUG_ARRAY_ON    1
#define GTP_DEBUG_FUNC_ON     1

修改寄存器配置:(数据一般由屏厂直接给出)

#define CTP_CFG_GROUP1 {
     0x00,0xE0,0x01,0x56,0x03,0x0A,0x05,0x00,0x01,0x08,0x28,
     0x05,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x00,0x87,0x28,0x09,0x17,0x15,0x31,
     0x0D,0x00,0x00,0x02,0x9B,0x03,0x25,0x00,0x00,0x00,0x00,
     0x00,0x03,0x64,0x32,0x00,0x00,0x00,0x0F,0x36,0x94,0xC5,
     0x02,0x07,0x00,0x00,0x04,0x9B,0x11,0x00,0x7B,0x16,0x00,
     0x64,0x1C,0x00,0x50,0x25,0x00,0x42,0x2F,0x00,0x42,0x00,
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x12,0x10,0x0E,0x0C,0x0A,0x08,0x06,0x04,0x02,
     0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,
     0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x00,0x02,0x04,0x06,
     0x08,0x0A,0x0C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
     0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x01}

只用CTP_CFG_GROUP1,其他组全部清空

修改分辨率设置:(按实际情况调整)

//STEP_3(optional):Custom set some config by themself,if need.
#if GTP_CUSTOM_CFG
   #define GTP_MAX_WIDTH    480
   #define GTP_MAX_HEIGHT   854
   #define GTP_INT_TRIGGER  1    //0:Rising 1:Falling
#else
   #define GTP_MAX_HEIGHT   4096
   #define GTP_MAX_WIDTH    4096
   #define GTP_INT_TRIGGER  1
#endif

修改 gt9xx.c :

参考《GT911编程指南》,修改初始化代码:

void gtp_io_init(int ms)
{      
//    ctp_wakeup(0, 0);
//    msleep(ms);
//
//    gtp_set_int_value(0);
//    msleep(2);
//
//    ctp_wakeup(1, 0);
//    msleep(6);

    ctp_wakeup(0, 0);
     gtp_set_int_value(0);
     msleep(1);
     ctp_wakeup(1, 0);
     msleep(6);
     gtp_set_int_value(0);
     msleep(50);
            
#if GTP_ESD_PROTECT
      //   gtp_init_ext_watchdog(client);
#endif      
}

保存修改之后重新编译系统

0x04 重新编译系统:

切换到系统源码顶层目录:

cd  ~/a33_linux/dragonboard

重新编译系统:

./clean.sh

./build.sh  config

cd  linux-3.4/

cp  a33_vstar_defconfig  .config

cd  ..

./build.sh

./build.sh  pack

最终打包生成的系统镜像路径为:

~/a33_linux/dragonboard/tools/pack/sun8iw5p1_dragonboard_vstar.img

0x05 验证:

将打包生成的系统镜像烧录至板子,上电启动之后进入触摸屏校准:

8

点击屏幕,串口打印坐标数据:

9

免责声明:文章转载自《全志A33驱动GT911触摸屏》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇密码学解密网站汇总增加新硬盘下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

4G EPS 中的 Control Plane

目录 文章目录 目录 前文列表 控制平面 归属环境部分 无线接入网络部分 核心网络 EPS CP 中的 GTP-C UP 中的 GTP-U Tunnel 两端的 F-TEID 需要通过 CP 的信令流程来进行交换 PCRF 影响 PDN Connection 的创建 概览 CP/UP 的全貌 前文列表 《4G EPS 第四代移动通信系统》《4G...

4G EPS 中的 User Plane

目录 文章目录 目录 前文列表 用户平面 EPS UP 中的 GTP-U F-TEID 的组成 UE IP 数据包在 GTP-U Tunnel 上的封装流程 GTP-U 与 EPS Bearer MME 如何选择 PGW/SGW? MME 通过 Local DNS 辅助选择 PGW/SGW 优先选择 SAE-GW 前文列表 《4G EPS...

Erp中的ATP和CTP是什么?两者有什么区别?

可用量承诺(Available to Promise,ATP),是一种库存匹配模型,意在最大限度地利用库存产品对客户订单需求做出及时和准确的反应,缩短交货提前期、降低库存水准; 可用生产能力承诺(Capacity to Promise,CTP),是一种能力匹配模型,对在ATP系统中没有得到 匹配的订单,需要通过能力匹配模型来进行排产,并根据排产结果给出交货...

kgtp linux内核调试

作者:朱辉  开源网址:https://github.com/teawater                     http://teawater.github.io/kgtp/      有中文版说明 内核编绎: General setup  --->      [ * ] Prompt fordevelopment and/or incom...

移动通信网络中的 GTP 协议

目录 文章目录 目录 GTP GTP-C 协议(GTP 控制面) GTP-U 协议(GTP 用户面) GTP' 协议(计费传输) GTPv2 Header GTP GTP(GPRS Tunnelling Protocol,GPRS 隧道协议)是一组基于 IP 的通信协议,用于 GSM、UMTS 和 EPS 网络中承载 GPRS(General...