MTK6577+Android之TP(触摸屏)
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
msg2133芯片使能引腳配置為GPIO模式、輸出高電平使能。
?
2)?????INT中斷引腳
[cpp]?view plaincopy
配置為中斷模式、輸入、使能上下拉功能和設置為上拉。
?
(2)??IIC地址
Msg2133的iic讀寫地址,我從數據手冊上沒有找到是如何確定這兩個地址的,驅動廠家在驅動代碼中提供,如果想要具體是怎么確定的,可咨詢廠家。
[cpp]?view plaincopy
(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
其中,{200,900,10,10}對應了KEY_BACK的坐標, (200,900)是該key center的坐標,10是該鍵的寬度,10是該鍵的高度。
?
3)?????根據顯示屏分辨率修改相關的宏定義
[cpp]?view plaincopy
把常用的實體按鍵(導航按鍵)映射到觸屏區域的快捷方式,不強制要求一定要有物理按鍵來支持用戶操作,這對開發全觸摸屏的產品非常有利。
?
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(触摸屏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现输出九九乘法表
- 下一篇: android 快速开机启动,MTK65