MTK_Touch_panel_Driver(MTK平台触摸屏驱动)
电容触摸屏调试

驱动调试经验总结总结人:李伟博1.硬件平台:WGROBOT DEMO大板2.软件平台:ALPS.GB.FDD2.MP.V13.问题描述:调试汕超TP,IC为ATMXT2244.解决问题方法与具体步骤:1)此TP为MTK没有认证过的TP,需要首先熟悉MTK的TP架构和厂家给的参考代码2)MTK的TP架构为:TP作为一个平台设备申请并注册驱动,驱动中为TP设备申请一个输入设备,所有适配在这个平台上的触摸屏驱动都使用这个输入设备来上报数据3)使用触摸屏驱动厂家给的参考代码进行适配:首先修改参考代码的架构来符合MTK的TP框架适配过程需要注意三个方面:1)关于I2C理解和修改:触摸屏芯片驱动是通过I2C总线来控制的,所以把这个作为一个i2c从设备来对待,i2c主设备为mt6573的i2c控制器mt6573的方案中i2c设备和驱动的注册流程是这样的:上匹配force形式中的probe函数2)中断与线程mt6573平台中断分内部中断和外部中断。
内部中断为mt6573芯片内部的一些控制器终端,例如USB相关中断,SD 卡的相关中断等,内部中断通过request_irq申请中断处理外部中断指GPIO配置为中断管脚连接外部器件,外部器件在一定条件下产生中断,中断控制器从GPIO获取中断,进入中断处理程序。
外部中断通过mt65xx_eint_registration来申请中断处理。
中断处理程序要求短小精悍,不可做过多的任务事情,可以做一些简单的赋值和触发线程运行的动作。
通过kthread_run来创建一个线程,设置线程的调度方式SCHED_RR,进线程设置线程状态为可中断运行,开始等待等待队列事件,而等待队列事件的释放是在中断处理中做的,所以一旦发生中断,线程开始向下运行,调用kthread_should_stop()来停止线程。
起。
MTK驱动

