随着嵌入式应用对GUI图形界面需求的增加,Qt在Linux嵌入式设备中的使用越来越广泛,许多应用也都对人机交互界面有一定的要求。因此触摸屏、鼠标等设备等支持也变得重要起来,英创Linux嵌入式工控板已经支持了鼠标和4线制电阻式触摸屏在Qt中的使用,在某一些应用场合中,电容屏可能会更受欢迎,所以英创公司在EM335x和EM928x系列产品中加入了FT5316电容触摸屏芯片的驱动程序。电容屏是人体触摸操作,不需要按压,而电阻屏是靠压力感应的方式,所以需要使用笔针类的工具按压,相比起来,给用户的使用体验电容屏会灵敏一些。
1、硬件接口
FT5316电容触摸屏芯片的通讯接口为I2C,并且还需要一路中断信号和一路复位信号,在EM335x评估底板中,英创公司已经将电容屏的接口引出,将中断和复位信号定义为GPIO17、18两个管脚,具体的电路可以参考光盘中的评估底板原理图。EM335x评估板的接口如下图:
2、软件驱动
在软件上,英创公司已经将FT5316电容触摸屏芯片驱动移植到了EM335x和EM928x系列的主板中,并且编译成了一个模块edt-ft5x06.ko件,存放在/lib/modules/3.12.10目录下。要使用电容屏时,需要用insmod命令加载这个ko文件:
加载驱动以后,电容屏的节点为/dev/input/event1。
3、实际应用
因为在工控应用中电阻屏的使用还是占大部分,文件系统中所以默认的环境变量都是设置为电阻屏的节点/dev/input/event0,所以加载完驱动后,要在Qt中使用电容屏触摸,需要设置两个环境变量,要修改的环境变量为:QWS_MOUSE_PROTO和TSLIB_TSDEVICE,在这里介绍两种修改的方法:
(1)在终端直接输入:
export set TSLIB_TSDEVICE=/dev/input/event1
export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event1'
这种方法在每次重启或者上电后,都要先输入这两条指令来设置。
(2)使用vi在/etc/profile文件中做如下修改:
#export set TSLIB_TSDEVICE=/dev/input/event0
export set TSLIB_TSDEVICE=/dev/input/event1
#export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'
export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event1'
即屏蔽原来电阻屏的环境变量,重新设置为电容屏,这样只需要修改一次,不管上电或是重启都不需要再设置了。
如果做为产品需要批量使用电容屏,可以由英创公司在出厂前修改好。
设置完后就可以使用电容屏了,使用前还是需要先校准一次,在终端输入:ts_calibrate依次校准完屏幕上的五个点,就可以正常使用了。
成都英创信息技术有限公司 028-8618 0660