This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TSC2046:转换和 X/Y 测量问题

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430G2955, TSC2046

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/809548/tsc2046-problems-with-conversion-and-x-y-measurement

器件型号:TSC2046
主题中讨论的其他器件:MSP430G2955

大家早上好!

我将 TSC2046与128x64 Xiamen E-shine LCD 显示屏搭配使用、而 MSP430G2955则可在电路板上使用。

在很多测试之后、我注意到12位转换不起作用(我一直读取0)、8位转换具有一组奇怪的 X 位置和 Y 位置值。

#define Y_POSITION 10010100b // 12位
#define Z1_POSITION 10110100b // 12位
#define Z2_POSITION 11000100b // 12位
#define X_POSITION 11010100b // 12位


#define Y_POSITION 10011000b // 8位
#define Z1_POSITION 10111000b // 8位
#define Z2_Position 11001000b // 8位
#define X_POSITION 11011000b // 8位

以下是一组通过触笔触摸屏幕读取的值:

  • 无触摸检测值

Y= 0

Z1=800

Z2=448

X=0

 

  • 较高的左角触摸值  

Y= 625

Z1=752

Z2=848

X=625

  •  右上角的触摸值越高

Y= 80

Z1=1008

Z2=848

X=80

 

  • 轻触右下角的值

Y= 65

Z1=1008

Z2=128

X=65

  • 轻触左下角的值

Y= 513

Z1=1008

Z2=112

X=513

 

  • 在屏幕中心

Y= 434

Z1=1008

Z2=496

X=434

是否有人可以向我解释(比器件数据表更好)为了能够读取显示屏上某个点的 X 和 Y 坐标、我必须做些什么?

如果有任何帮助和建议、我们将不胜感激。

此致、  

路易吉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luigi、

    首先、如果您没有获得有效的读数、则可能会违反 ADC、触摸屏和屏幕与 TSC 器件之间的任何滤波/保护之间所需的采集/稳定时间要求。

    我们不理解您关于在显示屏上读取点的第二个问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Collin

    关于我的第一个问题,屏幕 和 TSC2046之间没有任何过滤器

    在转换期间、我检查位忙、当我减慢速度时、我发送一个新数据进行转换

    8位和12位的系统是相同的、8位的系统是相同的、但12位的系统没有读取。

     12位转换时我出了什么问题? 是与8位相同的机制  

     

     

    第二个问题是我发送的解码器命令、用于转换

     

    这是 用于12位转换的4解码器命令

    #define              Y_POSITION    10010100b         // 12位 y 位置

    #define              Z1_POSITION  10110100b         // 12位 Z1位置

    #define              Z2_POSITION  11000100b         // 12位 Z2位置

    #define              X_POSITION    11010100b         // 12位 x 位置

                     

    这是 用于8位转换的4解码器命令

                   

    #define              Y_POSITION    10011000b         // 8位 y 位置

    #define              Z1_POSITION  10111000b         // 8位 Z1位置

    #define              Z2_Position  11001000b         // 8位 Z2位置

    #define              X_POSITION    11011000b         // 8位 x 位置

     

    当我使用12位转换时、寄存器中没有 dava 值结果

    当我发送8位数据转换时、我会看到以下数据值

    如果没有 触摸屏幕,我会看到该值

     Y= 0

    Z1=800

    Z2=448

    X=0

     

    显示出点 FIG1

    //________________________________            

    //           |T1                                                                t2|   

    //           |                                                                        |

    //           |                                                                          |

    //           |                  T5                                       |

    //           |                                                                        |             

    //           |                                                                          |             

    //           |                                                                          |

    //           |T4_________________________      _T3|

     

     

    如果我触摸点 T1、我会在寄存器中看到该值

    Y= 625

    Z1=752

    Z2=848

    X=625

     

    如果我触摸 T2点、我会将该值存入寄存器

    Y= 80

    Z1=1008

    Z2=848

    X=80

     

    如果我触摸 T3点、我会在寄存器中看到该值

    Y= 65

    Z1=1008

    Z2=128

    X=65

    如果我触摸 T4点、我会在寄存器中看到该值

     

    Y= 513

    Z1=1008

    Z2=112

    X=513

     

    如果我触摸点 T5、我会在寄存器中看到该值

    Y= 434

    Z1=1008

    Z2=496

    X=434

    是否有人可以向我解释(比器件数据表更好)为了能够读取显示屏上某个点的 X 和 Y 坐标、我必须做些什么?

    如果有任何帮助和建议、我们将不胜感激。

     

    我看到值 XY 始终等于两者的值

     

    在哪里可以找到正确的坐标?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luigi、

    您可能不会发送正确的命令来选择 X 和 Y 通道、因为它们不会在您应用的不同位置产生相同的值。   

    您是否可以尝试设置一些断点、然后尝试单独读取 X 和 Y 通道?  目标是查看在尝试从相应通道读取时、您发送的用于激活 X 和 Y 驱动程序的命令是否可能存在任何问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,科林

    您的建议已经准备好了、但我已经准备好了、如果我将 TSC 设置为8位转换会产生一些效果、但读数不是重复的且稳定、

    我的基准电压为 3.3V Vdd、SPI 上的最大速度为120kHz 没有任何噪声、并对读数进行采样。

    如果我设置12位差分、我的系统始终读取4095、并且如果我触摸、DI 显示屏不会发生任何变化。

    我已检查硬件并正确无误。 该组件非常易于使用、因此我不知道会发生什么。  

    现在、我尝试发送第一个字节2时间示例  

    1) 1)我发送第一个命令字节 10010001b 以进行 Y 读取  

    2) 2)在检查 UCA0TXIFG、IFG2和 UCBUSY、UCA0STAT 后

    3) 3)为  Y 再次发送命令字节10010001b  

    4) 4)发送0进行读取  

    5) 5)发送0以读取最后一个字节  

    在本例中、我读取了一些东西、但 X 和 Y 始终具有相同的值  

    在所有情况下 、8位或12位 X 和 Y 始终具有相同的值、Z1是不同的值

    当我触摸屏幕示例时

    太好了  

    Y=0

    Z1=2288

    Z2=2175

    X=0

    完成  

    Y=415

    Z1=2416

    Z2=2175

    X=415

    最棒的酒店  

    路易吉  

     

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,科林  

    新测试完成后、我认为 TSC 2046 eWork 正常  

    我解决了以下问题。

    1) 1)为 Y 发送第一个字节、其中包含 comand 字节10010001b

    2) 2)对于  Y 或0xFF 或与 MSN 位对应的第二个字节始终为 comand 字节10010001b、例如0x80  

    只有当我像在顶部一样发送3个字节时、TSC2046才会输出结果、并且需要测试以下位  

    位.B UCA0TXIFG、IFG2、等待  
    位.B UCA0RXIFG、IFG2、等待  

    位.B UCBUSY、UCA0STAT、WAIT

    没有 TOCH  

    Y=1926

    Z1=0

    Z2=2045

    X=441

    正确吗?

    最大频率为125KHz 或可以更快

    此致

    路易吉  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好、很高兴它现在正在工作。

    是的、125kHz 是我们将保证数据表规格覆盖的最大频率。