[原创] 关于BBB LCD CAPE的触摸屏驱动

chenzhufly   2014-4-20 14:46 楼主
作者:chenzhufly   QQ36886052    (转载请注明出处)
硬件环境:Beaglebone black+ AT070TN83(群创7寸屏)
软件环境:Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.06.20.img.xz
相关链接:
1、  BBB LCD CAPE 原理图和PCB  http://bbs.eeworld.com.cn/thread-431728-1-1.html
2、  BBB LCD CAPE 视频效果展示 http://bbs.eeworld.com.cn/thread-431637-1-1.html
3、  BBB LCD CAPE主要器件一览 http://bbs.eeworld.com.cn/thread-431581-1-1.html
4、  BBB LCD CAPE 实际效果展示 http://bbs.eeworld.com.cn/thread-431386-1-1.html
5、  使用devicetree管理我的BBBLCD CAPE(群创7寸屏) http://bbs.eeworld.com.cn/thread-434318-1-1.html
6、  AM335X触摸屏的硬件连接及Linux驱动》http://www.deyisupport.com/question_answer/w/faq/469.am335x-linux.aspx

硬件部分待补,呵呵。。。。。

还记得在《使用device tree管理我的BBB LCD CAPE(群创7寸屏)》中贴的cape-eeworld-lcd-00A0.dts吗?这个文件是我从debian系统里面拷贝出来的,显示部分没有什么问题,但是触摸部分是有问题的!

注意这部分的代码:
  1.   tscadc {
  2.                                 compatible = "ti,ti-tscadc";
  3.                                 reg = <0x44e0d000 0x1000>;

  4.                                 interrupt-parent = <&intc>;
  5.                                 interrupts = <16>;
  6.                                 ti,hwmods = "adc_tsc";
  7.                                 status = "okay";

  8.                                 tsc {
  9.                                         ti,wires = <4>;
  10.                                         ti,x-plate-resistance = <200>;
  11. <b>                                        ti,coordinate-readouts = <5>;</b>
  12.                                         ti,wire-config = <0x00 0x11 0x22 0x33>;
  13.                                 };

  14.                                 adc {
  15. <b>                                        ti,adc-channels = <4 5 6 7>;</b>
  16.                                 };
  17.                         };

我查阅了相关的资料,有详细的描述,感觉问题不大,但是触摸还是不行。

https://www.kernel.org/doc/Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
  1. * TI - TSC ADC (Touschscreen and analog digital converter)
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  3. Required properties:
  4. - child "tsc"
  5.         ti,wires: Wires refer to application modes i.e. 4/5/8 wire touchscreen
  6.                   support on the platform.
  7.         ti,x-plate-resistance: X plate resistance
  8.         ti,coordinate-readouts: The sequencer supports a total of 16
  9.                                 programmable steps each step is used to
  10.                                 read a single coordinate. A single
  11.                                 readout is enough but multiple reads can
  12.                                 increase the quality.
  13.                                 A value of 5 means, 5 reads for X, 5 for
  14.                                 Y and 2 for Z (always). This utilises 12
  15.                                 of the 16 software steps available. The
  16.                                 remaining 4 can be used by the ADC.
  17.         ti,wire-config: Different boards could have a different order for
  18.                         connecting wires on touchscreen. We need to provide an
  19.                         8 bit number where in the 1st four bits represent the
  20.                         analog lines and the next 4 bits represent positive/
  21.                         negative terminal on that input line. Notations to
  22.                         represent the input lines and terminals resoectively
  23.                         is as follows:
  24.                         AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
  25.                         XP  = 0, XN = 1, YP = 2, YN = 3.
  26. - child "adc"
  27.         ti,adc-channels: List of analog inputs available for ADC.
  28.                          AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.

  29. Example:
  30. <b>        tscadc: tscadc@44e0d000 {
  31.                 compatible = "ti,am3359-tscadc";
  32.                 tsc {
  33.                         ti,wires = <4>;
  34.                         ti,x-plate-resistance = <200>;
  35.                         ti,coordiante-readouts = <5>;
  36.                         ti,wire-config = <0x00 0x11 0x22 0x33>;
  37.                 };</b>

  38.                 adc {
  39.                         ti,adc-channels = <4 5 6 7>;
  40.                 };
  41.         }

黔驴技穷的时候又打开了Angstrom下的BB-BONE-LCD7-01-00A2.dts 文件,终于发现问题所在,但这部分没有看到相关的文档支持。
  1.              tscadc {
  2.                                 compatible = "ti,ti-tscadc";
  3.                                 reg = <0x44e0d000 0x1000>;

  4.                                 interrupt-parent = <&intc>;
  5.                                 interrupts = <16>;
  6.                                 ti,hwmods = "adc_tsc";
  7.                                 status = "okay";

  8.                                 tsc {
  9.                                         ti,wires = <4>;
  10.                                         ti,x-plate-resistance = <200>;
  11. <b>                                        ti,steps-to-configure = <5>;</b>
  12.                                         ti,wire-config = <0x00 0x11 0x22 0x33>;
  13.                                 };

  14.                                 adc {
  15. <b>                                        ti,adc-channels = <4>;</b>
  16.                                 };
  17.                         };

放一段视频上来,供大家欣赏!


生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰

回复评论 (18)

我的触屏也是显示没问题
触摸不能用。。。。
点赞  2014-4-20 15:26
我也搞了一天的tscadc…没啥进展…感觉这部分的资料很少……
更多BBB经验分享,请访问我的博客http://blog.csdn.net/wyt2013
点赞  2014-4-20 17:25
我的现在已经可以触摸了,问题解决了
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-4-20 19:53
楼主,你那个软件环境怎么安装啊?下载下来的文件解压后是个.img文件,装不了啊!这是个开发软件么?
点赞  2014-5-20 10:21
版主你的dts就是要改下面这几个数字就可以了是吧?
ti,wire-config = <0x00 0x11 0x22 0x33>;
点赞  2014-8-28 13:19
忘了 你试试吧
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-8-28 13:25
我直接用官方的BB-BONE-LCD7-01-00A2,可以显示,但是触摸好像不能用。
我用鼠标控制时,如果用手触摸,指针会回到屏幕中心,奇怪。
点赞  2014-8-28 15:51
楼主,你的这个LCD CAPE从哪里可以买到啊?
点赞  2014-8-28 16:13
自己做的
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-8-28 22:05

确实只需要修改设备树文件就可以了吗?
点赞  2014-8-28 23:42
还要看你的触摸屏怎么接的啊
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-8-28 23:57
引用: chenzhufly 发表于 2014-8-28 23:57 还要看你的触摸屏怎么接的啊
就是按照您的那个接法,把它们接到了4个ADC引脚上。 本帖最后由 651927693 于 2014-8-29 13:15 编辑
点赞  2014-8-29 12:09
贴图上来
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-8-29 12:17
upload.png
左下角
点赞  2014-8-29 12:38
电路中多了4个电阻,不会也是冗余设计吧
点赞  2014-8-29 13:20
必须是冗余设计啊

还要教你电路设计  我晕
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-8-29 13:36
引用: chenzhufly 发表于 2014-8-29 13:36
必须是冗余设计啊

还要教你电路设计  我晕

不好意思。之前都没有这些概念,也没有怎么做过电路。
见笑了。
点赞  2014-8-29 13:42
楼主,
黔驴技穷的时候又打开了Angstrom下的BB-BONE-LCD7-01-00A2.dts 文件,终于发现问题所在,但这部分没有看到相关的文档支持。
发现问题了怎么修改的?只是增加了adc-channels吗?
点赞  2015-1-12 14:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复