外设天下 - 电脑外设发烧友聚集地

12下一页
我的人缘0

[讨论] 打造自己的专属鼠标——鼠标DIY教程(三)

18 33834
楼主
跳转到指定楼层
发表于 2011-1-15 19:32 只看该作者 倒序浏览 阅读模式
活着本来没有什么意义,但是活着,就可以找到有趣的事情。就像你发现了这朵花,而我有发现了你一样。
                                                                                                                                        ——大蛇丸


上期讲了我们将要用到的RTOS的整体架构,这期的主角是我们经常提起的安捷伦ADNS-3080,这里将比较详细地根据官方PDF的资料解释,理解了这部分以后,我们会对这块光学芯片比较熟悉了。这段时间,看到论坛上又有关于使用3060EC2 什么1800DPI的事情,相信大家在了解adns-3080后会有一个基本的判断。大家要学习如何去使用一块光学芯片,在这个教程的最后,我们要运用这套方法去做ADNS-9500

四、安捷伦 ADNS-3080

1ADNS-3080的工作环境


如上图, 一块ADNS-3080一共有20个脚,下图是从正面看的顺序,注意芯片上的圆点表示的是1脚的位置。

1spiNCS脚,用来控制spi通信接口是否可用(google spi串行通信,了解一下)
2spi Master IN Slave OUT
3spi 时钟信号
4Matser OUT Slave IN
5LED 控制
6:光学芯片复位脚
7:待机脚 No Power Down
8:震荡信号脚 OUT
9:屏蔽(用来屏蔽谐振器)
10:震荡信号脚 IN
11:无作用
12:连接到 VDD3
13:连接参考电容 +
14:连接参考电容 -
15VDD3  电源
16GND 接地脚
17VDD3 电源
18:无作用
19:接地
20:无作用






  根据列表,如上图红圈所示,ADNS-3080工作的4大要点分别是:
a. 3.3v的电源,与17151916脚有关
b. 单片机至少要有6个脚与ADNS-3080连在一起,与123467有关
c. ADNS-3080需要一个24Mhz的陶瓷谐振器,连接108,屏蔽可不连接
d. ADNS-3080通过一个BS170的场效应管去控制LED5

    从这里可以看到,要使A3080动作起来,其实需要的东西很少,3.3v可以通过电阻限流获得,保险一点可以用图中的稳压,如果是找一块全新的A3080芯片可能会比较有难度,我们可以用一些现成的鼠标,比如金环蛇,罗技MX518,炼狱蝰蛇等,只有光学芯片正常就可以了。我们可以用它们现成的A3080电路。打开这些鼠标之后,你会发现A3080的外围电路基本是一致的,除了滚轮是编码或者是光学的区别。至于如何去分析电路, 后面几期会用金环蛇去做例子。

1
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
2
发表于 2011-1-15 19:32 只看该作者
站位
回复 支持 反对

使用道具 举报

我的人缘0
3
发表于 2011-1-15 19:33 只看该作者
站位
回复 支持 反对

使用道具 举报

我的人缘0
4
发表于 2011-1-15 19:40 只看该作者
本帖最后由 超电磁侠 于 2011-1-16 17:51 编辑

2ADNS-3080的工作


   通电之后,单片机要首先通过RESET脚发出一个脉冲,将A3080复位,然后将NPD升高,让A3080处于工作状态。接着:
a. 通过spi传输SROMSROM相当于A3080的固件,不传输SROM也可以,A3080就工作在默认条件下,据实际测试,有SROM的情况下表现好些。
b.传输完SROM,就可以开始进行移动数据的读取了。

   A3080其实本身也是一个单片机,只不过是带了光学感应而已,拆过IO的同学会发现,IO只有一块芯片,这种类型的就是把USB界面也做进去了,所以单靠自己就可以和电脑通信。
   既然A3080是单片机,那么无论什么操作都要遵循一个时间的概念。打比方说,主控执行了一次询问A3080移动数据的操作,那么到下一次询问,要有一个至少的时间间隔,因为A3080要花时间去准备和传输这些数据。我们在官方PDF就可以看到,里面最关键的词就是Delay

3、与A3080的通信

   SPI通信有4种模式,具体参考SPI的资料,这里的重点是A3080要用哪种模式呢。我们来仔细看官方的PDF16页,关于write read operation的描述。




我们可以获得这样的关键信息:
a. 读或写操作要靠发送的数据的最高位来区别,“1”是写,“0”是读。
b. SPI的工作模式,从主控端出发,应该是 send out on SCLK rising edge, sampled on SCLK falling edge 这个要和文中的描述反过来,它是从Sensor的角度来描述的,而我们要考虑主控的角度。另外,我们还要结合PDF中的图来进行设置的判断。
c. 250nsSCLK的最小high状态,那么周期是500ns,那么最高频率是2Mhz, 但是 实际上,到后面会发现我们的固件将以大概3MhzSCLK来通信,。没用示波器来看信号, 但是读写A3080一切正常,这个算是“超频”了....

我们与A3080通信就是通过主控单片机的SPI接口发出读或者写操作的命令,这些命令都体现成二进制的数据流,简单来说,就是两块芯片在互相发电报,发短信。


再通过对比18f14k50  SPI模块的设置图和A3080读写信息的序列图, 我们就能找出对应的SPI工作模式了。





  


4ADNS-3080的各种延时
  要发掘ADNS-3080的强大,PDF要基本看,要消化,所以,不要怕阅读。P17








基本上 比较特殊的是读操作,地址0x02, motion这个寄存器需要75us的延时,到后面真正编写鼠标固件的时候会看到这些延时的操作,现在先留个印象。

ADNS-3080SROM传输, Moion Burst读取模式也是比较特殊, 建议到PDFP18页开始大概浏览一下就可以了,同样会在写鼠标固件的时候讲解一下

5ADNS-3080的参数与设置
   a. DPI可以在1600400之间切换, 我们如果是要800怎么办? 1600的状态下,获得的移动数据除以2,四舍五入就可以了。
   b. fram rate可以设定为20006469间任意整数
   c. 通过Squal寄存器, 我们可以知道当前所用鼠标垫是否适合A3080使用

暂时A3080能挖掘的也就这几个东西了,不过肯定会有更有想象力的人把A3080榨干,这里写的东西只是抛砖引玉,大家掌握以后可以充分发挥自己的创造力。我们下期再继续!

回复 支持 反对

使用道具 举报

我的人缘0
5
发表于 2011-1-15 20:05 只看该作者
天书啊- -  不过还是要顶
回复 支持 反对

使用道具 举报

我的人缘0
6
发表于 2011-1-15 20:10 只看该作者
看不懂.....学习学习
回复 支持 反对

使用道具 举报

我的人缘0
7
发表于 2011-1-15 20:31 只看该作者
\\
             \\_
          .---(')
        o( )_-\_
回复 支持 反对

使用道具 举报

我的人缘0
8
发表于 2011-1-15 21:12 只看该作者
测试
看不懂
回复 支持 反对

使用道具 举报

我的人缘0
9
发表于 2011-1-15 21:21 只看该作者
占位~
回复 支持 反对

使用道具 举报

我的人缘0
10
发表于 2011-1-15 21:23 只看该作者
测试
太专业了
回复 支持 反对

使用道具 举报

12下一页
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则