MTK驱动总结一、编译环境编译需要三个软件:ads以及patch、perl和分布式编译工具。
二、编译命令make 工程名umts/gprs new (remake, clean, bootloader, resgen, emiclean, emigen …)三、CODE驱动设计的代码集中在如下几个目录:MakeCustomDrvBmtFm_drvInitInterfacebootloader1.设置BBPLATFORM = MT6268# Hardware Platform, MT6208, FPGA, MT6218, MT6218B, MT6219, MT6226, MT6227, MT6228, MT6229 ...etc.BOARD_VER = BROADMO BI68_09B_BB# Baseband main board description, SHOULD BE ONE OF THE FOLLOWINGS #MT6208_EVB,MT6208_CEVB,MT6205_CEVB,ORDNANCE,KLM2003_BB,CHICAGO200 3_BB,# MT6218_MW001, CANNON, MT6218B_EVB, JUPITER_EVB, MT6219_EVB,# MT6226_EVB, MT6227_EVB, MT6228_EVB, MT6229_EVBMCU_CLOCK = MCU_245_76M# MCU clock setting, MCU_13M, MCU_26M, MCU_39M, MCU_52M, MCU_104M MCU_DCM = DCM_ENABLE# DCM_ENABLE, DCM_DISABLE# Dynamic Clock Management# Available BB chip:MT6217,MT6226,MT6226M,MT6227,MT6228,MT6229...etc.EXT_CLOCK = EXT_26M# External clock source setting, EXT_13M, EXT_26M2设置RF ModuleRF模块:UMTS_RF_MODULE = CUSTOM_MT6160RF_MODULE = AD6546_CUSTOM晶振类型:AFC_VCXO_TYPE = VCTCXO# VCTCXO : VCTCXO# VCXO : VCXO# VCXO_SC : VCXO with 7 area slope control# VCXO_TC : VCXO with temperature compensation# VCXO_SC_TC : VCXO with 7 area slope control & temperature compensationCOM_DEFS_FOR_CUSTOM_MT6160 = MT6160_RF CUSTOM_MT6160UMTS_BAND_I = TRUE# TRUE, FALSEUMTS_BAND_II = TRUE# TRUE, FALSEUMTS_BAND_III = FALSE# TRUE, FALSEUMTS_BAND_IV = FALSE# TRUE, FALSEUMTS_BAND_V = TRUE# TRUE, FALSEUMTS_BAND_VI = FALSE# TRUE, FALSEUMTS_BAND_VII = FALSE# TRUE, FALSEUMTS_BAND_VIII = FALSE# TRUE, FALSEUMTS_BAND_IX = FALSE# TRUE, FALSEUMTS_BAND_X = FALSE# TRUE, FALSE驱动代码:GSM:custom\l1_rf\AD6548_CUSTOM\l1d_custom_rf.hcustom\l1_rf\AD6548_CUSTOM\m12193.cWCDMA\custom\ul1_rf\CUSTOM_MT6160\u12193.c\custom\ul1_rf\CUSTOM_MT6160\ul1d_custom_rf.h3设置PMIC –电源管理模块PMIC = MT6326# Charge Function, NONE, MT6305 or MT6318驱动文件:\drv\src\pmic6326.c\drv\src\pmic_custom.c\custom\drv\misc_drv\HUAQIN68_09B_BB\chr_parameter.c4设置LCDLCD_MODULE = BROADMOBI68_09B_LCM# Based on the LCM solutions (even multiple LCM modules for this project) # SHOULD BE ONE OF THE FOLLOWINGS, based on the LCM# MTKLCM - Mono, 102x64# MTKLCM_COLOR - Color, 120x160, for MT6218_MW001 or MT6205_CEVB# ORDNANCELCM - Mono, 112x64# KLMLCM - Color, 128x128# INFOLCM - Color, 128x128# TOPPOLY_LCM - Color, 128x160, for MT6218B_EVB# SONY_LCMMAIN_LCD_SIZE = 320X240# To distinguish the main lcd size.# We can use it to copy the matching resources, such themecomponents.h, Fontres.c, L_xxx.h, etc, to PLUTO_MMI folderSUB_LCD_SIZE = NONE# NONE, 48X64BW, 64X96, 96X64BW, 96X64, 128X128COM_DEFS_FOR_BROADMOBI68_09B_LCM = BROADMOBI68_09B_LCM TFT_MAINLCD # TFT_MAINLCD – LCD类型驱动代码:custom\drv\LCD\$( LCD_MODULE)\lcd.ccustom\drv\LCD\$( LCD_MODULE)\lcd_hw.hcustom\drv\LCD\$( LCD_MODULE)\lcd_sw.hcustom\drv\LCD\$( LCD_MODULE)\lcd_sw_inc.hcustom\drv\LCD\$( LCD_MODULE)\lcd_rnd.h参考其中一个屏的代码即可添加新屏。
MTK驱动基本介绍

MTK驱动基本介绍MTK(Mediatek Inc.)是台湾联发科技股份有限公司的一个子公司,是一家全球领先的半导体芯片设计公司。
MTK驱动(Mediatek Driver)是联发科技开发的一款设备驱动程序,用于支持和管理MTK系列芯片的硬件设备。
MTK驱动的目的是为了提供对MTK芯片的各种硬件设备的支持,使其能够在计算机系统中正常工作。
MTK芯片广泛用于智能手机、平板电脑、智能家居、物联网等领域的设备,而MTK驱动则起到了连接和协调计算机系统和硬件设备之间的桥梁作用。
1.提供设备识别和连接:MTK驱动可以识别MTK芯片的硬件设备,并与计算机系统进行连接,完成设备的初始化和配置工作。
2.实现设备通信和数据传输:MTK驱动通过与设备之间的通信接口,实现了设备和计算机之间的数据传输和交互,包括文件的读写、音视频的传输和图像的显示等。
3.支持设备管理和控制:MTK驱动可以对MTK芯片的硬件设备进行管理和控制,包括设备的开关、功能设置、驱动安装和升级等。
4.提供系统稳定性和兼容性:MTK驱动经过严格的测试和验证,能够保证在不同的计算机系统环境下的稳定性和兼容性,确保硬件设备能够正常工作。
5.支持开发者和用户的需求:MTK驱动提供了丰富的开发工具和接口,为开发者和用户提供定制化和个性化的驱动支持,方便二次开发和扩展。
2.连接设备和计算机:使用USB数据线或其他连接方式将MTK芯片的硬件设备连接到计算机上。
3.设置设备连接模式:根据设备的不同,选择合适的连接模式,如USB存储模式、USB调试模式等。
4.等待系统安装驱动:当设备连接到计算机后,操作系统会自动检测并安装相应的MTK驱动程序,期间需要等待一段时间。
5.使用设备:一旦驱动安装完成,设备就可以在计算机上正常工作,可以进行文件传输、数据交互、驱动管理等操作。
总之,MTK驱动是一款重要的软件工具,为MTK芯片的硬件设备提供了必要的支持和管理功能,使其能够在计算机系统中正常工作。
MTK的驱动和MMI经验总结

