tsc2007驱动

触摸屏 tsc2007驱动框架 在介绍触摸屏ic驱动前,先要简单了解电阻屏的工作原理。 一 电阻屏的工作原理 a. 电阻屏结构。如下图所示,硬涂层是用以保护下面的PET层,PET层是很薄的有弹性的PET薄膜,当表面被触摸时它会向下弯曲,并使得下面的两层ITO涂层能够相互接触并在该点连通电路。两个ITO层之间是约千分之一英寸厚的一些隔离支点使两层分开。最下面是一个透明的硬底层用来支撑上面的结构,通常是玻璃或者塑料。 b.触摸坐标的计算。其中ITO陶瓷层分为了上下两层,为x层和y... 阅读详情

tsc2007是个多功能电阻触摸屏, 具有12bit精度的电阻屏A/D装换器, 压力传感器, 温度传感器等功能.

根据不同的触摸屏尺寸,可以支持8bit和12bit精度的转换.

支持I2C接口, 一个中断输出引脚, 中断输出低电平.

内部结构框图如下:

1.  tsc2007 结构体定义:

struct tsc2007 {
        struct input_dev        *input;
        char                    phys[32];
        struct delayed_work     work;

        struct i2c_client       *client;

        u16                     model;
        u16                     x_plate_ohms;

        bool                    pendown;
        int                     irq;

        int                     (*get_pendown_state)(void);
        void                    (*clear_penirq)(void);
};
因为是input设备,所以肯定会有 input_dev 指针。

这里由于中断使用workqueue 下半部机制,所以才会有 delayed_work。

因为是一个i2c设备,所以肯定会有代表i2c设备的i2c_client.

irq 是该设备的中断输出用的中断号。

不知道 model, x_plate_ohms 和pendown是干啥用的。

2. module init:

static const struct i2c_device_id tsc2007_idtable[] = {
        { "tsc2007", 0 },
        { }
};

MODULE_DEVICE_TABLE(i2c, tsc2007_idtable);

static struct i2c_driver tsc2007_driver = {
        .driver = {
                .owner  = THIS_MODULE,
                .name   = "tsc2007"
        },
        .id_table       = tsc2007_idtable,
        .probe          = tsc2007_probe,
        .remove         = __devexit_p(tsc2007_remove),
};

static int __init tsc2007_init(void)
{
        return i2c_add_driver(&tsc2007_driver);
}

static void __exit tsc2007_exit(void)
{
        i2c_del_driver(&tsc2007_driver);
}

module_init(tsc2007_init);
module_exit(tsc2007_exit);
这里用 i2c_add_driver() 来添加tsc2007_driver,就相当于把i2c_driver注册进I2C bus,

还会把tsc2007_idtable 添加进 i2c_device id_table 中。

3. tsc2007_probe:

