嵌入式爱好者

查看: 9296|回复: 0

[技术分享] tsc2007电阻屏的调试

[复制链接]

3

主题

7

帖子

76

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX6Q通行证XX18通行证TCU通行证FCU1401通行证FCU1301通行证

扫一扫,手机访问本帖
发表于 2016-9-18 10:57:29 | 显示全部楼层 |阅读模式
1.
需要在board-mx6q_sabresd.c文件中去添加tsc2007的板级文件,
#ifdef CONFIG_TOUCHSCREEN_TSC2007
               {
                    I2C_BOARD_INFO("tsc2007", 0x48),
                                .type = "tsc2007",
                       .irq=gpio_to_irq(SABRESD_TSC_INT),
                       .platform_data   = &tsc2007_info,
        },
#endif
};
原来把这个文件加载到了 i2c_board_info mxc_i2c1_board_info2,总是报出tsc2007挂载失败,i2c1不能识别到具体的tsc2007驱动。 tsc2007_info也的添加这个结构体。
等到加载到正确的2c_board_info mxc_i2c2_board_info后,在I2C_BOARD_INFO("tsc2007", 0x48),这行代码中的地址,需要报所有的i2c中的0x48地址都要屏蔽,不然的话在启动中会报出不能正确加载到相应地址中去,因为这个地址已经被占用。
2.
SABRESD_TSC_INT这个引脚定义,早CPU的手册中可以查找到相应的引脚是gpio3_io20所以需要宏定义#define SABRESD_TSC_INT        IMX_GPIO_NR(3, 20)。同时需要把这个gpio3_io20的其他的屏蔽掉,不然的话这个会提示不能使用。
3.
宏定义完了以后board-mx6q_sabresd..h文件中添加这个(3,20)的定义,不然的话会报IMX_GPIO_NR(3, 20)未定义,或者未申明。
其实以上配置完了以后板级文件中还缺少点东西。
4.
函数get_pendown_state用于运行时获取笔按压状态,也就是获取tsc2007引脚PENIRQ的状态,这个引脚当触摸屏有按压的情况下输出低电平,无按压时输出高电平。
static int tsc2007_get_pandown_state(void)
{
     int dat;
     dat=gpio_get_value(SABRESD_TSC_INT);
     return (dat==0)?1:0;
}
在驱动程序的probe函数内被调用,处理一些硬件相关的初始化。这个初始化主要是针对PENIRQ相连的引脚的初始化。gpio_request(SABRESD_TSC_INT,"tsc2007 irq");
在驱动程序exit时调用。gpio_to_irq(SABRESD_TSC_INT);
发生中断后清除中断 gpio_free(SABRESD_TSC_INT);

评分

参与人数 1贡献 +20 飞刀 +5 收起 理由
admin + 20 + 5 赞一个!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 14:19

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表