MTK的驱动和MMI经验总结1.Windows必须安装在C盘,否则会出现modis编译问题。
2.语言和输入法移植2.1资源修改–这是我们需要修改的,2.2开始MTK已经帮你做好了。
2.1.1在mcu\plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加新语言的字符串资源。
2.1.2用MCT工具生成新的字库,需要注意的是Language ID必须和ref_list.txt中一致。
2.1.3输入法资源包括Zi、T9和CStar。
2.1.3.1Zia.新建mcu\vendor\inputmethod\ZI\project\PROJECTNAME\v?_official\目录。
b.将第三方提供的Zi文件拷贝到该目录。
c.将所有ZI8DatXX.c文件扩展名改成.h文件,并将其包含到IMEResZi.h中。
d.将输入资源添加到mtk_gIMELDBArray 数组中。
e.上面步骤,第三方可能已经提供IMEResZi.h文件。
如果提供了就不用这些步骤了。
2.1.3.2T9将代码放到下面目录:mcu\vendor\inputmethod\T9\project\PROJECTNAME\v?_official\移植比较麻烦,具体参考:SOP_T9_Input_Method_Resource_Generation_07A.pdfSOP_T9_Input_Method_Resource_Generation_08B.pdfSOP_T9_Input_Method_Resource_Generation_09BV2.pdf2.1.3.3CStar不说了2.2SSC有几个文件需要修改。
a.mcu\ \plutommi\mmi\SSC\SSCInc\SSCStringHandle.h:增加新的SSC码,需要和ref_list.txt、FontRes.c中的一致。
#define SSC_AUTO "*#0000#"#define SSC_SCHINESE "*#0086#"#define SSC_TCHINESE "*#0886#"#define SSC_ENGLISH "*#0044#"#define SSC_DEFAULT "*#0044#"#define SSC_SPANISH "*#0034#"//添加你的SSC码//#define SSC_XXXXX "*#00XX#"2.3mcu\ \plutommi\mmi\SSC\SSCInc\SSCStringHandle.c:将新的SSC码加入到ssc_table2表中。
MTK驱动基本介绍

MTK驱动基本介绍
MTK驱动,也称为MediaTek驱动,是一种特定于联发科技(MediaTek)芯片的驱动程序。
联发科技是全球领先的半导体解决方案提
供商之一,其产品广泛应用于移动通信、家庭娱乐、无线通信和物联网等
领域。
MTK驱动的作用是连接计算机与MTK芯片设备之间的通信,使得计算
机可以与MTK芯片设备进行数据交互和控制。
这些设备包括智能手机、平
板电脑、物联网设备以及其他使用MTK芯片的电子产品。
MTK驱动是连接
计算机和这些设备之间桥梁的关键。
MTK驱动负责与芯片设备之间的通信协议,包括数据传输、设备识别、设备控制等功能。
它通过USB接口与计算机连接,并与操作系统进行交互,将设备的功能暴露给计算机使用者。
MTK驱动的正常工作对于设备的功能
和性能至关重要。
MTK驱动的开发是一个复杂而严谨的过程。
开发人员需要深入研究MTK芯片的架构和规范,并编写适配特定芯片的驱动程序。
他们还需要进
行严格的测试和验证,以确保驱动程序在各种情况下都能正常工作。
同时,开发人员还需要与MTK芯片的生产商保持密切合作,获取相关技术支持和
更新。
总之,MTK驱动是一种桥梁,将计算机与MTK芯片设备连接起来。
它
通过通信协议实现数据传输和设备控制,使得用户可以便捷地使用MTK芯
片设备。
MTK驱动的适应性和兼容性优势使得其成为移动通信和物联网领
域的重要组成部分。
同时,MTK驱动的安装和更新也是用户使用设备时需
要考虑的重要问题。
MTK平台驱动调试笔记

