MTK6577+Android之TP(触摸屏)
1.?????硬件設(shè)計(jì)
圖1
CPU GPIO和msg2133連接引腳對(duì)應(yīng)關(guān)系如下:
?
| 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 |
?
根據(jù)msg2133的數(shù)據(jù)手冊(cè),并沒有RST引腳,只有CHIP_EN引腳,這里應(yīng)該是原理圖搞錯(cuò)了,msg2133有電容式觸摸傳感器接口(capacitive touch sensor interface)、主機(jī)接口(host interface)、GPIO接口和電源引腳,下面給出后三種接口的圖:
圖2
?
?
2.?????TP驅(qū)動(dòng)實(shí)現(xiàn)
2.1???修改ProjectConfig.mk
修改mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL
其值由GT818B改為msg2133
?
2.2???增加ms2133驅(qū)動(dòng)文件夾
根據(jù)TP廠家提供的驅(qū)動(dòng),我們?cè)赲mediatek\custom\common\kernel\touchpanel增加msg2133觸摸屏驅(qū)動(dòng)文件夾msg2133,并做下面一些簡(jiǎn)單修改正常使用。
?
(1)??Msg2133接口的初始化
1)?????CHIP_EN片選使能引腳
[cpp]?view plaincopy
msg2133芯片使能引腳配置為GPIO模式、輸出高電平使能。
?
2)?????INT中斷引腳
[cpp]?view plaincopy
配置為中斷模式、輸入、使能上下拉功能和設(shè)置為上拉。
?
(2)??IIC地址
Msg2133的iic讀寫地址,我從數(shù)據(jù)手冊(cè)上沒有找到是如何確定這兩個(gè)地址的,驅(qū)動(dòng)廠家在驅(qū)動(dòng)代碼中提供,如果想要具體是怎么確定的,可咨詢廠家。
[cpp]?view plaincopy
(3)??增加TP的虛擬按鍵(virtual key)
圖3
?
要在TP上增加虛擬按鍵,需要在tp對(duì)應(yīng)的頭文件添加下面的設(shè)置:
1)?????定義TPD_HAVE_BUTTON
2)?????定義TPD_BUTTON_HEIGHT、TPD_KEY_COUNT、TPD_KEYS和TPD_KEYS_DIM,分別用于定義button被識(shí)別的縱向坐標(biāo)、虛擬按鍵個(gè)數(shù)、對(duì)應(yīng)的功能鍵和每個(gè)功能鍵的坐標(biāo)
[cpp]?view plaincopy
其中,{200,900,10,10}對(duì)應(yīng)了KEY_BACK的坐標(biāo), (200,900)是該key center的坐標(biāo),10是該鍵的寬度,10是該鍵的高度。
?
3)?????根據(jù)顯示屏分辨率修改相關(guān)的宏定義
[cpp]?view plaincopy
把常用的實(shí)體按鍵(導(dǎo)航按鍵)映射到觸屏區(qū)域的快捷方式,不強(qiáng)制要求一定要有物理按鍵來支持用戶操作,這對(duì)開發(fā)全觸摸屏的產(chǎn)品非常有利。
?
2.3???TP驅(qū)動(dòng)具體的源代碼后面深入學(xué)習(xí)在分享
?
?
參考鏈接:
mtk的android平臺(tái)觸摸坐標(biāo)調(diào)整觸摸坐標(biāo)旋轉(zhuǎn)
http://blog.sina.com.cn/s/blog_539238aa0101ed1f.html
Mstar虛擬按鍵觸摸屏驅(qū)動(dòng)(芯片msg2133,按鍵使用android虛擬按鍵實(shí)現(xiàn),特定報(bào)點(diǎn),識(shí)別為按鍵)
http://blog.csdn.net/duanlove/article/details/8098418
總結(jié)
以上是生活随笔為你收集整理的MTK6577+Android之TP(触摸屏)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现输出九九乘法表
- 下一篇: mysql锁历史记录_史上最全MySQL