触摸屏驱动之编写驱动程序

我们打开我们的核心板原理图可以看到这四根引脚分别接在xadcAIN2,3,4,5上面

搜索发现不需要配置什么寄存器

我们看一看芯片手册上的触摸屏那一章,我们的工作就是阅读那一章然后弄清楚那里面的东西就可以了


先来看一看内核自带的触摸屏驱动做了什么事情

ts.clock = clk_get(dev, "adc");
if (IS_ERR(ts.clock)) {
dev_err(dev, "cannot get adc clock source\n");
return -ENOENT;
}


clk_enable(ts.clock);

}

这里有个使能时钟的函数

干嘛用的呢,我们进去看一看


这里我们需要了解一个知识,在内核启动的时候,为了省电,会把一些不相关的模块给关掉,怎么关掉了,就是设置clkcon或者是(Clock Gating Control Register),我们要用之前必须把他们打开

这个clk_get 和clk_enable就是把这个给使能起来

The 10-bit or 12-bit CMOS Analog to Digital Converter (ADC) comprises of 10-channel analog inputs. It converts 
the analog input signal into 10-bit or 12-bit binary digital codes at a maximum conversion rate of 1MSPS with 
5MHz A/D converter clock. A/D converter operates with on-chip sample-and-hold function. ADC supports low 
power mode.  
这一段英文的核心思想就是说:这里说的就是这里面有个10位或者是12的mos ADC转换器 最大工作频率是5M

Power Supply Voltage: 3.3V 最大输入电压是3.3v 如果是3.3V的话输入进来就是10个一,如果是0的话就是0个0

每个刻度就是3.3v/10位  10位的话就是1024 就是3.3V/1024 最小刻度是3mv

接着往下看 


上图就是ADC与触摸屏接口的模块

10:1是什么意思呢,就是10路输入,选择一路出来。10路里面可以选择一路进行ADC转换

然后是我们的ADC转换时间

7.4.1  A/D CONVERSION TIME 
When the PCLK frequency is 66MHz and the prescaler value is 65, total 12-bit conversion time is as follows. 
• 
A/D converter freq. = 66MHz/(65+1) = 1MHz 
• 
Conversion time = 1/(1MHz / 5cycles) = 1/200kHz = 5us 


如果PCLK是66MHZ,我们之前不是说过ADC最大频率是5MZ吗,我们肯定要设置分频系数,把这个频率给降低下来

然后下面就是它提供的两个例子 the prescaler value is 65 如果这个分频系数是65的话,那么ADC的工作频率就是A/D converter freq. = 66MHz/(65+1) = 1MHz 

转换时间就需要Conversion time = 1/(1MHz / 5cycles) = 1/200kHz = 5us  1MHZ的5个周期 就是5us 

This A/D converter was designed to operate at maximum 5MHz clock, so the conversion rate can go up to 1MSPS.

如果你工作2.5M的话,你就把这个2.5M给带进去,就可以算出来1s中可以转换1M次


然后我们在往下看




上图是触摸屏接口模式

第一个是正常的转换模式(Normal Conversion Mode),正常转换模式就是一般的ADC操作,比如说你想测量某个电压。

第二种就是分离的xy坐标转换模式(Separate X/Y Position Conversion Mode) 这两种模式分为两个部分。一种是测量X坐标,一种是测量Y坐标。

进入X坐标模式需要采取的措施是

1.设置0x69到TSCONn寄存器

2.通过设置TSADCCONn开始转换

3.X坐标转换结束后能被中断给通知

4.从TSDATXn读出坐标转换数据

Y坐标差不多

第三种是 自动的联系的XY转换模式(Auto (Sequential) X/Y Position Conversion Mode)

当你进入这个模式之后,它会自动的帮你即转换x坐标也转换Y坐标

第四种就是等待中断模式,就是等待按下产生中断模式


我们按下触摸屏,你想让它产生中断,你就要让它处于等待中断模式

它干嘛勒 触摸屏会产生INT_PENn这个中断,当触摸笔按下的时候。怎么进入这个模式呢

The value of TSCONn[7:0] should be '0xd3' , 让这个值等于0xd3


standby mode这个是省电模式




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值