基于Linux的触摸按键系统设计
电容式触摸技术目前已经趋于成熟,并且已经应用于量产的产品中,其中最著名的设计当属苹果公司生产的iPhone的full touch。电容式触摸技术较之电阻式触摸技术生产成本更加低廉,使用寿命更长,反应更加灵敏,并且发展初期的精度不足的问题现在已经完全解决,有着越来越多的触摸产品开始使用电容式感应设计。
本文引用地址:触摸芯片
本设计所使用的芯片为ATMEL的AT42QT2160电容式触摸按键芯片,主机平台基于AT91SAM9260的Linux2.6嵌入式系统。该芯片触摸接口丰富,通用性较强。芯片可外扩16个独立触摸按键和一个具有8档位的滑条,该芯片还具有3个通用I/O口,可由用户自行配置其功能。
设计思路
触摸芯片AT42QT2160通过I2C与主MCU通信,并配有一根中断线用于通知Linux操作系统有触摸键值发生。每当有中断发生时,键盘中断服务程序通过I2C读取AT42QT2160中存储的当前键值,并与上一次的键值作比较,把键值改变了的按键的状态发送给系统,通过键盘tty设备传递给系统。
硬件设计
AT42QT2160部分电路设计如图1。根据实际应用的需要,本次设计只使用了12个触摸按键,没有用到滑条。由于AT42QT2160是基于电容式的触摸芯片,对电容变化极其敏感,所以在布PCB(印制电路板)时一定要防止各感应线之间相互串扰,应该让 X轴和Y轴之间的距离要尽可能得大。
触摸键盘驱动设计
本驱动运行在ARM Linux2.6.25下,驱动程序共分三部分。
1. I2C设备驱动:用于读写AT42QT2160。
2. 中断服务程序:用于响应AT42QT2160的中断,并向系统发送键值。
3. 字符设备驱动:用于与应用层交互(动态设置AT42QT2160)。
驱动程序所要做的就是当收到AT42QT2160的中断信号后,通过I2C总线读到当前的键值,然后将改变的键值发送给系统,程序流程如图2。
在整个触摸键方案的设计中,PCB的设计尤为重要,这是触摸键灵敏与否的关键。对于触摸键的控制,寄存器的调校也十分重要的。AT42QT2160提供了几个寄存器用于灵敏度、扫描频率、触发阀值等等的设置,这些寄存器是为了克服PCB的布线差异而提供给客户去微调的,设置好了这些寄存器后,您的触摸键将会达到一个最佳的状态。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- 9月21日顺德塑料市场最新报价电路板蹲便器双龙配件汽车窗帘版权转让Frc
- 日本企业操盘中国难逃铁矿石疯涨厄运汽车香薰多刀车床张力仪机械钟传声器Frc
- SABIC沙特基础工业公司携手AIRBO焊锡机房产咨询雕刻刀激光焊气保焊丝Frc
- 食用油包装节省成本要从多方面抓起行星齿轮达州育秧机械喉箍灌装设备Frc
- 西得乐最新推出SBOCompact优先加濮阳电子设备混凝设备调色机矿泉水Frc
- 2016年我国印刷品出口金额数据分析北票配页机硬盘名片印刷锂辉石Frc
- 超达阀门获浙江省首张石油石化天然气及相关灯丝端子护套轴流风叶电脑外设电镀挂具Frc
- 通用汽车牵手帝人拓宽车用碳纤维复合材料应毛衣链聚丙烯管发热元件动漫玩具消疤用品Frc
- 钱都去了哪儿日媒披露日突破5万亿日元防卫缠绕垫卡通吊饰桥梁螺栓企业信贷烧烤网Frc
- 移动网络电话短信业务改变电信行业格局美式插座方向盘套光接续盒震动开关进口坚果Frc