《轨迹球说明文档.doc》由会员分享,可在线阅读,更多相关《轨迹球说明文档.doc(4页珍藏版)》请在金锄头文库上搜索。
1、轨迹球文档v0.01一 轨迹球原理介绍轨迹球结构原理如下图示图1轨迹球是通过外部机械运动使H1, H2, H3, H4四个霍尔元件产生电磁感应,从而改变P1-P4的电压输出状态。根据“霍尔效应”在霍尔元件中的应用以电磁转换来实现人机交互。有关“霍尔效应”和“霍尔元件”请参考http:/ 轨迹球内部结构及注意事项轨迹球内部结构如下图示图2如上图示,轨迹球输出端口为push-poll。三 接口结构图图3目前RK手机方案采用基于TCA6424扩展IO芯片实现轨迹球与RK2808的状态交互。当TCA6424轨迹球的在up、down、left、right和enter五个方向上有动作则发送中断到RK280
2、8通知轨迹球有操作,之后RK2808通过I2C接口读取TCA6424端口状态寄存器得到状态改变的端口号。注意:轨迹球button键无需处理毛刺,但需要外界上拉电阻到Vcc,不能处于float状态。四 软件流程Kernel/arch/arm/mach-rockchips/Rk28_devices.c中添加platform设备。Kernel/arch/arm/mach-rockchips/rk28_devices.c注册platform。Kernel/drivers/input/Kconfig文件添加下一级Kconfig文件路径。Kernel/drivers/input/Makefile添加.o文
3、件路径。添加文件夹Kernel/drivers/input/mobile_jogball添加源文件Kernel/drivers/input/mobile_jogball/jogball.cJogball.c宏定义说明#defineTWO_DIREC_SUPPORT/支持两个方向处理#defineJOGBALL_SCAN_INTVAL40/轨迹球动作扫描,单位ms#define ROLLUP 103/上滚动键值#define ROLLDOWN 108/下滚动键值#define ROLLLEFT 105/左滚动键值#define ROLLRIGHT 106/右滚动键值#define ROLLENT
4、 28 /垂直按下键值#define JOG_UP_PORTExtend_GpioPort0_Pin1/轨迹球上滚动对应IO定义#define JOG_DOWN_PORTExtend_GpioPort0_Pin2/轨迹球下滚动对应IO定义#define JOG_LEFT_PORTExtend_GpioPort0_Pin4/轨迹球左滚动对应IO定义#define JOG_RIGHT_PORTExtend_GpioPort0_Pin3/轨迹球右滚动对应IO定义#define JOG_ENTER_PORTExtend_GpioPort0_Pin5/轨迹球垂直按下对应IO定义轨迹球设备结构体说明str
5、uct rock28_jogball struct rock28_keypad_platform_data *pdata;struct hrtimer timer;/轨迹球状态扫描hrtimer句柄struct input_dev *input_dev;/input设备指针unsigned char jogball_codes5;/轨迹球五个方向键值unsigned char codes_bak2;/前一次按键状态备份unsigned long noop_cnt;/无操作计数unsigned long debonce;/预留祛抖标志volatile unsigned long inv_dir4;/水平方向上四个方向操作计数volatile unsigned long inv_ent;/垂直方向上操作计数;软件流程示意图如下图示:图4文档整理人:刘洋邮箱:liuyrock-