分类:LINUX一、【一】调试串口的设置驱动的调式过程经常需要通过trace工具看log的,trace前需要修改手机串口,有以下三种方法设置串口1 通过手机进入工程模式设置2 修改代码,修改Nvram_user_config.c中的NVRAM_EF_PORT_SETTING_DEFAULT[]3.通过META工具修改在连上meta:左上角选中NVRAM Editor,在跳出的对话框里选择other LID,再选择NVRAM_EF_PORT_SETTING_LID,接下来read from nvram,对话框右边就会出现串口的设置情况,对调tst_port_ps(输入0)和ps_port(输入99)的值,二【【二】关于gpio口Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。
代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):GPIO_ModeSetup(25, 0);设置GPIO25为模式0GPIO_InitIO(1,25);初始化GPIO25方向为输出GPIO_WriteIO(0, 25 );设值GPIO25输入低电平0三、【三】键盘设置1)键盘定义Keypad_def.c如果定义CUST_NEW,工具中的键盘定义对应在改文件里的KEYPAD_MAPPING(keypad_drv.h);2)硬件键盘定义与软件mmi键盘的对应nKeyPadMap[](Keybrd.c)3)工程模式键盘测试函数EntryFMKeypadTest()修改键盘测试时界面显示的键的名称1. 做好上面的第一第二两步2. FactoryModeSrc.c开始部分定义添加的键所要显示的名称,值,分别应用到keypad_layout[](确定要显示的位置),keypad_value[]3.在EntryFMKeypadTest()函数中的数组IdleScreenDigits[]里添加要显示的键4)如果要设置一个键不管在什么界面下都起作用的话(如手电筒开关或则其他需求)就需要在键盘的事件响应函数static voidKeyEventHandler(KEYBRD_MESSAGE *eventKey)里设置,根据键值条用相应的响应函数,不过该函数及时在锁屏状态下也会执行的,需要根据需要添加条件语句四、关于LCDlcm背光驱动分为两种控制方式:1. pwm这个是通过调占空比来调节亮度的持续信号;2. PFM这个是通过脉冲的个数来控制LCM背光亮度。
Mediatek平台软件(驱动)开发总结

Mediatek平台软件(驱动)开发总结关于Mediatek方案总所周知,Mediatek平台凭借其低成本、高集成以及较低的开发门槛和较短的开发周期受到众多(手机、平板)方案公司的青睐。
目前Mediatek主要涉及移动通讯(Mobile Communications):包括智能手机和平板电脑;家庭娱乐领域(Home Entertainment):包括DVD、数字电视等。
在智能手机领域,Mediatek自从2009年发布第一个智能手机平台,到目前已经发布了包括单核、双核、四核、八核,众多的手机平台;而对于需求日趋旺盛的平板电脑领域,Mediatek也是迎合市场发布了MT8382、MT8389等一系列平板电脑平台。
其实,由于现在平板和手机的界线越来越模糊,功能基本一致(平板也能打电话),因此Mediatek发布的平板芯片基本上是在手机芯片的基础上稍加修改而来(或是只是单纯换一个名字,如MT6589和MT8389)。
不过对于一般的平板产品来说,都会追求更大的屏幕和良好的续航性,但是由于平板有更大的尺寸,因此可以通过增加电池容量来解决续航性的问题。
在家庭娱乐领域,Mediatek也有所涉猎。
如DVD,主要集成音频/视频解码和微处理器的MT1389方案;另外,在智能电视领域,Mediatek推出的MT5396等平台也在长虹、海信等品牌发布的智能电视产品上得到了应用。
从发布的一些参数来看,这款芯片为双核心、搭载具有一定3D性能的GPU(Mali-400MP),支持摄像头(ISP能力有限),应该是对于智能电视领域量体裁衣的一个平台。
如果其他产品使用Mediatek平台,对于一些不用的功能,首先在硬件上弃用即可(去掉底层驱动);在软件方面,可以禁掉相应服务和删除对应APK。
由于Android系统对各个功能都是模块化管理,因此理论上可以删减各个不需要的功能模块。
项目流程站在软件(驱动)开发人员的角度来说,一个完整的Mediatek方案项目大致流程为:①选择某个平台:这个选择可能是方案公司考虑Mediatek各个平台稳定度,开发前景、价格因素做出的选择;也可能是客户根据市场情况做出的决定;②外围芯片、设备的选取:包括FLASH(Mediatek会定期release一个表格,关于每个平台上认证过的每个FLASH型号)、LCD、camera(每个平台支持的LCD分辨率、camera sensor 像素都不同)、Touch Panel、常用传感器(Gsensor、Psensor、Lsensor)、PMIC、WiFi&BT&FM 芯片等;③获取代码:向Mediatek获取特定平台特定Android版本的完整源码,如果某个版本出现平台问题,Mediatek会释放相关patch;方案公司可以根据自身需要选择打上对应patch。
MTK平台驱动基本介绍