static int __devinit tsc2007_probe(struct i2c_client *client,
                                   const struct i2c_device_id *id)
{
        struct tsc2007 *ts;
        struct tsc2007_platform_data *pdata = pdata = client->dev.platform_data;
        struct input_dev *input_dev;
        int err;
        void __iomem *cpld_base;
        unsigned short reg;

        cpld_base = ioremap(CPLD_BASE_ADDR, 64);
        if(!cpld_base) {
                dev_err(&client->dev, "map cpld base failed!\n");
                return -ENOMEM;
        }

        reg = __raw_readw(cpld_base + CNTL_REG1);
        reg &= ~TP_POWER;
        __raw_writew(reg, cpld_base + CNTL_REG1);

        mdelay(500);
        reg |= TP_POWER;
        __raw_writew(reg, cpld_base + CNTL_REG1);

        if (!pdata) {
                dev_err(&client->dev, "platform data is required!\n");
                return -EINVAL;
        }

        if (!i2c_check_functionality(client->adapter,
                                     I2C_FUNC_SMBUS_READ_WORD_DATA))
                return -EIO;

        ts = kzalloc(sizeof(st
[RK3399] [Android7.1] 调试笔记:TSC2007 触摸屏 Platform: RK3399 OS: Android 7.1 Kernel: v4.4.103 Board: Firefly-AIO-3399C TSC2007 的 Datasheet 给出了它的一个典型应用电路: 我们自己打了几块调试的小板,大概如下图这样 阅读详情

相关推荐

RK3568开发笔记-TSC2007触摸屏调试

TSC2007是一款常用的电阻式触摸屏控制器,广泛应用于嵌入式系统和移动设备中。本文将介绍如何在RK3568平台上调试和使用TSC2007触摸屏控制器。我们将涵盖驱动程序的配置和设置,以及示例代码来演示如何读取触摸屏输入。本文主要介绍TSC2007触摸芯片在RK3568平台使用方法,驱动程序配置以及触点数据监测读取,以及在buildroot文件系统中触摸屏校准方法及环境变量设置等等。

flypig has a dream! 1386

基于STM32、HAL库的TSC2007IPWR触摸屏控制器驱动程序设计

一、简介:TSC2007IPWR是德州仪器(TI)生产的一款低功耗电阻式触摸屏控制器,主要特点包括:4线电阻式触摸屏接口内置12位ADCI²C接口(可达3.4MHz)低功耗设计(工作电流典型值50μA)小尺寸TSSOP-16封装工作电压范围:1.2V-3.6V二、硬件接口:<---> GND<---> PENIRQ(可选中断)

corlin6688的博客 199

tsc2007手册

本手册是tsc2007触摸芯片的手册,该芯片的参数以及怎么读取都会在这里

【Office激活】学校正版Office已激活成功仍弹出激活窗口

学校正版Office激活问题:已激活成功仍弹出激活窗口

ESCM_的博客 1万+

Unity2019编译器下使用Ump无错误,打包exe不播放 或 将exe文件在其他电脑下运行不播放

一、unity编译器下使用UMP可以播放视频,打包后查看debug 出现错误 UnloadTime: 1.070900 ms Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl.dll Fa.

qq_42345116的博客 4700

基于PCA的故障诊断方法(matlab)

1. PCA原理分析 PCA的原理主要是将原始数据进行降维。其具体工作原理参照:CodingLabs - PCA的数学原理 2. 数据预处理 训练数据集(只有正样本)为维数据,即有n个采样值,每个采样值有m个特征。 2.1 数据归一化 将数据X针对每个特征归一化为均值为0,均方根为1的数据。 其中: 3. PCA降维 3.1 首先求取协方差矩阵 协方差矩阵的公式为: 计算出来的协方差矩阵为特征m*m维矩阵。 3.2 求取特征值和特征向量 求取协方差矩阵R的特征值.

tangxianyu的博客 1万+

Xcelium XRUN实用指南:从入门到高效仿真

本文是Xcelium XRUN仿真工具的实用指南,从基础入门到高效应用全面解析。XRUN作为Cadence Xcelium的统一命令行入口,能自动化编译、精细和仿真流程,大幅提升数字芯片与FPGA验证效率。文章详细介绍了最简命令、波形调试、增量编译、多核并行仿真等核心功能,并提供了管理复杂项目、性能调优与深度调试的进阶技巧,帮助工程师快速上手并精通这一高效仿真工具。

weixin_29238147的博客 738

【乐企文件生成工程】关于乐企文件生成工程的详细介绍

发票文件生成方式有两种思路:1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)详情可以在此处了解2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。拿去即用的源码!无任何保留,当然也并不是所有票种都支持(时间有限、精力有限、已经连着转了,要冒烟了…)

九七的博客 2031

1.2 amdgpu_bo的设计分析 — gem层和ttm层

本文分析了AMD KFD的BO设计架构,重点介绍了DRM子系统中缓冲对象的多层继承关系。文章首先展示了核心继承层次图,包括DRM通用层(drm_gem_object)、TTM内存管理层(ttm_buffer_object)、AMD驱动层(amdgpu_bo)和KFD计算层(kgd_mem)。随后详细解析了drm_gem_object结构体的关键功能,包括用户空间接口管理、内存映射支持、引用计数机制以及DMA-BUF导入/导出功能。

图形/计算GPU的驱动与虚拟化技术分享园地 2540

MATLAB代码实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响

这段MATLAB代码主要实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响。通过以上步骤,该代码能够找到一条在考虑船舶性能和气象条件下,从大连港到格拉斯通港的较优航线,最小化燃油消耗和航行时间的加权和。

AI的内部世界的博客 512

WPF 上位机可视化天花板:HandyControl 搭建 SCADA 系统

HandyControl 凭借「丰富的工业级控件、灵活的主题定制、优异的性能」,成为 WPF 开发 SCADA 系统的首选 UI 库。本文搭建的 SCADA 系统涵盖实时监控、设备控制、报警管理、趋势分析四大核心功能,通过 HandyControl 实现了工业级可视化效果,开发效率提升 60% 以上。控件开箱即用:无需自定义仪表盘、趋势图、指示灯等 SCADA 核心控件;可视化效果专业:工业风主题、动态颜色切换、清晰的状态呈现,契合工业场景需求;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1126

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 代码中直接访问寄存器: *(volatile unsigned short *)的含义
下一篇: git ignore的配置
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值