一、ADC与触摸屏控制器结构框图
1、S5PV210一共支持10路模拟输入,分别为AIN0-AIN9.其中AIN0和AIN1是只做模拟输入的,AIN2-AIN9分别可以支持2个电阻式触摸屏,所以这个就是上个博客中电阻式触摸屏的
第一种接口,将电阻触摸板传感器直接与SoC控制器相连。所以4个模拟输入引脚负责一个电阻式触摸屏。
2、从上面可以看出来,整个控制器由多个部分组成。AD转换和触摸屏控制部分有2个附属单元。其中一个是反向控制AINn引脚的逻辑(图中的箭头),主要作用是在触摸屏获取坐标
的过程中分时给xy方向供电和测量;第二个是中断产生部件,对于AIN1和AIN0来说,当AD转换完成之后就会通过INT_ADC0和INT_ADC1中断信号通知CPU可以来读取数据了,而
对于两组触摸屏来说,如果X/Y轴数据转化完成之后会通过INT_PEN0和INT_PEN1中断信号来通知CPU读取坐标信息,但是对于触摸屏被按下而产生的中断是另一个中断信号,其实I2C
从设备的硬件接口会有一个中断引脚连接到SoC中的一个外部中断引脚上。
3、两种工作模式:Normal Conversion Mode (AUTO_PST = 0, XY_PST = 0) & Separate X/Y Position Conversion Mode (AUTO_PST = 0, XY_PST = control)
(1)AD转换器有2种工作模式:正常操作模式和分时X/Y位置转换模式。
(2)正常操作模式用作普通的AD转换,分时X/Y位置转换模式用作电阻式触摸屏。正常AD转换下将AD转换值放在TSDATX中,在分时X/Y模式下会将X/Y坐标分别放在TSDATX和
TSDATY中。
(3)对于AIN0和AIN1来说没有这么多模式,他们只能工作在普通模式;对于AIN2-AIN9来说,因为被复用,所以才有2种模式。如果我们将这........几个引脚用作普通AD转换
则配置为普通模式,如果用作电阻式触摸屏检测,则配置成分时X/Y模式。
4、中断参与
(1)其实普通AD转换和触摸屏AD转换本身都可以不在中断参与下完成。
(2)普通AD转换如果不要中断,那就去查询。开启一次转换后然后不断查询标志位,直道AD转换完硬件自动置位标志位后我们才去读取转换值就不会错。当然也可以用中断,控
制器提供了一个相应的中断给普通AD转换。
(3)触摸屏也可以用或者不用中断。对于SoC来说永远不知道人会什么时候按下或者弹起触摸屏,所以触摸屏的按下/弹起对SoC来说是纯粹的异步事件。对于这种情况SOC只有2
种解决方案:轮询和中断。
5、主要寄存器
(1)TSADCCONn寄存器
start by read就是当AD转换完成之后,如果CPU从相应的寄存器中读走转换完的数据之后,硬件会自动开启下一次AD转换。
ENABLE_START位,如果我们将该位值1开启一次AD转换之后,该位会被自动置为0
(2)TSCONn:主要是用来控制在测量X轴和Y轴坐标时,两个面板电极供电的问题
(3)TSDLYn:看名字是用来做延时的,这个寄存器主要是用来实现当完成一次AD转换后不要立马就开启下一次AD转换,而是需要延时一段时间。指定TS0 - ADC启动或间隔延迟寄存器
(4)TSDATXn:触摸屏的X轴AD转换完成后的数据放在这个寄存器中,如果我们只是做为普通的AD转换,那么这个数据也是存放这个寄存器中
(5)TSDATYn:触摸屏的Y轴AD转换完成后的数据放在这个寄存器中
(6)CLRINTADCn:清除中断挂起标志位,对应上图中的INT_ADCn
(7)CLRINTPENn:清除中断挂起标识位,对应上图中的INT_PENn