MTK平台驱动基本介绍----------MTK6239一:LCD文件位于custom\drv\LCD以菲利浦的一款240 X 400的屏为例介绍如何添加LCD驱动SIMCOM38_08B_GPRS.makLCD_MODULE = SUNRISE_2827TI_LCMMAIN_LCD_SIZE = 240 X 400Option.makCOM_DEFS_FOR_SUNRISE_2827TI_LCM = ILI9326 COLOR_LCD SUNRISE_2827TI_LCMTFT_MAINLCD WQVGA_MAINLCD在custom\drv\LCD添加SUNRISE_2827TI_LCM文件夹,下面有5个文件。
文件名同MTK 系统自带的(lcd.c、lcd_hw.h、lcd_sw.h、lcd_sw_inc.h、lcd_sw_rnd.h)。
SUNRISE -------------- 屏的厂家ILI9326 ----------------- 屏的驱动芯片LCM ---------------------- 屏240 X 400 ----------------- 屏的分辨率COLOR_LCD ---------- 彩色TFT_MAINLCD ------- 屏的类型,对应的还有CSTN,OLED。
目前主要是TFTWQVGA_MAINLCD ---- 屏的分辨率做了上述修改以后,编译时,lcd驱动就对应SUNRISE_2827TI_LCM文件夹里的驱动。
文件夹里的5个文件,通常lcd_hw.h和lcd_sw_rnd不需要修改,lcd_sw_inc.h只是定义屏的分辨率。
如下:#ifdef __MMI_MAINLCD_128X128__#define LCD_WIDTH 128#define LCD_HEIGHT 128#elif (defined(__MMI_MAINLCD_128X160__))#define LCD_WIDTH 128#define LCD_HEIGHT 160#elif (defined(__MMI_MAINLCD_176X220__))#define LCD_WIDTH 176#define LCD_HEIGHT 220#elif (defined(__MMI_MAINLCD_240X400__))#define LCD_WIDTH 240#define LCD_HEIGHT 400#endif#define UI_DEVICE_WIDTH LCD_WIDTH#define UI_DEVICE_HEIGHT LCD_HEIGHT修改比较多的是lcd.c和lcd_sw.h:lcd_sw.h#define LCD_CMD_DMA_MODE --------- 是否使用DMA方式?(DMA简单,速度快,通过MTK的寄存器进行操作,但灵活性差;非DMA方式,直接对地址操作,灵活性好,但速度会有影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
The main reason is LCD size and transform speed
For example: 256*256 LCD with 12 bits ADC converter
The distance between two adjacent pixels could reach 16 units (ADC coordinate)
10
Driver: MTK Calibration(1/2)
2 points calibration with extra one point determination
Calibration Flow Calibration Point Position
Avoid boundary points Use relative ADC difference to verify calibration points ⇒ ADC difference is in proportion to coordinate difference
9
Driver: 2-points Calibration(2/2)
Coord. at ACD X - axis Coord. at LCD X - axis
distance
≈
distance
Hence we need two predefined calibration points to get a, b, c, d P = aX + b Q = cY + d
MTK Touch panel
2010/10/14
Agenda
Introduction
Features Files Framework
Driver Touch Panel Introduction Touch Panel Calibration Process Touch panel event
Flow diagram Exercise: tocuh panel event
2
Features
Enable touch panel in project(CUSTOM_PROJECT.mak)
TOUCH_PANEL_SUPPORT = TRUE HAND_WRITING = MMI_HANWANG # MMI_HANWANG, MMI_PENPOWER
Enable touch panel in MMI(MMI_features.h,do not modify)
Wgui_draw_manager.c (plutommi\mmi\gui\gui_src) Wgui_draw_manager.h (plutommi\mmi\gui\gui_inc) Wgui_touch_screen.c (plutommi\mmi\gui\gui_src) Wgui_touch_screen.h (plutommi\mmi\gui\gui_inc) CustCoordinates.c (plutommi\customer\custresource) EditorPen.c (plutommi\mmi\editorpen\editorpensrc)
Touch_panel_custom.c (custom\drv\misc_drv\BOARD_VER) Touch_panel_custom.h (custom\drv\misc_drv\BOARD_VER) Touch_panel_spi.c (custom\drv\misc_drv\BOARD_VER) Touch_panel_spi.h (custom\drv\misc_drv\BOARD_VER)
How to get a touch point coordinate?
3. Use calibration data to transformed ADC value into coordinate. 4.Turn on X+, X- and repeat step 1 and step 2.
8
Driver: 2-points Calibration(1/2)
#ifdef TOUCH_PANEL_SUPPORT #define __MMI_TOUCH_SCREEN__ #endif #ifdef __MMI_TOUCH_SCREEN__ #define __MMI_TOUCH_DIAL_SCREEN__ #define __MMI_DRAW_MANAGER__ #define __MMI_WGUI_CSK_ENABLE__ #endif
13 SPI_DOUT_PIN
Touch panel event flow(Touch panel task)
14
Touch panel event flow(MMI task)
15
Exercise: touch panel event
#include #include #include #include #include #include void void void void void void void void "MMI_features.h" "PixtelDataTypes.h" "wgui_categories.h" "gdi_include.h" "lcd_sw_rnd.h" "wgui_draw_manager.h"
my_pen_up_hdlr(mmi_pen_point_struct point); my_pen_down_hdlr(mmi_pen_point_struct point); my_pen_move_hdlr(mmi_pen_point_struct point); my_pen_abort_hdlr(mmi_pen_point_struct point); my_pen_repeat_hdlr(mmi_pen_point_struct point); my_pen_long_tap_hdlr(mmi_pen_point_struct point); start_handwriting(); end_handwriting();
11
Driver: MTK Calibration(2/2)
Factory Mode
12
Driver: Custom const variables
Members TOUCH_PANEL_ADC_X_START TOUCH_PANEL_ADC_X_EDN TOUCH_PANEL_ADC_Y_START TOUCH_PANEL_ADC_Y_EDN TOUCH_PANEL_COORD_X_START TOUCH_PANEL_COORD_X_EDN TOUCH_PANEL_COORD_Y_START TOUCH_PANEL_COORD_Y_EDN TOUCH_PANEL_START_BIT TOUCH_PANEL_X_PLUS TOUCH_PANEL_Y_PLUS TOUCH_PANEL_ADC3 TOUCH_PANEL_ADC4 TOUCH_PANEL_12BIT_SAMPLE TOUCH_PANEL_8BIT_SAMPLE TOUCH_PANEL_DIFF_MODE TOUCH_PANEL_SINGLE_MODE TOUCH_PANEL_PWD_ENBLE TOUCH_PANEL_IRQ_DISABLE TOUCH_PANEL_PWD_DISABLE TOUCH_PANEL_PWD_RESER SPI_DIN_PIN SPI_CLK_PIN Description ADC of the left-upper x coordinate ADC of the right-lower x coordinate ADC of the left-upper y coordinate ADC of the right-lower y coordinate Minimum value of the x coordinate Maximum value of the x coordinate Minimum value of the y coordinate Maximum value of the y coordinate Start bit setting of touch panel module X plus setting of touch panel module Y plus setting of touch panel module ADC3 setting of touch panel module ADC4 setting of touch panel module 12 bits sample setting of touch panel module 8 bits sample setting of touch panel module Differential mode setting of touch panel module Single-ended mode setting of touch panel module Power down enable setting of touch panel module Interrupt disable setting of touch panel module Power down disable setting of touch panel module Reset setting of touch panel module GPIO used to be input GPIO used to be clock GPIO used to be output
y
( X ,Y )
q
(P , Q )
p
( P, Q) : LCD coodrinare ( X , Y ) : Touch panel coodrinare Assumption 1: X, Y are not correlative Assumption 2 : The linearity error is small enough to be ignored P = aX + b Q = cY + d