最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

轨迹球说明文档

IT圈 admin 105浏览 0评论

2024年8月7日发(作者:熊孤容)

轨迹球文档v0.01

一.轨迹球原理介绍

轨迹球结构原理如下图示

图1

轨迹球是通过外部机械运动使H1, H2, H3, H4四个霍尔元件产生电磁感应,从而改变

P1-P4的电压输出状态。

根据“霍尔效应”在霍尔元件中的应用以电磁转换来实现人机交互。

有关“霍尔效应”和“霍尔元件”请参考/view/?fr=ala0_1

二.轨迹球内部结构及注意事项

轨迹球内部结构如下图示

图2

如上图示,轨迹球输出端口为push-poll。

三.接口结构图

图3

目前RK手机方案采用基于TCA6424扩展IO芯片实现轨迹球与RK2808的状态交互。

当TCA6424轨迹球的在up、down、left、right和enter五个方向上有动作则发送中断到

RK2808通知轨迹球有操作,之后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文件路径。

添加文件夹Kernel/drivers/input/mobile_jogball

添加源文件Kernel/drivers/input/mobile_jogball/jogball.c

Jogball.c宏定义说明

#define TWO_DIREC_SUPPORT//支持两个方向处理

#define JOGBALL_SCAN_INTVAL 40 //轨迹球动作扫描,单位ms

#define ROLLUP 103//上滚动键值

#define ROLLDOWN 108//下滚动键值

#define ROLLLEFT 105//左滚动键值

#define ROLLRIGHT 106//右滚动键值

#define ROLLENT 28 //垂直按下键值

#define JOG_UP_PORT Extend_GpioPort0_Pin1//轨迹球上滚动对应IO定义

#define JOG_DOWN_PORT Extend_GpioPort0_Pin2//轨迹球下滚动对应IO定义

#define JOG_LEFT_PORT Extend_GpioPort0_Pin4//轨迹球左滚动对应IO定义

#define JOG_RIGHT_PORT Extend_GpioPort0_Pin3//轨迹球右滚动对应IO定义

#define JOG_ENTER_PORT Extend_GpioPort0_Pin5//轨迹球垂直按下对应IO定义

轨迹球设备结构体说明

struct rock28_jogball {

struct rock28_keypad_platform_data *pdata;

struct hrtimer timer;//轨迹球状态扫描hrtimer句柄

struct input_dev *input_dev;//input设备指针

unsigned char jogball_codes[5];//轨迹球五个方向键值

unsigned char codes_bak[2];//前一次按键状态备份

unsigned long noop_cnt;//无操作计数

unsigned long debonce;//预留祛抖标志

volatile unsigned long inv_dir[4];//水平方向上四个方向操作计数

volatile unsigned long inv_ent;//垂直方向上操作计数

};

软件流程示意图如下图示:

文档整理人:刘洋

邮箱:liuy@

图4

2024年8月7日发(作者:熊孤容)

轨迹球文档v0.01

一.轨迹球原理介绍

轨迹球结构原理如下图示

图1

轨迹球是通过外部机械运动使H1, H2, H3, H4四个霍尔元件产生电磁感应,从而改变

P1-P4的电压输出状态。

根据“霍尔效应”在霍尔元件中的应用以电磁转换来实现人机交互。

有关“霍尔效应”和“霍尔元件”请参考/view/?fr=ala0_1

二.轨迹球内部结构及注意事项

轨迹球内部结构如下图示

图2

如上图示,轨迹球输出端口为push-poll。

三.接口结构图

图3

目前RK手机方案采用基于TCA6424扩展IO芯片实现轨迹球与RK2808的状态交互。

当TCA6424轨迹球的在up、down、left、right和enter五个方向上有动作则发送中断到

RK2808通知轨迹球有操作,之后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文件路径。

添加文件夹Kernel/drivers/input/mobile_jogball

添加源文件Kernel/drivers/input/mobile_jogball/jogball.c

Jogball.c宏定义说明

#define TWO_DIREC_SUPPORT//支持两个方向处理

#define JOGBALL_SCAN_INTVAL 40 //轨迹球动作扫描,单位ms

#define ROLLUP 103//上滚动键值

#define ROLLDOWN 108//下滚动键值

#define ROLLLEFT 105//左滚动键值

#define ROLLRIGHT 106//右滚动键值

#define ROLLENT 28 //垂直按下键值

#define JOG_UP_PORT Extend_GpioPort0_Pin1//轨迹球上滚动对应IO定义

#define JOG_DOWN_PORT Extend_GpioPort0_Pin2//轨迹球下滚动对应IO定义

#define JOG_LEFT_PORT Extend_GpioPort0_Pin4//轨迹球左滚动对应IO定义

#define JOG_RIGHT_PORT Extend_GpioPort0_Pin3//轨迹球右滚动对应IO定义

#define JOG_ENTER_PORT Extend_GpioPort0_Pin5//轨迹球垂直按下对应IO定义

轨迹球设备结构体说明

struct rock28_jogball {

struct rock28_keypad_platform_data *pdata;

struct hrtimer timer;//轨迹球状态扫描hrtimer句柄

struct input_dev *input_dev;//input设备指针

unsigned char jogball_codes[5];//轨迹球五个方向键值

unsigned char codes_bak[2];//前一次按键状态备份

unsigned long noop_cnt;//无操作计数

unsigned long debonce;//预留祛抖标志

volatile unsigned long inv_dir[4];//水平方向上四个方向操作计数

volatile unsigned long inv_ent;//垂直方向上操作计数

};

软件流程示意图如下图示:

文档整理人:刘洋

邮箱:liuy@

图4

发布评论

评论列表 (0)

  1. 暂无评论