许多客户问到触摸屏的连接及驱动问题,另外还有同时使用触摸屏和通用ADC,特此分享如下:
1. overview
AM335x TS controller支持如下四种:
• 8 general-purpose ADC channels 即8路通用的ADC
• 4-wire TSC with 4 general-purpose ADC channels 即4路作为4线触摸屏连接,4路作为通用ADC
• 5-wire TSC with 3 general-purpose ADC channels 即5路作为5线触摸屏连接,3路作为通用ADC
• 8-wire TSC 即8路作为8线触摸屏连接
2. HW connection
AM335X TS controller与各种类型触摸屏连接如下:
关于4线触摸屏的连接方式如下:
5线触摸屏连接如下:
8线触摸品连接如下:
3. Linux driver
关于触摸屏的驱动说明,可以参考http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver's_Guide
需要说明的是SDK-5.07.00.00开始,驱动中同时支持TS和通用ADC,即可以支持4线触摸屏+4路通用ADC、5线触摸品+3路通用ADC、8线触摸屏。
对于触摸屏的原理,可以参考文章《Using resistive touch screens for human/machine interface》
http://www.ti.com/lit/an/slyt209a/slyt209a.pdf
关于Touch-screen acquisition flowchart,见下图
需要补充说明的是TS的驱动在linux/drivers/mfd/ti_tscadc.c
关于platform data在linux/arch/arm/mach-omap2/board-am335xevm.c中有如下结构体,默认是支持4线屏的。如果支持其他,需要修改下述结构体中的参数。
/* TSc controller */
static struct tsc_data am335x_touchscreen_data = {
.wires = 4,
.x_plate_resistance = 200,
.steps_to_configure = 5,
};
static struct mfd_tscadc_board tscadc = {
.tsc_init = &am335x_touchscreen_data,
};
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |