触摸芯片XPT2046的使用理解

触摸芯片XPT2046的使用理解

以下只考虑SPI作为MASTER时的情况:

  1. SPI接口由于输入和输出两根线是用同一个时钟,所以发送命令时,同时能接收到数据,此时不去接收这些数据,因为这些数据是无效的。 需要接收数据时,发送任意数据都可,因为只要产生时钟就可以了。

  2. 是上升沿采集数据还是下降沿采集数据,是先发高位还是先发低位,以及是8位数据还是16位数据都是可以设置的。

  3. 用来驱动ADC的转换进程的时钟是DCLK, 和驱动数字IO上的串行数据传输的时钟是同一种。不是产生SPI波特率的时钟。

  4. 很多文章里有下面一段,这是24时钟周期转换的说明:

一次完整的转换需要24个串行同步时钟(DCLK)来完成。
前8个时钟用来通过DIN引脚输入控制字节。当转换器获取有关下一次转换的足够信息后,接着根据获得的信息设置输入多路选择器和参考源输入,并进入采样模式,如果需要,将启动触摸面板驱动器。3个多时钟周期后,控制字节设置完成,转换器进入转换状态。这时,输入采样-保持器进入保持状态,触摸面板驱动器停止工作(单端工作模式)。接着的12个时钟周期将完成真正的模数转换。如果是度量比率转换方式(SER/DFR——=0),驱动器在转换过程中将一直工作,第13个时钟将输出转换结果的最后一位。剩下的3个多时钟周期将用来完成被转换器忽略的最后字节(DOUT置低)

这样算下,发送命令8个时钟,接着3个多时钟后开始转换,这是11个时钟了,
接下来12个时钟完成真正的数模转换,这就 11+12 =23 个时钟了,
一共24个时钟,哪来的 “剩下的3个多时钟用来完成被转换器忽略的最后字节”

  1. 根据上文理解,AD转换不是全部转换完成才被读取,而是根据读取的时钟进行转换,来一个读取时钟,转换一位,同时从DOUT线传送一位。根据示波器看的结果,第9个时钟时有忙信号,接着第10个时钟时,忙信号消失。猜想是准备工作全部做完,已经完成第一位的模数转换,所以只用了一个时钟就进入了转换状态,12个周期完成12位转换,这时余下3个时钟周期做什么不用管,因为前12个时钟,我们已经得到了想要的12位数据。这样就是 8+1+12+3=24。

    读取结果,两个8位字节合并成16位字节后要右移3位,得到最终值。

  2. SPI波特率过快 波形容易变形(如果布线不合理),适当降低波特率,通信更可靠。

你可能感兴趣的:(触摸芯片XPT2046的使用理解)