Keypad驱动实验
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-8-26
第13页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验步骤
(5)测试键盘按键。根据输入通道寻找相应的节 点文件,如果没有进行多次设备加载和卸载,与 input3相对应的节点文件应该是/dev/event3。如果进 行了多次设备加载核卸载,就没有这样的对应关系。 可使用cat或者hexdump命令进行测试。
2014-8-26
第3页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验预习要求
预习按键驱动编写
了解键盘电路
阅读<Documentation/input>目录下的说明文件,了 解Linux input体系
第15页
版权所有 © 2007
广州致远电子有限公司
阅读<drivers/input>目录下的文件,了解input驱动 的具体实现
了解设备驱动的Makefile文件编写
2014-8-26
第4页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
第5页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验原理
矩阵键盘电路
◇行扫描线GPIO[100、101、102、97]接下拉电阻,作为输入 感知线。
◇列扫描线GPIO[103、104、105、106]作为输出选通线。
KP_M KOUT 3 GP10 6
1 2 3 4
RP22 1 0K S13 3 S14
S1 0 S2 4 S3 8 S4 E n ter_ C
S5 1 S6 5 S7 9 S8 -_ D
S9 2 S10 6 S11 DOT _ A S12 * _E
8 7 6 5
GP10 0
KP_M KIN0
7 S15 +_B S16 /_ F
第14页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验步骤
(6)另外,可编写应用程序对键值进行读取,或 者将键盘作为Qtopia的键盘输入,在Qtopia下进行键 盘测试。
2014-8-26
[root@MagicARM270 keypad]# hexdump /dev/event3 00026d0 1b61 0000 1dbf 000d 0000 0000 0000 0000 00026e0 1b64 0000 2515 0000 0001 000b 0001 0000
2014-8-26
2014-8-26
第12页Biblioteka 版权所有 © 2007广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验步骤
(4)改变系统输出级别,使用insmod命令加载 mgc270kpd.ko文件。
[root@MagicARM270 keypad]# klogd –c 7 [root@MagicARM270 keypad]# insmod mgc270kpd.ko Using mgc270kpd.ko input: MagicARM270 Keypad as /class/input/input3 input: MagicARM270 Keypad Registered 从输出信息判断键盘的输入通道,上述信息显示键盘作为 input3与系统挂接。
GP10 1
KP_M KIN1
GP10 2
KP_M KIN2
GP97
KP_M KIN3
2014-8-26
第7页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验原理
矩阵键盘扫描
◇这里介绍最简单直接的矩阵键盘按键识别法:行(列)扫 描法。
◇当没有按键按下的时候,所有输入感知线都是低电平。 ◇输出选通线输出高电平,如果有键按下,输入感知线就被 拉高。
2014-8-26
第8页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验原理
wwwembedtoolscom2018121实验原理确定有键按下后依次将输出选通线输出高电平然后逐行读取输入感知线的电平如果某一行为高电平则该行列交叉出的按键就是被按下的按键
MagicARM270教学实验开发平台
Keypad驱动实验
实验目的
巩固Linux中input驱动体系结构
◇arm-linux-gcc-3.4.3交叉编译器 ◇Linux-2.6.18源代码
2014-8-26
第2页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验内容
为MagicARM270上的矩阵键盘编写驱动,为每个按 键赋予特定的键值,将键盘作为输入设备,进行测 试。
Keypad驱动实验
实验原理
关于键值。
◇键值的设定,完全由用户决定;
◇如果希望将键值与标准键盘键值一致的话,必须按照系统 定义的键值进行安排。各键值的定义在<include/ linux/input.h>文件中。
2014-8-26
第10页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
掌握在Keypad驱动编写
2014-8-26
第1页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验设备
硬件
◇PC机(带网卡)
◇MagicARM270教学实验开发平台
1台
1套
软件
◇RedHat Linux 9.0操作系统(完全安装)
确定有键按下后,依次将输出选通线输出高电平, 然后逐行读取输入感知线的电平,如果某一行为高 电平,则该行列交叉出的按键就是被按下的按键。 根据设定的键值表即可确定键值。
2014-8-26
第9页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
2014-8-26
第6页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验原理
矩阵键盘电路
J2 -Po rt
KP_M KOUT 0 GP10 3
KP_M KOUT 1 GP10 4
KP_M KOUT 2 GP10 5
实验原理
PXA270芯片内置Keypad控制器,通过设置其寄存器, 控制器能够检测并获取按键。
◇在按键较多的情况下,用其内置的键盘控制器来驱动按键, 是非常高效的办法。 ◇在MagicARM270上,只接了16个按键,在这种情况下,采 用IO方式来驱动按键,实现起来更为简单明了。
2014-8-26
Keypad驱动实验
实验步骤
(1)新建/pxa270/nfs/driver/kaypad目录,在其中建 立mgc270kpd.c文件,并编写驱动程序。 $ mkdir /pxa270/nfs/driver/keypad $ cd /pxa270/nfs/driver/keypad $ vi mgc270kpd.c
2014-8-26
第11页
版权所有 © 2007
广州致远电子有限公司
MagicARM270教学实验开发平台
Keypad驱动实验
实验步骤
(2)编写Makefile文件,编译得到mgc270kpd.ko文件。 $ vi makefile $ make (3)启动MagicARM270,进行NFS连接,并进入 keypad目录。 [root@MagicARM270 ~]# mount –t nfs 192.168.0.94:/pxa270/nfs /mnt –o nolock [root@MagicARM270 ~]# cd /mnt/driver/keypad