ADS7843

snailpandy   2009-3-4 11:48 楼主
有谁研究过 wince BCM91101SP下的touch驱动啊。。。用的是ADS7843 。我的问题是。。他里面又一个8位模式可以提高速率。这个8位模式具体事什么意思呢。从驱动来看。。又点不明白
就是你连续发送三个command,中间怎么会隔着一个发一个00呢。。是位了要延时吗。
还有就是他这个驱动选择的是12bit模式的。。他怎么可以连续接收三个回复呢。并且里面在接收模式的处理上又点不明白。

    r1  = (INREG32(&g_pMSPIRegs->RX[1]) & 0x7F) << 5;
    r1 |= (INREG32(&g_pMSPIRegs->RX[2]) & 0xF8) >> 3;
    r2  = (INREG32(&g_pMSPIRegs->RX[3]) & 0x7F) << 5;
    r2 |= (INREG32(&g_pMSPIRegs->RX[4]) & 0xF8) >> 3;
    r3  = (INREG32(&g_pMSPIRegs->RX[5]) & 0x7F) << 5;
    r3 |= (INREG32(&g_pMSPIRegs->RX[6]) & 0xF8) >> 3;
这个是怎么解释的啊。。先接收7位回复。。再接收5位回复。。。。。
很费解

回复评论 (4)

学习了
点赞  2009-3-4 12:34
顶上来
点赞  2009-3-4 13:51
发00是为了产生对应的CLK,依靠这个CLK,7843才能完成convert(AD转换)。16 clk per convert,每次转换需要16个clk。

8bit模式是减少采样的精度,除了转换输出加快(少了4bit,25%),更重要的是在8bit模式下,可以加快clk的频率,也就是加快采样及转换的频率。因此可以说是“提高速率”。不过随着采样频率的提升,精度(LSB Error)出错的可能性增加。要看实用环境进行取舍的。


12bit很好理解:因为一次通讯只有8clk,对应8bit(即一个字节),那么12bit显然必须两次通讯,获取2个字节,然后将2个字节中有效的位数提取出来,得到12bit。
/*这两步操作得到12bit有效数据*/
RX[1]) & 0x7F) < < 5; //取有效的7位,放在12bit的高7位
RX[2]) & 0xF8) >> 3; //取有效的5位,放在12bit的低5位
点赞  2009-3-4 16:03
我的触摸屏用的控制芯片是ADS7843,为什么我的触摸屏是偶尔有时候点不准呢?
点赞  2009-4-22 10:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复