[资料] 【嵌入式开发教程5】平板电脑-触摸屏驱动实验教程
89 查看
0 回复
 楼主 | 发布于 2022-06-06 | 只看楼主
分享到:
触摸屏驱动实验教程
——疯壳·嵌入式平板开发



第一节 input 输入子系统简单介绍 --- rockchip_gslX680_rk3168.c

触摸屏驱动注册到 input 子系统中后要遵循的框架结构如下:
1.input dev 的注册,参考 gsl_ts_init_ts()函数;
2.input 事件的注册,这部分没有明显的调用 input 子系统的 input_register_handler()函数,说明是用的系统缺省注册的 handler,即 evdev --- 一个原始的(raw)输入设备事件。


图1

第二节 电路原理图介绍

下图来源于文档 3128_sdk_a02_20170325.pdf 中第 19 页。
如下图可以确定 TP 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,TP 作为从设备。TOUCH_INT 是用中断的形式用作告诉 cpu 已经有触摸产生,cpu 可以从 I2c 接口读数据了。TOUCH_RST 是用作触摸的休眠/唤醒。


图2

第三节 TP 驱动代码结构

$(dir)\rk3128-source\kernel\drivers\input\touchscreen\rockchip_gslX680_rk3128.c
--- input device driver
$(dir)\rk3128-source\kernel\drivers\input\evdev.c
--- input event handler

第四节 .config 文件的配置选择

kernel 目录中输入 make ARCH=arm menuconfig 然后按下列步骤选择
Device Drivers --->
Input device support---> 
Touchscreens --->
<*> gslX680 touchscreen driver

选择之后在.config 文件中会有如下项被设置:
CONFIG_TOUCHSCREEN_GSLX680=y

相应的配置文件目录位于:
X:\rk3128-study\rk3128-source\kernel\drivers\input\touchscreen\Kconfig
config TOUCHSCREEN_GSLX680

tristate "gslX680 touchscreen driver" 
help
gslX680 touchscreen driver


第五节 实验代码

1.dts part:


代码1
2.增加一个可以动态测试的函数到驱动中,用户可以通过 adb shell 或者串口去输入数据完成触摸屏功能测试。

代码2
3.测试命令
命令输入路径/sys/class/touchscreen_test 
关闭触摸功能:
echo sleep > touchscreen 
echo wake > touchscreen
镜像触摸屏坐标:
echo mirror > touchscreen 
4.代码调试中遇到问题
触摸挂上去后没有反应:a.中断产生了吗?可以通过在中断响应函数中增加调试信  息;b.I2c 通信正常吗?这个可能要接个示波器或 usb 逻辑分析仪去看波形是否正常。

第六节 实验步骤 --- 镜像后的坐标如何调节

cd /sys/class/touchscreen_test 
echo mirror > touchscreen

第七节 实验现象
点击位置倒向,需要修改代码
report_data()中的两个地方 --- 自己做实验了




详情地址:https://fengke.club/GeekMart/views/offline/android  
套件地址:https://fengke.club/GeekMart/su_fHnaDyD1o.jsp
视频地址:https://fengke.club/GeekMart/su_f5W0Cuz3p.jsp 

本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )

嵌入式学习 嵌入式开发 嵌入式移植 arm 手机

回复 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部