1.     硬件设计

图1

CPU GPIO和msg2133连接引脚对应关系如下:

CPU GPIO引脚

Msg2133引脚

GPIO_CTP_PWR_EN(GPIO83)

AVDD(2.8)

SCL_0(GPIO87)

SCL

SDA_0(GPIO88)

SDA

KP_ROW6(GPIO110)

RST

EINT6(GPIO75)

INT

根据msg2133的数据手册,并没有RST引脚,只有CHIP_EN引脚,这里应该是原理图搞错了,msg2133有电容式触摸传感器接口(capacitive touch sensor interface)、主机接口(host interface)、GPIO接口和电源引脚,下面给出后三种接口的图:

图2

2.     TP驱动实现

2.1   修改ProjectConfig.mk

修改mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL

其值由GT818B改为msg2133

2.2   增加ms2133驱动文件夹

根据TP厂家提供的驱动,我们在\mediatek\custom\common\kernel\touchpanel增加msg2133触摸屏驱动文件夹msg2133,并做下面一些简单修改正常使用。

(1)  Msg2133接口的初始化

1)     CHIP_EN片选使能引脚

[cpp] view plaincopy
  1. mt_set_gpio_mode(GPIO_CTP_MSG2133_EN_PIN,GPIO_CTP_MSG2133_EN_PIN_M_GPIO);
  2. mt_set_gpio_dir(GPIO_CTP_MSG2133_EN_PIN,GPIO_DIR_OUT);
  3. mt_set_gpio_out(GPIO_CTP_MSG2133_EN_PIN,GPIO_OUT_ONE);</span>

msg2133芯片使能引脚配置为GPIO模式、输出高电平使能。

2)     INT中断引脚

[cpp] view plaincopy
  1. mt_set_gpio_mode(GPIO_CTP_MSG2133_EINT_PIN,GPIO_CTP_MSG2133_EINT_PIN_M_EINT);
  2. mt_set_gpio_dir(GPIO_CTP_MSG2133_EINT_PIN,GPIO_DIR_IN);
  3. mt_set_gpio_pull_enable(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_ENABLE);
  4. mt_set_gpio_pull_select(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_UP);</span>

配置为中断模式、输入、使能上下拉功能和设置为上拉。

(2)  IIC地址

Msg2133的iic读写地址,我从数据手册上没有找到是如何确定这两个地址的,驱动厂家在驱动代码中提供,如果想要具体是怎么确定的,可咨询厂家。

[cpp] view plaincopy
  1. #defineFW_ADDR_MSG21XX   (0xC4>>1)
  2. #defineFW_ADDR_MSG21XX_TP  (0x4C>>1)//write,0x26
  3. #defineFW_UPDATE_ADDR_MSG21XX  (0x92>>1)//read,0x49</span>

(3)  增加TP的虚拟按键(virtual key)

图3

要在TP上增加虚拟按键,需要在tp对应的头文件添加下面的设置:

1)     定义TPD_HAVE_BUTTON

2)     定义TPD_BUTTON_HEIGHT、TPD_KEY_COUNT、TPD_KEYS和TPD_KEYS_DIM,分别用于定义button被识别的纵向坐标、虚拟按键个数、对应的功能键和每个功能键的坐标

[cpp] view plaincopy
  1. #defineTPD_HAVE_BUTTON
  2. #defineTPD_BUTTON_HEIGHT      800
  3. #defineTPD_KEY_COUNT     4
  4. #defineTPD_KEYS        { KEY_BACK, KEY_SEARCH,KEY_MENU, KEY_HOMEPAGE }
  5. #define TPD_KEYS_DIM            {{200,900,10,10},{260,900,10,10},{40,900,10,10},{120,900,10,10}}</span>

其中,{200,900,10,10}对应了KEY_BACK的坐标, (200,900)是该key center的坐标,10是该键的宽度,10是该键的高度。

3)     根据显示屏分辨率修改相关的宏定义

[cpp] view plaincopy
  1. #defineTPD_RES_X                480  // (320)
  2. #defineTPD_RES_Y                800  //(480)</span>

把常用的实体按键(导航按键)映射到触屏区域的快捷方式,不强制要求一定要有物理按键来支持用户操作,这对开发全触摸屏的产品非常有利。

2.3   TP驱动具体的源代码后面深入学习在分享

参考链接:

mtk的android平台触摸坐标调整触摸坐标旋转

http://blog.sina.com.cn/s/blog_539238aa0101ed1f.html

Mstar虚拟按键触摸屏驱动(芯片msg2133,按键使用android虚拟按键实现,特定报点,识别为按键)

http://blog.csdn.net/duanlove/article/details/8098418

