触摸屏的电路还是比较复杂的,暂时先不考虑其具体电路,我们先总结出和CPU相连的管脚。
管脚 | 功能 | 与S3C相连的管脚 |
RESET_IN | 复位信号 | |
LCD_PWREN | LCD电源使能 | GPG4 |
ENABLE | ||
VSYNC | 水平异步输入信号(RGB) | |
HSYNC | 垂直异步输入信号(RGB) | |
DOTCLK | 时钟信号(上升沿发送数据) | |
TSXM | X- | |
TSXP | X+ | |
TSYM | Y- | |
TSYP | Y+ |
触摸屏工作原理:
测量X坐标:从XP输出地电压给X+端,从XM输出的地电位给X-端;从YP输入按压点电压。
测量Y坐标:从YP输出地电压给Y+端,从YM输出的地电位给Y-端;从XP输入按压点电压。
u S3C2440的AD转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换为10位数字量
u 在AD转换时钟频率为2.5MHz时,其最大转化率为500KSPS(每秒500K次采样)。
u 输入电压0-3.3V
u AD支持片上采样、保持功能和掉电模式
u AD转换接口中的AIN[7]通道和AIN[5]通道为触摸屏的模拟信号输入口。
(1) 普通转换模式
用于一般的AD转换,不用于触摸屏。转换结束后,数据保存在ADCDATA0中的XPDATA域。
(2) 分离的X/Y坐标转换模式
分两步进行X/Y坐标转换,其转换结果分别存于ADCDATA0中XPDATA域中和ADCDATA1中YPDATA域中,并且均会产生INT_ADC中断请求。
(3) 连续X/Y坐标转换模式
X坐标转换结束后自动启动Y坐标转换,其转换结果分别存于ADCDATA0中XPDATA域中和ADCDATA1中YPDATA域中,并且会产生INT_ADC中断请求。
(4) 等待中断转换模式
在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生INT_ADC触摸屏中断请求。
rADCDLY=50000; //Normal conversion mode delay about (1/3.6864M)*50000=13.56ms
rADCCON=(1<<14)+(ADCPRS<<6); //ADCPRS En, ADCPRS Value
rADCCON=(1<<14)+(ADCPRS<<6); //ADCPRS En, ADCPRS Value
rADCTSC=0xd3; //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En【不通过读取操作启动ADC,不使能ADC。】
TQ2440的坐标系定义如下:
我对触摸屏进行了简单的范围转换
未校正前采集的数据如下:
X轴 | Y轴 |
109 | 76 |
118 | 79 |
119 | 82 |
106 | 76 |
507 | 507 |
505 | 517 |
501 | 514 |
901 | 948 |
894 | 937 |
896 | 943 |
将x轴乘以0.2667,将y轴乘以0.337得到转换后的坐标
X轴 | Y轴 |
29.0703
| 25.612 |
31.4706
| 26.623 |
31.7373
| 27.634 |
28.2702
| 25.612 |
135.2169
| 170.859 |
134.6835
| 174.229 |
133.6167
| 173.218 |
240.2967
| 319.476 |
238.4298 | 315.769 |
238.9632 | 317.791 |
这样就可以使整个屏幕的坐标控制在(0,0)到(240,320)的范围内。