ADC和触摸屏接口
特性:
1. 10位的ADC
2. 最大转化速率:500 KSPS
3. 模拟输入范围:0 ~ 3.3V
4. 支持分别的X/Y坐标转化模式
5. 支持自动的X/Y转化模式
6. 支持等待中断模式
ADC转化和触摸屏接口的示意图:
注意:
当触摸屏接口用到时,XM或者YM才会连接到触摸屏I/F的地。
当触摸屏接口不被用到是,XM和YM会连接到普通模式下的模拟输入端。
功能描述:
A/D转化时间:
当PCLK为50MHZ时,预分频的值为49,10位的转化时间为:
A/D converter freq. = 50MHz/(49+1) = 1MHz
Conversion time = 1/(1MHz / 5cycles) = 1/200KHz = 5 us
注意: AD 的最大时钟为2.5MHz,所以转化率最大为500KSPS。
触摸屏接口模式:
- 正常转化模式:
单转化模式是最接近通用ADC转化的。这种模式可以通过操作ADCCON(ADC控制寄存器)来初始化,通过读写ADCDAT0(ADC数据寄存器0)来完成。 - 分离的X/Y转化模式
触摸屏控制器可以通过转化模型,分离的X/Y转化模式的操作方法如下:X坐标模型写X坐标的转化数据到ADCDAT0,同时触摸屏接口产生一个中断源到中断控制器。
Y坐标模型写Y坐标的转化数据到ADCDAT1,同时触摸屏接口产生一个中断源到中断控制器。 - 自动(连续)X/Y坐标转化模式
自动(连续)X/Y坐标转化模式的操作如下:触摸屏控制器连续转化接触点的X坐标和Y坐标。然后触摸屏控制器将X坐标的测量值写入ADCDAT0,将Y坐标的测量值写入ADCDAT1,触摸屏产生中断源到自动坐标转化模式的中断控制器。 - 等待中断模式
当笔按下时,触摸屏控制器产生中断(INT_TC),等待中断模式要设置寄存器ADCTSC=0xD3;此时XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_EN。
触摸屏控制器产生中断信号后,等待中断模式必须清零(XY_PST设置为无操作模式)。
备用模式:
当ADCCON的【2】被设置为1时进入备用模式,在这个模式中,AD转化操作被挂起,ADCDAT0,ADCDAT1含有先前转化的值。
编程注意:
- AD转化的数据可以通过中断或者轮询的方式查到。而中断方式的全部时间为:从AD转化开始到读取转化的值,而这中间可能有延迟因为中断服务例程的返回时间和数据的获取时间。而轮询方式,通过检测ADCCON的[15]位——结束转化标志位,所以这种方式从ADCDAT读取时间是可定的。
- 提供另一种启动ADC转化的方法,将ADCCON[1]-AD转化开始于读模式-设置为1,AD转化自动开始当转化数据被读到。
ADC和触摸屏接口寄存器
ADC控制寄存器(ADCCON)
ADC CONTROL REGISTER (ADCCON)
ECFLG [15] 转化结束标志位(只读)
0=ADC转化进行中
1=ADC转化结束
PRSCEN [14] AD转化预分频使能
0=不使能
1=使能
PRSCVL [13:6] 预分频系数,取值范围:0~255
注意:ADC频率应该被设定小于PCLK的1/5(例如:如果PCLK为10MHZ,那么ADC的频率应该小于2MHZ)
SEL_MUX [5:3] 模拟输入通道选择:
000 = AIN 0
001 = AIN 1
010 = AIN 2
011 = AIN 3
100 = YM
101 = YP
110 = XM
111 = XP
STDBM [2] standby模式选择
0 = 正常操作模式
1 = Standby 模式
READ_ START [1] AD转化开始于读
0 =不使能开始于读
1 = 使能开始于读
ENABLE_START [0] AD转化开始使能(如果READ_ START位使能,这一位将不可用)
0=不操作
1=AD转化开始,当ADC启动后这一位将被清零
注意:
- 当触摸屏端YM,YP,XM,XP不被使能时,这些端口可以被用来作为ADC的虚拟输入端口(AIN4,AIN5, AIN6,AIN7);
- 当从Standby模式转化到正常模式时,ADC的预分频要提前3个ADC时钟使能。
ADC触摸屏控制寄存器(ADCTSC)
ADC TOUCH SCREEN CONTROL REGISTER (ADCTSC)
UD_SEN [8] 检测笔抬起或者按下状态
0 = 检测笔按下中断信号
1 =检测笔抬起中断信号
YM_SEN [7] YM 开关使能
0 = YM输出驱动不使能.
1 = YM输出驱动使能
YP_SEN [6] YP 开关使能
0 = YP输出驱动不使能.
1 = YP输出驱动使能
XM_SEN [5] XM 开关使能
0 = XM输出驱动不使能.
1 = XM输出驱动使能
XP_SEN [4] XP 开关使能
0 = XP输出驱动不使能.
1 = XP输出驱动使能
PULL_UP [3] Pull-up开关使能
0 = XP Pull-up使能.
1 = XP Pull-up不使能.
AUTO_PST [2] 自动连续转化X坐标和Y坐标
0 = 正常的ADC转化
1 =自动连续转化X坐标和Y坐标
XY_PST [1:0] 手动测量X坐标或Y坐标
00 = 无操作
01 = X坐标测量
10 = Y坐标测量
11 = 等待中断模式
注意:
1. 当在等待中断模式时,XP_SEN位应该被设置为1(XP输出不使能)同时PULL_UP位应该被设置为0(XP Pull_up使能)
2. 只有当自动X/Y转化时,AUTO_PST位被设置为1.
3. 当在睡眠模式时,XP,YP不应该连接到地端以防止漏电流。因为XP,YP还将是高的态即使在睡眠模式。在X/Y坐标转化时,触摸屏端:
ADC开始延迟寄存器(ADCDLY)
ADC START DELAY REGISTER (ADCDLY)
DELAY [15:0] 正常模式, X/Y坐标模式,自动坐标模式->ADC开始转化延迟值
注意:不能是0
ADC转化数据寄存器(ADCDAT0)
ADC CONVERSION DATA REGISTER (ADCDAT0)
UPDOWN [15] 在等待中断模式下,笔抬起或者按下状态
0 = 笔按下状态
1 = 笔抬起状态
AUTO_PST [14] 自动转化X坐标和Y坐标
0 = 正常ADC转化模式
1 = 连续测量X坐标和Y坐标
XY_PST [13:12] 手动测量X坐标或Y坐标
00 = 无操作
01 = X坐标测量
10 = Y坐标测量
11 = 等待中断模式
Reserved(保留) [11:10] 保留
XPDATA (正常ADC) [9:0] X坐标转化数值(包括正常ADC转化数值)
取值范围: 0 ~ 3FF
ADC转化数据寄存器(ADCDAT1)
ADC CONVERSION DATA REGISTER (ADCDAT1)
UPDOWN [15] 在等待中断模式下,笔抬起或者按下状态
0 = 笔按下状态
1 = 笔抬起状态
AUTO_PST [14] 自动转化X坐标和Y坐标
0 = 正常ADC转化模式
1 = 连续测量X坐标和Y坐标
XY_PST [13:12] 手动测量X坐标或Y坐标
00 = 无操作
01 = X坐标测量
10 = Y坐标测量
11 = 等待中断模式
Reserved(保留) [11:10] 保留
XPDATA (正常ADC) [9:0] Y坐标转化数值(包括正常ADC转化数值)
取值范围: 0 ~ 3FF
ADC触摸屏抬起-按下中断检查寄存器(ADCUPDN)
ADC TOUCH SCREEN UP-DOWN INT CHECK REGISTER (ADCUPDN)
TSC_UP [1] 笔抬起中断
0 = 没有笔抬起状态
1 = 笔抬起中断发生
TSC_DN [0] 笔按下中断
0 = 没有笔按下状态
1 = 笔按下中断发生