MTK6577+Android之TP(触摸屏)相关推荐

  1. mtk+android+之mt6577驱动笔记,MTK6577+Android之音频(audio)移植

    MTK6577+Android之音频(audio)移植 备注:audio PA音频功放(power amplifier) 先借用<Y1MT6577 design notice V0.1>关 ...

  2. MTK6577+Android内核配置makemenuconfig

    分类: MTK+Android开发 Android操作系统2014-11-13 17:26 612人阅读 评论(0) 收藏 举报 MTK6577+Android内核配置makemenuconfig [ ...

  3. MTK8788[android 9.0]汇顶GT9XX TP触摸屏驱动流程分析

    TP 相关引脚DTS中的定义 我们这个项目TP复位引脚是GPIO158,中断引脚是GPIO1,由下图原理图知道我们的TP挂载在I2c0上,3.3v的供电电压是有PMIC 2.8V供电电压通过i2c电平 ...

  4. android 多手指触摸屏,AIR Android:关于多点触摸

    处理用户交互 目前,触摸屏已经成为移动设备的标配,Android设备也不例外.因此,对开发者来说,处理用户交互在很大程度上也就是处理手与触摸屏的交互. 由于手指很灵活,在一块触摸屏上可以产生多种多样的 ...

  5. android平台TP调试无法正常使用问题

    首先RST内部上拉,外部应该取消上拉,INT对地电容会影响到I2C通讯成功,I2C正常不该增加对地电容,I2C可以正常通讯,但是会使上升沿变缓慢,影响到Trise导致TP无法正常工作

  6. Android嵌入式安卓触摸屏|4418开发板平台

    核心板参数 尺寸:50mm*60mm 高度:核心板连接器为1.5mm 4418 CPU:ARM Cortex-A9 四核 S5P4418处理器 1.4GHz 6818 CPU:ARM Cortex-A ...

  7. Android 系统禁用触摸屏

    需求:设置开关可以打开或者关闭屏幕触摸 实现: 1.打开文件 ./frameworks/base/core/java/android/view/ViewGroup.java 2.找到 public b ...

  8. 西门子TP触摸屏启动语言设置为英语

    选择左侧项目树---语言和资源---项目语言 然后在常规界面勾选英语(美国) 回到左侧项目树  选择运行系统设置 --- 语言字体 ---启用英语 这个时候模拟就会显示英文 触摸屏启动后显示语言变为英 ...

  9. Android TCP/TP协议

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  10. msm8953 TP 触摸屏启动报错(适用于任何启动报错crash)

    目录 报错笔记 重点笔记(可以直接跳到这) 报错笔记 --------- beginning of crash 04-18 06:40:32.447 F/libc ( 1667): stack cor ...

最新文章

  1. VUE的本地应用-V- html
  2. stm32 GPIO的8种工作模式
  3. 《Windows核心编程》学习笔记(10)– 同步设备I/O与异步设备I/O
  4. 安装 ArcGISAPI31forSilverlight an i/o error occured while installing a file错误解决
  5. MATLAB实战系列(六)-基于蚁群算法的三维路径规划算法思路浅析
  6. 查询速度提升200倍,ClickHouse到底有多快?
  7. unable to execute dex: multiple dex files Cocos2dxAccelerometer
  8. php获取ajax数组,从AJAX获取PHP中的JSON数组请求
  9. 运营商的互联网蜕变,从沃云平台开始
  10. linux 有名管道pipe,linux 用無名管道pipe和有名管道fifo實現線程間通信
  11. 控制器对应view生命周期
  12. 如何在 Mac 上使用预览将 .pdf 文件更改为 .jpg 文件
  13. oracle 丁勇 从零开始学_8.1.6 BETWEEN、IN和LIKE范围查询(1)
  14. 徐俊明《图论及其应用》教学大纲
  15. OJ1047: 对数表(C语言)
  16. Java 导入导出Excel
  17. 在线 服务器 web,web服务器是什么?
  18. 文档服务器 件排名,全国服务器排名
  19. Designing Specification
  20. 托福口语_新航道_刘莹_task 3 task5

热门文章

  1. 读钱钟书的《写在人生边上 人生边上的边上 石语》(一)
  2. srb (bug篇)
  3. Character.digit()详解
  4. 推荐STM32F030K6T6国产兼容替换芯马XM1008K6T6
  5. 网络爬虫——票房网数据抓取及MYSQL存储
  6. 2014互联网十大斗殴事件,看了我也是醉了~
  7. ant design框架学习
  8. 实现从oss(阿里云)服务器批量下载文件
  9. 微信小程序加入购物车效果动画
  10. 人工智能在智慧城市建设的应用场景